What is the pause container?
pause is the first process (PID=1). The pause container is a container which holds the network namespace for the pod.
Kubernetes creates pause containers to acquire the respective pod’s IP address and set up the network namespace for all other containers that join that pod.
Source Code
The source code can be found on Github: https://github.com/kubernetes/kubernetes/tree/master/build/pause
If you check the build/pause/linux/pause.c file, you will find that it is indeed just a pause, in an infinite loop:
for (;;)
pause();
Where to find the pause containers?
Use ctr to list the containers, and you will find many pause containers:
$ ctr --namespace k8s.io container ls
Note that pause containers are not visible to crictl.
Recommended ReadingSponsored
Kubernetes
Kubernetes - Overview
Kubernetes - Static Pods
Kubernetes - APIs
Kubernetes - Distributions
Kubernetes - Auth
Kubernetes - Operators
Kubernetes - Registries
Kubernetes - Container Runtimes (CRI)
Kubernetes - Storage (CSI)
Kubernetes - Networking (CNI)
Kubernetes - Bootstrapping
Kubernetes - Testing
Kubernetes - Source Code
Kubernetes - kubeconfig
Kubernetes - Webhooks
Kubernetes - OS
Kubernetes - DNS
Kubernetes - Versus
Kubernetes - Upgrade
Kubernetes - Troubleshooting
Kubernetes - Logging
Kubernetes - AddOns
Kubernetes - Pod Sandbox
Kubernetes - cgroup
Kubernetes - Objects
Kubernetes - Components
Extending Kubernetes
Cloud Native Ecosystem
Kubernetes Troubleshooting

