CKA Road Trip: UP-TO-DATE Was 0 — But Nothing Was Broken¶
The task said UP-TO-DATE should be 1. It was showing 0. I assumed something was broken and went the long way round. The issue was one field.
The Symptom¶
k get deploy stream-deployment
# NAME READY UP-TO-DATE AVAILABLE AGE
# stream-deployment 0/0 0 0 69s
Task: UP-TO-DATE is showing 0, it should be 1. Troubleshoot and fix.
What I Did (the Long Way)¶
k get deploy stream-deployment -o yaml > deploy.yml
vim deploy.yml # changed replicas: 0 → 1
k delete deploy stream-deployment --force
k apply -f deploy.yml
It worked. But it was 4 steps, and the force delete is dangerous in prod — bypasses graceful termination. If the pod was doing anything, that's data loss risk.
What I Should Have Done¶
One command. No file, no delete, no risk.
Or if editing more than just replicas:
Live YAML in the editor. Change what you need, save, done. No delete needed — ever.
What UP-TO-DATE Actually Means¶
READY = running / desired. 0/0 means you asked for 0, you got 0. Not broken.
UP-TO-DATE = how many pods are running the latest pod template spec — latest image, env vars, config. Are your pods on the current version of the deployment?
UP-TO-DATE: 0 when replicas: 0 is correct math. Nothing to update. The actual issue was replicas: 0 in the spec. UP-TO-DATE was a red herring.
When UP-TO-DATE Actually Matters¶
3 pods running, only 1 on the new version. Rolling update in progress — the other 2 are still on the old template. That is the signal UP-TO-DATE is for. Not deployment health — rollout progress.
The Rule¶
READY left/right = reality vs desired. If they don't match, something is wrong.
UP-TO-DATE only means something when replicas > 0 and you have changed the pod template. When you see 0/0, check spec.replicas first.
Root cause in one shot.