How Kubernetes heals itself
You never start pods by hand. So who notices when one disappears?
What you'll learn
- You declare desired state, for example three replicas, instead of starting pods yourself.
- A controller runs a loop: observe the cluster, compare it with the spec, act on the gap.
- Delete a pod and the loop sees two of three, so it creates a replacement.
Read the transcript
In Kubernetes, you don't run your app. You declare it: three replicas. A controller makes the cluster match.
That controller isn't a script. It's a loop. Observe the cluster, diff it against the spec, act on the gap, then wait for the next change. Forever.
So, delete a pod. The loop sees two of three, creates a replacement, and you're back to three.
Self-healing is just a loop that never stops.
Sources
- Kubernetes docs: Controllers
- Kubernetes docs: Deployments
- Kubernetes docs: ReplicaSet
- Kubernetes docs: Pod lifecycle
- kubectl reference: delete
- kubectl reference: get
The YAML is simplified, the pod names are shortened, and the ages and controller log are illustrative. Terminal output matches kubectl 1.34 and later.

