kubernetes中pod-infra-container-image的目的是什么?
官方文件只说:
每个pod中的network / ipc命名空间容器将使用的映像。 (默认" gcr.io/google_containers/pause-amd64:3.0")
但我并不完全明白它的作用以及它的工作原理。
答案 0 :(得分:7)
使用暂停容器(--pod-infra-container
标志选择的图像),以便在共享资源时可以在窗格中启动多个容器。它几乎什么都不做,除非你有充分的理由用自定义的东西替换它,否则你不应该这样做。它主要调用pause
系统调用(因此它的名称),但它也执行具有PID 1的重要功能,并确保不保留僵尸进程。
关于这个主题can be found here的一篇非常完整的文章,我也无耻地偷走了下面的图片,说明了暂停容器所在的位置:
答案 1 :(得分:3)
暂停容器是从https://github.com/kubernetes/kubernetes/tree/master/build/pause构建的。该过程本身不执行任何操作,因此您可以将其替换为您选择的另一个同样无效的容器(使用--pod-infra-container-image
kubelet
参数。
此容器作为每个pod的一部分启动。 Kubernetes正在使用这个众所周知的永不掉落的容器来设置pod的网络命名空间,并确保命名空间永远不会为空(pod中的所有其他容器都可能失败)。但同样,容器进程本身什么都不做,它只是一个占位符。