Introduction to pods
Contrary to what is possible in Docker Swarm, you cannot run containers directly in a Kubernetes cluster. In a Kubernetes cluster, you can only run pods. Pods are the atomic units of Deployment in Kubernetes. A pod is an abstraction of one or many co-located containers that share the same kernel namespaces, such as the network namespace. No equivalent exists in Docker SwarmKit. The fact that more than one container can be co-located and shared with the same network namespace is a very powerful concept. The following diagram illustrates two pods:
Figure 16.11 – Kubernetes pods
In the preceding diagram, we have two pods, Pod 1 and Pod 2. The first pod contains two containers, while the second one only contains a single container. Each pod gets an IP address assigned by Kubernetes that is unique in the whole Kubernetes cluster. In our case, these are the following IP addresses: 10.0.12.3
and 10.0.12.5
. Both are part of a private...