A sanitation routing app republishes the same :v2 tag with new bits, but Pods on some nodes keep the old digest because imagePullPolicy is IfNotPresent. What practice avoids this stale-content trap?
Select an answer to reveal the explanation.
Short Explanation
IfNotPresent plus a recycled tag is like keeping the same library call number after swapping the book inside—some shelves still hold the old copy. Give every release a fresh tag or digest so nodes know they must fetch new content.
Full Explanation
Sanitation routing apps that republish the same :v2 tag with new bits collide with imagePullPolicy IfNotPresent: nodes that already cached :v2 keep the old digest, so the fleet silently runs mixed routing code across the city. Avoid the trap by pushing each release under a new immutable tag or digest and referencing that unique identity in the Deployment. Then every node either pulls the new name or clearly fails, instead of quietly serving yesterday’s binary to truck crews.
Reuse :v2 forever and set Never so nodes freeze the first digest they saw—this hardens the stale-content problem. Delete only the Deployment’s Service so Endpoints refresh does not rebuild or repull images. Annotate the Pod with restartedAt while keeping the mutable :v2 tag may restart Pods, but IfNotPresent can still reuse stale local layers for the same name.
Exam caveat: mutable tags plus IfNotPresent is a classic CKAD pitfall. Prefer content digests or monotonically unique tags for every municipal release candidate.
Operational check: after a supposed :v2 refresh, compare containerStatuses.imageID across Pods; if digests differ, publish a unique tag, update the Deployment, and re-verify identical imageIDs with kubectl get pods -o jsonpath.