← All insights
ENGINEERING JOURNAL / Kubernetes Operations

StatefulSet Updates: Read Partitions and Pod Order

Explain why a StatefulSet updates only some Pods or stops at one ordinal. Compare partition settings, revisions and ordered readiness before intervening.

StatefulSet Updates: Read Partitions and Pod OrderStatefulSet Updates: Read Partitions and Pod Order — conceptual 3D-style vector showing Template revision, Partition boundary, worker-2, worker-1, worker-0, Readiness check.. Conceptual teaching illustration; connections show the investigation flow rather than a vendor deployment topology.CLOUVENIX / KUBERNETES OPERATIONSStatefulSet Updates: Read Partitions and Pod Order01Template revision02Partition boundary03worker-204worker-105worker-006Readiness checkConceptual investigation flow / StatefulSet Updates: Read Partitions and Pod Order
StatefulSet Updates: Read Partitions and Pod Order — conceptual 3D-style vector showing Template revision, Partition boundary, worker-2, worker-1, worker-0, Readiness check.

Context

A StatefulSet gives Pods persistent identities such as worker-0 and worker-1. Those identities make update order significant. A partial update can be intentional because of a partition, or it can be blocked because an updated Pod has not become ready. Looking only at the total number of running Pods hides both possibilities.

You need the StatefulSet name, namespace, expected replica count, intended image, and the application's update procedure. Read access to StatefulSets, Pods, and events is enough for initial investigation. Storage ownership and application membership must be understood before any action that replaces a Pod.

1. Read the strategy and revision state

kubectl -n processing get statefulset worker -o yaml
kubectl -n processing get pods -l app=worker -o wide
kubectl -n processing describe statefulset worker

Inspect updateStrategy.type, rollingUpdate.partition, currentRevision, updateRevision, and replica counts. Check podManagementPolicy separately. OrderedReady governs ordinary ordered creation and termination; the rolling-update controller also waits for updated Pods before moving through its update sequence. Avoid assuming that an option affecting scaling removes all update-order guarantees.

2. Map each ordinal to its revision

kubectl -n processing get pods -l app=worker   -L controller-revision-hash
kubectl -n processing describe pod worker-2

Use the workload's actual label selector. Compare the revision label, configured image, readiness condition, and events for each Pod. During a normal rolling update, the largest ordinal is updated first and the controller works toward smaller ordinals. Initial ordered creation generally proceeds in the opposite direction. Confusing these sequences can make an intentional pause look like controller malfunction.

3. Interpret the partition before changing it

An explicitly illustrative example has three replicas numbered 0, 1, and 2, with partition set to 2. A template change updates worker-2 while lower ordinals retain the earlier revision. This can support a controlled canary procedure. Recreating a lower-ordinal Pod does not override the partition's version boundary.

If worker-2 does not become ready, investigate its specific initialization or application-state problem. A StatefulSet can be waiting exactly as designed. Lowering the partition merely exposes additional members to the new version; it is not a repair for an unhealthy canary.

Classify the visible stopping point

ObservationPossible explanationNext check
Highest ordinal updated, lower ones unchangedIntentional partitionCompare partition with release plan
One updated Pod never becomes readyOrdered update waitsPod events and application membership
Template changed but no replacement occursOnDelete strategy or partition boundaryStrategy and live revision values
Old revision returns after replacementPartition still protects that ordinalOrdinal compared with partition

Read the application's compatibility rules before choosing rollback. Reverting the template may not by itself resolve every broken rolling-update situation. The StatefulSet documentation describes a forced-rollback caveat involving a Pod that cannot become ready. Treat any necessary replacement as a coordinated application operation, with owner review and preserved evidence, rather than a generic deletion loop.

Verify progress and document the operating sequence

For a planned canary, verify the selected member's behavior and membership health before advancing the partition. After completing the approved rollout, confirm every intended ordinal uses the expected revision and that the application remains consistent. A Pod being Running is weaker evidence than successful application participation.

Maintain an ordinal-to-role map, expected revision, partition value, and explicit promotion criteria in the release SOP. Alert on prolonged revision divergence only when it violates that plan. Include a recovery owner and storage precautions, so an operator understands why preserving identity and data matters before attempting to accelerate a stalled update.

Explore Clouvenix containers kubernetes for implementation and operational handover.

Technical reference

StatefulSet update semantics and StatefulSet operating tutorial.