Pause Container
每个 pod 中都会运行一个 pause container(node 上 docker ps
可见),代码 很简单,就是执行 pause()
使进程暂停等待信号。它的功能有两个:
- 保持这个 pod 中的各 namespace:在创建 pod 时,kubelet 会先创建 pause 容器,使其使用新的 ns;后面创建 pod 定义中的其他容器,会使这些容器使用 pause 容器中的 ns。这样的好处是,pod 定义中的容器如果挂掉,重启后还是用的挂之前同一套 ns。如果 pause 容器也被杀掉,kubelet 会重新创建整个 pod。
- 如果启用了 pid namespace,pause 进程会作为 pid 1,回收挂掉的其他进程
它也被称为 the infrastructure container。
Inter-pod Networking (Pod 间网络通信)
这块有点难。看看这些概念或组件:
- CNI
- Calico