But since many apps are not designed with this level of isolation in mind, k8s breaks the abstraction provided by containers via its notion of Pods — a pod is a group of containers that share resources (typically the network) and are always scheduled to run on the same machine. A Service is linked to its pods by using the pod’s label selectors. StatefulSets work by i) giving a pod the same name each time it’s started, ii) updating a DNS entry for that “pod.hostname” to always point to the pod’s current IP address iii) generating pod-specific PersistentVolumeClaims by using a volume claim template instead of exactly identical claims by all the pods.