Interview Kubernetes, Docker, Helm & Podman

What is the difference between a StatefulSet and a Deployment?

Kubernetes, Docker, Helm & Podman · Basic level

Answer

A StatefulSet is for stateful workloads that need stable network identity, ordered rollout, and stable per-Pod storage. A Deployment is for stateless, interchangeable replicas where any Pod can replace another without identity concerns.

Technical explanation

StatefulSet Pods have stable ordinal names such as app-0 and stable PVCs created from volumeClaimTemplates.

StatefulSet updates and deletes are more conservative because identity and storage safety matter.

Kubernetes workload controllers encode different lifecycle guarantees: interchangeable replicas, stable identities, node-local agents, or finite tasks.

Storage decisions must align with durability, access mode, zone placement, backup, restore, and failover behavior.

Autoscaling should be designed with metrics, scheduling constraints, PDBs, and node capacity together.

Hands-on example

1. Deploy a workload for this exercise using kubectl apply and a small test image such as nginx, busybox, or a purpose-built app: compare a Deployment and StatefulSet using stable Pod names and PVCs.

2. Inspect ownerReferences, events, Pods, PVCs, PVs, EndpointSlices, and metrics depending on the resource being tested.

3. Create a realistic disruption: delete a Pod, scale replicas, restart a node, fill a queue, or recreate storage attachment in a test environment.

4. Write the runbook entry covering expected behavior, safe rollback, and what alarms should exist.

Preparing for an interview?

Check how well your resume matches the role with our free resume checker— match score, ATS check, and the skills you're missing.

More Kubernetes, Docker, Helm & Podman interview questions

← All Kubernetes, Docker, Helm & Podman questions