I am getting image pull outage due to reaching the image pull count limit from docker hub, see “Events” section of the output of pod describe below.
It seems a pod in the kubernetes cluster I have setup is not finding the image on docker hub and hence failing the pod construction phase. Kubernetes then tries to construct a new pod for with for the same image and attempts to pull the same image once more.
In Kubernetes, is there a way to limit the number of times images are pulled from an image repository.
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 6m3s default-scheduler Successfully assigned calico-system/calico-node-rq98n to centos7-03-10
Warning Failed 5m15s kubelet Failed to pull image "docker.io/calico/pod2daemon-flexvol:v3.24.0": rpc error: code = Unknown desc = initializing source docker://calico/pod2daemon-flexvol:v3.24.0: reading manifest v3.24.0 in docker.io/calico/pod2daemon-flexvol: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Normal Pulling 108s (x4 over 6m3s) kubelet Pulling image "docker.io/calico/pod2daemon-flexvol:v3.24.0"
Warning Failed 62s (x4 over 5m15s) kubelet Error: ErrImagePull
Warning Failed 62s (x3 over 3m53s) kubelet Failed to pull image "docker.io/calico/pod2daemon-flexvol:v3.24.0": rpc error: code = Unknown desc = reading manifest v3.24.0 in docker.io/calico/pod2daemon-flexvol: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Normal BackOff 21s (x7 over 5m15s) kubelet Back-off pulling image "docker.io/calico/pod2daemon-flexvol:v3.24.0"
Warning Failed 21s (x7 over 5m15s) kubelet Error: ImagePullBackOff
Cluster information:
Kubernetes version: v1.24.2
Deployment type: on-premises using VMs (libvirt)
Installation method: kubeadm
Host OS: Centos 7.2009
CNI and version: Calico v3.24.0
CRI and version: CRI-O v1.24.2