查看k8s中Pod里容器的数量和名称

查看k8s中Pod里容器的数量和名称
查看Pod里容器的名称
 
初始化一个包含两个容器的Pod(tomcat和nginx),其中文件名为ini-pod.yaml
 
apiVersion: v1
 
kind: Pod
 
metadata:
 
  name: myapp-pod
 
  labels:
 
    app: myapp
 
spec:
 
  containers:
 
  - name: myapp-tomcat
 
    image: tomcat
 
  - name: myapp-nginx
 
    image: nginx
 
kubectl create -f ini-pod.yaml
 
查看Pod里业务容器的命令
 
kubectl get pods myapp-pod -o jsonpath={.spec.containers[*].name}
 
其中 myapp-pod为pod的名称,其它不变
 
查看Pod里初始化容器的命令
 
kubectl get pods myapp-pod -o jsonpath={.spec.initContainers[*].name}
 
其中 myapp-pod为pod的名称,其它不变
 
Pause容器存在的意义和证明
 
一个Pod里的容器之间访问可以通过localhost去访问,即一个pod里的所有容器是共享一个网络的,那怎么才能实现一个Pod里的多个容器共享一个网络IP呢?Pause容器的存在也即解决了这个问题。
 
学docker的时候有一个知识点是docker的网络模式【https://www.jianshu.com/p/22a7032bb7bd】,里面是有一个是container模式的,其实也完全可以理解。当我创建一个pod的时候,我可以给pod里的一个容器配置ip,其他的容器网络都link到这个配置有ip的容器上,那这样的话就实现了一个pod里的多个容器共用一个ip,也即一个Pod里的容器之间访问可以通过localhost去访问。
 
证明Pod里存在pause容器的证据如下图所示, 按照上面的例子,其实我在pod里创建了2个容器(tomcat和nginx),但是我查询出来的却是3个。
 
docker ps |grep myapp-pod
 
注意
 
全文中 myapp-pod为pod的名称

推荐阅读