5. Pause 容器

0. 简介

前面我们说过,一个 Pod 中的可以有多个容器,其实准确的说,一个 Pod 除了应用容器外,还至少应该拥有一个 Pause 容器。那这个 Pause 容器是干嘛的呢?下面我们就简单介绍下。

1. Pause 容器

当我们在k8s容器上创建一个使用 docker 容器的 Pod 后,然后 docker ps 查看容器时,可以发现还有一个名为 pause 的容器:

bash 复制代码
# docker ps | grep 10_ecommerce-mall-reco-group_66714bcd
92bb2db3a228   registry.corp.kuaishou.com/kml-platform/kai_v2                                                                          "/bin/bash -c 'sourc..."   3 days ago    Up 3 days              k8s_kaiv2_kml-task-435164-record-6921748-prod-worker-10_ecommerce-mall-reco-group_66714bcd-c5d5-4986-add5-195f5ed3a122_0
4951b177f695   registry.corp.kuaishou.com/kubernetes/pause:latest                                                                      "/pause"                 3 days ago    Up 3 days              k8s_POD_kml-task-435164-record-6921748-prod-worker-10_ecommerce-mall-reco-group_66714bcd-c5d5-4986-add5-195f5ed3a122_0

通过 docker inspect 可以发现其非常的小,镜像大小只有 725KB,因为其总是处于 Pause(暂停)状态,因此取名即为 pause,其由 C 语言写的,官方仓库 pause-git

Pause 容器也叫 Infra 容器。

2. 作用

前面我们说过,一个 Pod 中的所有容器,它们的网络视图是完全一样的,即:它们看到的网络设备、IP 地址、Mac 地址等等,跟网络相关的信息,其实全是一份,这一份都来自于 Pod 第一次创建的这个 Infra(Pause) container。这就是 Pod 解决网络共享的一个解法。

如上图,假设有两个容器,A和B,组成一个 Pod,如果没有 Pause,A和B想要共享网络,要么A加入B的 network namespace,要么B加入A的 network namespace,而无论哪种情形,只要 network 的 owner 退出了,那么这个容器网络都会异常,这显然不合理。

而 Pause,其只是挂起一个容器,没有任何复杂逻辑,让A和B都加入其创建的 network namespace,只要 Pod 存活,Pause 就一直存活,从而保证了网络的可用性。其实从这一点上来说,Pause 就像是链表中的哑结点,在删除头节点后不至于找不到链表了。

3. 参考

2.2 从 Pause 容器理解 Pod 的本质

Pause 容器

相关推荐
SPC的存折19 小时前
22、K8S-Helm
云原生·容器·kubernetes
Elastic 中国社区官方博客19 小时前
在 Kubernetes 上的 Elastic Cloud:简化的可用区感知、重启和 mTLS
大数据·数据库·搜索引擎·云原生·容器·kubernetes·全文检索
sbjdhjd19 小时前
01| 裸机部署 K8S:从零搭建生产可用集群
运维·经验分享·云原生·kubernetes·开源·kubelet·kubeless
珂玥c1 天前
k8s集群网络插件caclico切换为flannel
云原生·容器·kubernetes
Zhu7581 天前
【问题处理】minIO(AIStor)在k8s部署后,API访问失败的问题,TLS
云原生·容器·kubernetes
Altruiste1 天前
minikube 搭clickhouse 集群
clickhouse·kubernetes
古城小栈1 天前
通过 Kind 快速构建 k8s 集群
云原生·kubernetes·kind
珂玥c1 天前
kubeadm方式部署 k8s 1.21
云原生·容器·kubernetes
小义_1 天前
【Kubernetes】(十九)监控与升级
云原生·容器·kubernetes
炸炸鱼.1 天前
Kubernetes Pod 深度理解:从入门到实战
云原生·容器·kubernetes·pod