查看k8s中Pod里容器的数量和名称
当我创建一个pod的时候,我可以给pod里的一个容器配置ip,其他的容器网络都link到这个配置有ip的容器上,那这样的话就实现了一个pod里的多个容器共用一个ip,也即一个Pod里的容器之间访问可以通过localhost去访问。一个Pod里的容器之间访问可以通过localhost去访问,即一个pod里的所有容器是共享一个网络的,那怎么才能实现一个Pod里的多个容器共享一个网络IP呢?初始化一个包
查看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
1
查看Pod里业务容器的命令
kubectl get pods myapp-pod -o jsonpath={.spec.containers[*].name}
1
其中 myapp-pod为pod的名称,其它不变
查看Pod里初始化容器的命令
kubectl get pods myapp-pod -o jsonpath={.spec.initContainers[*].name}
1
其中 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
1
注意
全文中 myapp-pod为pod的名称
参考
https://www.thinbug.com/q/47073079
https://blog.csdn.net/liumiaocn/article/details/104231375
https://www.jianshu.com/p/22a7032bb7bd
————————————————
版权声明:本文为CSDN博主「CBeann」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37171353/article/details/120590894
更多推荐
所有评论(0)