ImagePullBackOff: When Kubernetes Cannot Pull Your Image
ErrImagePull and ImagePullBackOff mean the kubelet never got your container image — not that your app crashed. How to diagnose tag, registry, and secret issues fast.
You deploy. The Pod never reaches Running.
kubectl get pods -n prodapi-x7 0/1 ImagePullBackOff 0kubectl describe pod api-x7 -n prod shows:
Warning Failed kubelet Error: ErrImagePull
Warning Failed kubelet rpc error: code = NotFound desc = manifest unknown: v2.1The container never started. There is nothing useful in kubectl logs yet — the image is the blocker.
ImagePullBackOff vs ErrImagePull
| Status | Meaning |
|---|---|
| **ErrImagePull** | Latest pull attempt failed |
| **ImagePullBackOff** | Kubelet backs off between retries |
Both point to the same class of problem: registry, tag, auth, or network — not application code.
Common causes
1. Wrong tag or typo
manifest unknown almost always means the tag does not exist in that registry. Check:
kubectl get deploy api -n prod -o jsonpath='{.spec.template.spec.containers[0].image}{"\n"}'Compare with your registry UI or docker pull / crictl pull from a test machine.
2. Private registry without pull secret
Symptoms: 401 Unauthorized or pull access denied. Fix:
kubectl get pod api-x7 -n prod -o jsonpath='{.spec.imagePullSecrets}'
kubectl create secret docker-registry regcred ...
kubectl patch serviceaccount default -p '{"imagePullSecrets":[{"name":"regcred"}]}'Or set imagePullSecrets on the Pod template.
3. ImagePullPolicy: Never
If the tag exists only locally on one node and policy is Never, other nodes fail. Usually you want IfNotPresent or Always with a real registry.
4. Registry rate limits or outage
Docker Hub anonymous limits, regional outages, or DNS failures show as timeout errors in Events — not manifest unknown.
First-step workflow
kubectl describe pod— read Events for the exact registry error- Verify image string in Deployment/StatefulSet spec
- Test pull from a node (
crictl pull) if you have SSH access - Check pull secrets and ServiceAccount wiring
Do not delete the Pod repeatedly hoping the tag appears — fix the image reference or registry access.
Exam angle (CKAD)
Examiners love wrong tags and missing imagePullSecrets. Your first move is describe + read Events, then fix the manifest — not restart the kubelet.
Practice ImagePull-style decisions in Pod Debugging (free) and CKAD Exam Prep.