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
| Observation | Possible explanation | Next check |
|---|---|---|
| Highest ordinal updated, lower ones unchanged | Intentional partition | Compare partition with release plan |
| One updated Pod never becomes ready | Ordered update waits | Pod events and application membership |
| Template changed but no replacement occurs | OnDelete strategy or partition boundary | Strategy and live revision values |
| Old revision returns after replacement | Partition still protects that ordinal | Ordinal 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.