pause容器何在?
来源:10-6 深入Pod - pod相关的点点滴滴(下)

qq_慕丝0528892
2021-06-27
pause容器, 作为作为每个Pod中第一个启动的存在, 但是我没有发现其存在的痕迹
不是说pause容器是和Pod是一一对应的吗?
crictl ps -a
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
20dbce0f0726d 2304e340e2384 4 days ago Running tomcat-demo 0 01ec4c63f922e
17c34d6309fb4 5d3d5ddc8605d 4 days ago Running calico-kube-controllers 0 398f63006b2cc
415dc1a618c22 a013daf8730db 4 days ago Exited patch 2 09c303aa8c6ce
479ac5696d7c1 f0b8a9a541369 6 days ago Running nginx 0 6e3aaef8ddc5e
27e50785ac204 f0b8a9a541369 6 days ago Running my-nginx 0 caf6484876c87
5ea927c8831da 90f9d984ec9a3 6 days ago Running node-cache 0 9ac3e4c6b606f
3698749a5602d 67da37a9a360e 6 days ago Running coredns 0 0bc286930ac33
327b64a1aa2e8 c4d75af7e098e 6 days ago Running calico-node 0 42fbb943c568a
85eda2a034db0 5660150975fb8 6 days ago Exited flexvol-driver 0 42fbb943c568a
7dffac175047d 5749e8b276f9b 6 days ago Exited install-cni 0 42fbb943c568a
3ae44bffd8b41 5749e8b276f9b 6 days ago Exited upgrade-ipam 0 42fbb943c568a
86b07dc68d89c f0b8a9a541369 6 days ago Running nginx-proxy 0 c47e35cd67e9f
我从镜像下载中有发现他的痕迹, 确实拉取过pause镜像, 但是我没看到它的启动
crictl images
IMAGE TAG IMAGE ID SIZE
docker.io/calico/cni v3.19.1 5749e8b276f9b 48.3MB
docker.io/calico/kube-controllers v3.19.1 5d3d5ddc8605d 25MB
docker.io/calico/node v3.19.1 c4d75af7e098e 58.7MB
docker.io/calico/pod2daemon-flexvol v3.19.1 5660150975fb8 9.33MB
docker.io/coredns/coredns 1.6.7 67da37a9a360e 13.6MB
docker.io/jettech/kube-webhook-certgen v1.5.1 a013daf8730db 16.3MB
docker.io/library/nginx 1.19 f0b8a9a541369 53.7MB
k8s.gcr.io/pause 3.2 80d28bedfe5de 300kB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause 3.2 80d28bedfe5de 300kB
registry.cn-hangzhou.aliyuncs.com/kubernetes-kubespray/dns_k8s-dns-node-cache 1.16.0 90f9d984ec9a3 56.1MB
registry.cn-hangzhou.aliyuncs.com/liuyi01/tomcat 8.0.51-alpine 2304e340e2384 76.6MB
从网上了解到pause容器是负责创建Liunx的命名空间, 然后Pod的其他容器再加入到这个命名空间中实现命名空间共享
以下是创建pause容器和加入到pause容器的命名空间的命令, 说明这个流程确实是先启动pause容器, 然供其他容器加入, 但是我本地测试中没发现pause容器, 难道网上说的不对吗? 还是k8s并不总是这么做?
# 创建一个pause容器。
docker run -d --name pause -p 8080:80 gcr.io/google_containers/pause-amd64:3.0
# 再创建ghost 容器,这是一个博客程序,加入到pause的命名空间中(网络, pid, ipc)
docker run -d --name ghost --net=container:pause --ipc=container:pause --pid=container:pause ghost
还有参数中的ipc代表什么?
写回答
1回答
-
crictl是为k8s转设的, ps只列出业务容器,隐藏了pause。可以用ctr命令试试
032021-07-09
相似问题