Full lesson
Explore the full explanation, examples, and visuals at your own pace.
Illustrative status snapshots
A Pod that isn’t running can be blocked at different startup steps. These are three separate illustrative snapshots of web, not output from your cluster: Pending, ImagePullBackOff, and CrashLoopBackOff each point investigation in a different direction.
NAME READY STATUS
web 0/1 Pending
web 0/1 ImagePullBackOff
web 0/1 CrashLoopBackOffLocate the blocked step
Startup moves through Schedule, Pull image, then Start process. In separate examples, Pending points first toward scheduling, ImagePullBackOff toward image retrieval, and CrashLoopBackOff toward container startup. Pending is a Pod phase, not proof of a scheduling failure; the BackOff labels are container waiting reasons.
Pending: check scheduling evidence
For the sample Pod web, use kubectl describe pod web to check the Events section for scheduling clues. Then check node readiness and available capacity with kubectl get nodes. Scheduling constraints can also prevent placement, so Pending alone isn’t a diagnosis.
kubectl describe pod web
kubectl get nodesThe image cannot be retrieved
ImagePullBackOff means the Kubelet couldn’t retrieve the image. It asks the Registry, gets a failed pull, then waits before retrying, with later attempts delayed. Check the Pod’s events: an image name or tag error points to the reference, while denied access points to registry credentials or permissions.
A Pod shows ImagePullBackOff. Which evidence should you check first?
Let's think this through. A Pod shows ImagePullBackOff. Which evidence should you check first? A: The registry error in Pod events. B: The previous container's application logs. C: Node capacity for scheduling. Choose an answer, or just think it through. I'll explain in a moment.
- The registry error in Pod events
- The previous container's application logs
- Node capacity for scheduling
A Pod shows ImagePullBackOff. Which evidence should you check first?
The answer is A: The registry error in Pod events. The image download failed before the container could start. Pod events often identify whether the image reference is wrong or registry access was denied. Previous application logs help with a container that already ran.
- The registry error in Pod events
- The previous container's application logs
- Node capacity for scheduling
ImagePullBackOff: inspect the pull error
For web in ImagePullBackOff, run kubectl describe pod web; its events often show the registry error. Then use kubectl get pod web -o yaml to verify the image reference and imagePullSecrets.
kubectl describe pod web
kubectl get pod web -o yamlThe container starts, then exits
Unlike an image pull failure, this container actually starts. The diagram cycles from Start to Exit, through Backoff and Restart, then starts again; Kubernetes increases delays between attempts. Application errors, bad configuration, or failing health checks can trigger this pattern.
CrashLoopBackOff: inspect the last exit
With CrashLoopBackOff, the current container may be gone, so kubectl logs web --previous retrieves output from its prior instance. kubectl describe pod web can show exit details or probe failures; if logs are missing, inspect events.
kubectl logs web --previous
kubectl describe pod webCheck the step, then its evidence
Check the step, then its evidence. For Pending, inspect events; for image pull failures, check registry errors; for repeated exits, read previous container logs. Pending alone doesn’t prove scheduling failure.


