I have known clearly about the usage of the docker option --net=container:NAME_or_ID
, I also have read the source code of kubernetes about how to configure the container to use the network of InfraContainer
, so I think the only work the process in container gcr.io/google_containers/pause:0.8.0
does is "pause", it will never do any complex work like "receiving", "sending" or "routing".
But I am not sure about it because I can not find the Dockerfile
of gcr.io/google_containers/pause:0.8.0
, so I need someone know clearly about it to tell me the truth, thanks!
In Kubernetes, each pod has an IP and within a pod there exists a so called infrastructure container, which is the first container that the Kubelet instantiates and it acquires the pod’s IP and sets up the network namespace. All the other containers in the pod then join the infra container’s network and IPC namespace. The infra container has network bridge mode enabled and all the other containers in the pod share its namespace via container mode. The initial process that runs in the infra container does effectively nothing since its sole purpose is to act as the home for the namespaces.
Quoting from What is the role of 'pause' container?:
The Dockerfile is here: it just adds pause binary to an empty container.
The pause code is here: it just waits until it receives
SIGINT
orSIGTERM
.