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
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐