Getting ErrImagePull even after created with correct image

Please find below deatils terminal output and yaml file,

thor@jumphost ~$ cat httpd-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: httpd-pod
spec:
containers:

  • name: httpd-container
    image: httpd:latest
    resources:
    requests:
    memory: “15Mi”
    cpu: “100m”
    limits:
    memory: “20Mi”
    cpu: “100m”
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$ vi kiran.yaml
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$ kubectl apply -f kiran.yaml
    pod/httpd-pod created
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$ kubectl get po
    NAME READY STATUS RESTARTS AGE
    httpd-pod 0/1 ErrImagePull 0 10s
    thor@jumphost ~$
    thor@jumphost ~$
    thor@jumphost ~$ kubectl describe po httpd-pod
    Name: httpd-pod
    Namespace: default
    Priority: 0
    Service Account: default
    Node: kodekloud-control-plane/172.17.0.2
    Start Time: Tue, 30 Dec 2025 03:03:21 +0000
    Labels:
    Annotations:
    Status: Pending
    IP: 10.244.0.5
    IPs:
    IP: 10.244.0.5
    Containers:
    httpd-container:
    Container ID:
    Image: httpd:latest
    Image ID:
    Port:
    Host Port:
    State: Waiting
    Reason: ErrImagePull
    Ready: False
    Restart Count: 0
    Limits:
    cpu: 100m
    memory: 20Mi
    Requests:
    cpu: 100m
    memory: 15Mi
    Environment:
    Mounts:
    /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-pqxr5 (ro)
    Conditions:
    Type Status
    Initialized True
    Ready False
    ContainersReady False
    PodScheduled True
    Volumes:
    kube-api-access-pqxr5:
    Type: Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds: 3607
    ConfigMapName: kube-root-ca.crt
    ConfigMapOptional:
    DownwardAPI: true
    QoS Class: Burstable
    Node-Selectors:
    Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
    node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
    Events:
    Type Reason Age From Message

Normal Scheduled 26s default-scheduler Successfully assigned default/httpd-pod to kodekloud-control-plane
Normal Pulling 14s (x2 over 25s) kubelet Pulling image “httpd:latest”
Warning Failed 14s (x2 over 25s) kubelet Failed to pull image “httpd:latest”: rpc error: code = Unknown desc = failed to pull and unpack image “Docker Hub Container Image Library | App Containerization”: failed to read expected number of bytes: unexpected EOF
Warning Failed 14s (x2 over 25s) kubelet Error: ErrImagePull
Normal BackOff 1s (x2 over 25s) kubelet Back-off pulling image “httpd:latest”
Warning Failed 1s (x2 over 25s) kubelet Error: ImagePullBackOff

Same thing is happening for me in “Day 57: Print Environment Variables”. The pod image I need is bash but no matter how many times I restarted the lab, it always resulted in ErrImagePull.

1 Like

Same issue here as well when doing the CKA labs for deployments: Failed to pull image “byrnedo/alpine-cur
l: latest”: failed to pull and unpack image “docker. io/byrnedo/alpine-curl;latest”: failed to read expec ted number of bytes: unexpected EOF.

I’m experiencing the same issue when using one of the Argo CD course labs.

Failed to pull image “siddharth67/highway-animation:green”: failed to pull and unpack image “docker.io/siddharth67/highway-animation:green”: failed to read expected number of bytes: unexpected EOF

However, I can download images from other registries using crictl:
crictl pull public.ecr.aws/nginx/nginx:stable-perl

seems to be a known issue but they didn’not fix yet,
the k8s cluster in the playground stuck to pull image from docker hub, need to retry multiple time to succeed.
A workaround is to pull the image from another registry like ECR Public Gallery
Edit the kubectl config file to use another registry instead of docker.io, putting a direct link in manifest will result a wrong validation cause they will only look for “httpd:latest” not “link/to/registry/httpd:latest”

same issue I am facing issue with Kubernetes level 1 not able to pull images latest and others too

Faced similar issue and raise here : Issue pulling ubuntu:latest image for sidecar container – unexpected EOF error

same issue brought me here to find out the solution.

I’m having the same issue in 50th task, Pod with limits resource creation is there any outcome regarding this ErrImagePull? no way to pull the image manually.

This may have been an intermittent problem. I just tried the task; I can pull images. So please give it another try.

Thank you Rob, i will try again.