Kubernetes documentation describes pod as a wrapper
around one or more containers. containers running inside
of a pod share a set of namespaces (e.g. network) which makes me think namespaces
are nested (I kind doubt that). What is the wrapper
here from container runtime's perspective?
Since containers are just processes constrained by namespaces, Cgroups
e.g. Perhaps, pod is just the first container
launched by Kubelet and the rest of containers are started and grouped by namespaces.
The main difference is networking, the network namespace is shared by all containers in the same Pod. Optionally, the process (pid) namespace can also be shared. That means containers in the same Pod all see the same localhost
network (which is otherwise hidden from everything else, like normal for localhost) and optionally can send signals to processes in other containers.
The idea is the Pods are groups of related containers, not really a wrapper per se but a set of containers that should always deploy together for whatever reason. Usually that's a primary container and then some sidecars providing support services (mesh routing, log collection, etc).