查看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的名称