容器“gcr.io/google_containers/pause:0.8.0”中的过程有什么function?

我已经清楚地知道--net=container:NAME_or_ID选项的用法--net=container:NAME_or_ID ,我也读过了关于如何configuration容器使用InfraContainernetworking的InfraContainer的源代码,所以我认为唯一的工作是在这个过程中容器gcr.io/google_containers/pause:0.8.0确实是“暂停”,它不会做任何复杂的工作,如“接收”,“发送”或“路由”。

但我不确定,因为我找不到Dockerfilegcr.io/google_containers/pause:0.8.0 ,所以我需要有人清楚的告诉我实话,谢谢!

Dockerfile在这里 :它只是将暂停二进制文件添加到一个空的容器。

暂停代码在这里 :它只是等待,直到它收到SIGINTSIGTERM

在Kubernetes中,每个吊舱都有一个IP,在一个吊舱内存在一个所谓的基础设施容器,它是Kubelet实例化的第一个容器,它获取吊舱的IP并设置networking名称空间。 所有在容器中的容器然后join到Infra容器的networking和IPC命名空间中。 infra容器启用网桥模式,并且容器中的所有其他容器通过容器模式共享其命名空间。 在infra容器中运行的初始过程没有任何效果,因为它的唯一目的是作为命名空间的起始位置。

引用“暂停”容器的作用是什么? :

暂停容器是容纳该容器的networking名称空间的容器。 它没有什么“有用的”。 (实际上它只是一个组装程序,它睡觉,从不醒来)

这意味着你的“Apache”容器可能会死亡,并恢复生命,所有的networking设置将仍然在那里。 通常,如果networking名称空间中的最后一个进程死亡,则名称空间将被销毁,并且创build新的apache容器将需要创build所有新的networking设置。 暂停一下,你将永远在命名空间中有最后一件事。