k8s-pod常用操作-2.2
k8s-pod常用操作-2.21.pod和容器的关系在docker环境中每个容器都是一个进程,在k8s中pod就是一组进程。当通过k8s创建一个pod资源时,schedule调度器会调用某个node节点的kubelet控制docker启动两个容器,一个是业务的容器,一个就是pod容器。在一个pod上创建的多个业务容器都会共用这个pod上的ip地址。1.1.查看启动的两个容器# 在master节点上
·
k8s-pod常用操作-2.2
1.pod和容器的关系
在docker环境中每个容器都是一个进程,在k8s中pod就是一组进程。当通过k8s创建一个pod资源时,schedule调度器会调用某个node节点的kubelet控制docker启动两个容器,一个是业务的容器,一个就是pod容器。在一个pod上创建的多个业务容器都会共用这个pod上的ip地址。
1.1.查看启动的两个容器
# 在master节点上查看当前pod所在node节点
kubectl get pods -o wide
# 查询结果
NAME READY STATUS RESTARTS AGE IP NODE
nginx 1/1 Running 0 21h 192.168.12.2 172.16.8.113
- node节点查看容器
docker ps
- 业务容器共享pod网络地址
查看docker详细信息,过滤查询结果只显示pod容器IP地址
查看docker详细信息,过滤查询结果只显示nginx容器IP地址,nginx是没有IP地址的,可以看出业务容器共用pod容器地址。
- 查看业务容器使用的网络模式
业务容器使用的网络模式为容器模式
2. 一个pod内启动多个容器
前面创建pod资源时,在yaml配置文件中只配置了一个容器。那么启动后这个pod中只有一个容器,下面我们可以通过修改yaml配置文件在一个pod中添加多个容器。
2.1.获取pod配置文件帮助
在配置pod文件时由于配置内容较多无法全部记住配置的格式,这个时候可以通过命令获取帮助手册。查看配置格式。
- 查看pod配置帮助例子
# yaml配置文件内容是层级关系,因此查询帮助时候可以一层一层查询。
#查询pod配置帮助
kubectl explain pod
# 查询pod下的spec下的containers下的配置帮助
kubectl explain pod.spec.containers
2.2.pod配置多个容器文件
- pod配置文件说明
# 一个pod启动多个业务容器
apiVersion: v1
kind: Pod
metadata:
name: nginx2
labels:
app: web
spec:
containers: # 配置容器
#配置第一个业务容器
- name: nginx
image: 172.16.8.111:5000/nginx:1.13
ports:
- containerPort: 80
#配置第二个业务容器
- name: busybox
image: docker.io/busybox:latest
#配置拉取镜像规则,默认是拉取最新镜像,下面配置的是只要本地有镜像就不拉取最新的镜像,有先使用本地镜像。
imagePullPolicy: IfNotPresent
#配置容器启动后执行的名称
command: ["sleep","3600"]
ports:
- containerPort: 80
~
3.pod常用操作命令
3.1.创建pod
kubectl create -f pod名称.yaml
3.2.查看所有创建的pod
kubectl get pods
3.3.查看pod详细描述
kubectl describe pod pod名称
3.4.更新pod信息到容器
当我们创建好pod后,这个时候业务容器版本升级了,那么我们可能需要删除这个pod,修改pod文件后重新创建一个新的pod。这样操作就比较繁琐,我们还可以通过apply参数直接将pod文件中更新的内容应用到当前的pod容器中,省去了删除和创建容器的步骤。
# 当修改了pod文件后,使用apply覆盖现在pod使新的配置在当前的pod生效。
kubectl apply -f nginx_pod.yaml
3.5.删除pod
kubectl delete pod nginx2
上面这种方式是一个正常删除pod方式,执行命令后pod会有个退出的过程。
还有一种强制删除pod方式,执行命令后立即删除pod
#强制删除pod
kubectl delete pod nginx --force --grace-period=0
更多推荐
已为社区贡献9条内容
所有评论(0)