Kubernetes StatefulSet
External
Internal
Overview
Used for stateful application components, where the application component relies on access to "stable" file storage to maintain state between restarts. As such, local volumes that are directly attached to node hosts, can be used. A StatefulSet and the individual pods the StatefulSet manages are registered with the cluster's DNS service.
A stateful set makes sure pods are rescheduled in such a way that they retain their identity and state.
The StatefulSet creates PersistentVolumeClaims in a manner similar to the one in which it creates pods. More details in StatefulSet Storage below.
StatefulSet Manifest
StatefulSet Storage
Persistent Volume Claim Template
Because PersistentVolumeClaims map to PersistentVolumes one-to-one, and each pod of a StatefulSet needs its dedicated, separate storage, each pod of a StatefulSet needs to reference a different PersistentVolumeClaim to have its own separate PersistentVolume. The StatefulSet achieves this behavior by creating PersistentVolumeClaims alongside pods, based on a persistent volume claim template.
TODO: Kubernetes_StatefulSet_Manifest#volumeClaimTemplates.