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
  1. 1Job or CronJob task completed its work and all containers exited cleanly
  2. 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

← All Kubernetes errors