Completed
KubernetesINFOPod StateHIGH confidence
Pod has finished successfully
What this means
The Completed phase means all containers in the pod exited with code 0 and will not be restarted. This is the normal terminal state for Job and CronJob pods. Long-running Deployment pods should never reach this state; if they do, it indicates the application process exited unexpectedly.
Why it happens
- 1Job or CronJob task completed its work and all containers exited cleanly
- 2A one-shot pod (restartPolicy: Never) finished execution
How to reproduce
Seen in kubectl get pods output after a batch job finishes.
trigger — this will error
trigger — this will error
kubectl get pods # NAME READY STATUS RESTARTS AGE # batch-job-xyz 0/1 Completed 0 5m
expected output
NAME READY STATUS RESTARTS AGE batch-job-xyz 0/1 Completed 0 5m
Fix
Clean up completed Job pods
WHEN Completed pods are accumulating and consuming namespace quota
Clean up completed Job pods
# Set ttlSecondsAfterFinished on Job spec: ttlSecondsAfterFinished: 300 # Or manually delete kubectl delete pod batch-job-xyz
Why this works
TTL controller automatically removes completed pods after the specified duration.
Sources
Official documentation ↗
Kubernetes Documentation
Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev