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 容器

相关推荐
liulanba14 小时前
八股取士--docker&k8s
docker·容器·kubernetes
桂月二二15 小时前
基于eBPF的云原生网络加速引擎:突破Kubernetes Service转发性能瓶颈
网络·云原生·kubernetes
格桑阿sir19 小时前
Kubernetes控制平面组件:Kubernetes如何使用etcd
kubernetes·k8s·etcd·高可用集群·故障分析·etcd集群调优
格桑阿sir19 小时前
Kubernetes控制平面组件:etcd常用配置参数
kubernetes·etcd·配置参数·etcd容量·磁盘耗尽·碎片整理·灾备与安全
Rocky00000019 小时前
【云原生】最新版Kubernetes集群基于Containerd部署
云原生·容器·kubernetes
全栈工程师修炼指南21 小时前
云原生 | Kubernetes 原生 Dashboard 已升级至 7.10.x 界面更简洁、功能更强大
云原生·容器·kubernetes
2301_793069821 天前
微服务架构,Spring Cloud、Kubernetes 以及云厂商(AWS、Azure)的管理方式
spring cloud·微服务·云原生·架构·kubernetes
慢一点会很快2 天前
K8s学习总结
学习·容器·kubernetes
周周的奇妙编程2 天前
红队视角出发的k8s敏感信息收集——日志与监控系统
云原生·容器·kubernetes
Karoku0662 天前
【k8s应用管理】kubernetes lngress资源管理
运维·docker·云原生·容器·kubernetes