k8s入门之pod(四)
pod是k8s项目中的最小编排单位,它是运行中的一组(一个或多个)容器,这些容器共享存储、网络、调度等资源,pod是一个逻辑概念,同一个名称空间下不同pod可以通过ip互相访问。
一、通过命令行方式管理
1.创建
在dev名称空间下创建名称为mynginx的pod,如果不指定-n参数,则默认创建在default名称空间下
kubectl run mynginx --image=nginx -n dev
2.查看dev名称空间下所有pod的简单信息
kubectl get pod -n dev
创建pod需要时间,尤其是节点上没有该镜像时,还需要下载镜像,可以看到pod的Status状态会随着时间而改变,最后变成Running表示pod启动成功
3.查看dev名称空间下所有pod的详细信息
kubectl get pod -n dev -owide --show-labels
结果截图如下
NODE:表示该pod被调度了哪个worker节点上
IP:k8s会为每个pod分配一个ip,集群中的任意一个机器以及任意的应用都能通过此ip来访问这个Pod
在master节点上可以通过curl ip访问pod
# 默认是80端口,所以访问的是pod中的nginx容器
curl 10.244.218.1
4.根据标签检索pod
kubectl get pod -n dev -owide --show-labels -l app=nginx
5.查看pod的描述信息
kubectl describe pod mynginx -n dev
其中Events事件可以查看到pod被创建的详细过程
6.查看Pod的运行日志
kubectl logs mynginx -n dev
7.进入pod容器
kubectl exec -it mynginx /bin/bash -n dev
更改nginx容器的index.html内容
echo "hello,pod" >> /usr/share/nginx/html/index.html
再次访问mynginx
curl 10.244.218.1
可以看到index.html首页内容已经发生了变化
8.监控pod状态命令
使用k8s的-w参数
kubect get pod -n dev -w
使用linux命令
watch -n 1 kubectl get pod -n dev
9.删除pod
kubectl delete pod mynginx -n dev
二、使用yaml管理
1.在pod里部署两个容器
一个pod里面不能部署相同镜像的容器,端口冲突
(1)创建yaml文件
vi pod-nginx-tomcat.yaml
(2)编写pod文件内容,定义两个容器,一个为nginx,一个为tomcat
apiVersion: v1
kind: Pod
metadata:
labels:
web: server
name: web-server
namespace: dev
spec:
containers:
- image: nginx
name: nginx
- image: tomcat:9.0
(3)使用kubectl apply创建pod
kubectl apply -f pod-nginx-tomcat.yaml
(4)自动监控创建过程
kubectl get pod -n dev -w
2.查看pod描述
kubectl describe pod web-server -n dev
3.在节点上访问pod
(1)查看pod的ip
kubectl get pod -n dev -owide
(2)通过此ip访问pod中的nginx容器
curl 10.244.218.2
(3)通过此ip访问pod中的tomcat容器
curl 10.244.218.2:8080
4.进入pod里面访问服务
(1)进入pod里面的nginx容器
kubectl exec web-server --container nginx -it /bin/bash -n dev
(2)在容器内,以下命令均可访问,证明了pod里网络共享
curl localhost
curl localhost:8080
curl 10.244.218.2
curl 10.244.218.2:8080
k8s入门之pod(四)的更多相关文章
- k8s入门你至少需要会哪些
body { margin: 0; overflow: auto; font: normal 14px Verdana; background: rgba(255, 255, 255, 1); pad ...
- k8s入门之集群搭建(二)
一.准备三台节点 从上篇文章 k8s入门之基础环境准备(一)安装的Ubuntu虚拟机克隆出三台虚拟机,如图所示 启动这三台虚拟机节点,分别做如下配置 虚拟机名称 IP HostName k8sMast ...
- k8s入门系列之guestbook快速部署
k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...
- k8s入门系列之扩展组件(一)DNS安装篇
DNS (domain name system),提供域名解析服务,解决了难于记忆的IP地址问题,以更人性可读可记忆可标识的方式映射对应IP地址. Cluster DNS扩展插件用于支持k8s集群系统 ...
- K8s 入门
中文文档:https://www.kubernetes.org.cn/kubernetes%E8%AE%BE%E8%AE%A1%E6%9E%B6%E6%9E%84 小结大白话 Portainer 挺好 ...
- 反手来个K8S入门到跑路
layout: post title: 反手来个K8S入门到跑路 category: linux date: 2019-06-09 tags: linux k8s 反手来个K8S入门到跑路 前言 放假 ...
- k8s 中的 Pod 细节了解
k8s中Pod的理解 基本概念 k8s 为什么使用 Pod 作为最小的管理单元 如何使用 Pod 1.自主式 Pod 2.控制器管理的 Pod 静态 Pod Pod的生命周期 Pod 如何直接暴露服务 ...
- WCF入门教程(四)通过Host代码方式来承载服务
WCF入门教程(四)通过Host代码方式来承载服务 之前已经讲过WCF对外发布服务的具体方式. WCF入门教程(一)简介 Host承载,可以是web,也可以是控制台程序等等.比WebService有更 ...
- Docker入门教程(四)Docker Registry
Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...
随机推荐
- CRI容器运行时
CRI容器运行时 我们知道 Kubernetes 提供了一个 CRI 的容器运行时接口,那么这个 CRI 到底是什么呢?这个其实也和 Docker 的发展密切相关的. 在 Kubernetes 早期的 ...
- 摆烂期的Android学习笔记一
Android大致分为四层架构1.Linux内核层:提供各种硬件驱动,如显示驱动,音频驱动,相机驱 动,蓝牙驱动.... 2.系统运行库层:通过C/c++库为android地图提供支持 3.应用框架层 ...
- Java9的模块化是什么
Java9新特性中的模块化到底是什么 Java9中的一个重大特性是增加了一种新型的程序设计组件 - 模块. 官方对模块的定义为:一个被命名的,代码和数据的自描述集合.( the module, whi ...
- JDBC-Druid增删改查
由于刚学完JDBC,所以来小练一下,通过Druid实现对数据库的增删改查操作 (现在是真正简单的纯数据库操作,等我学过前端,再做一个比较具体的!) •数据库 新建一个数据库tb,创建brand表,有主 ...
- mysql 实现类似Oracle 或 db2 sequence
第一步:创建一个索引管理表,其中包含,索引名称.最小值.最大值.当前值.增量,并设置主键为索引名称. CREATE TABLE TB_SEQUENCE ( SEQ_NAME VARCHAR(50) N ...
- XMLBeanFactory?
最常用的就是 org.springframework.beans.factory.xml.XmlBeanFactory ,它根据XML文件中的定义加载beans.该容器从XML 文件读取配置元数据并用 ...
- jinfo介绍
1. jinfo 1.1 简介 jinfo用于打印java的配置信息,这些配置信息包括: java system properties jvm命令行参数 通过查看这些配置信息,可以了解java进程的运 ...
- C语言之开发流程(知识点7)
一.C程序的运行步骤: 1.编辑:进入C语言编译系统,建立源程序文件,扩展名为"c"或"cpp",编辑并修改.保存源程序. 2.编译:计算机不能识别和执行高级语 ...
- servlet中的ServletContext对象
ServletContext官方叫Servlet上下文.服务器会为每一个Web应用创建一个ServletContext对象.这个对象全局唯一,而且Web应用 中的所有Servlet都共享这个对象(在整 ...
- three.js 入门详解(一)
1. 概述 1.1 什么是WebGL? WebGL是在浏览器中实现三维效果的一套规范 想要使用WebGL原生的API来写3D效果的话,很吃力.three.js是WebGL的一个开源框架,它省去了很多麻 ...