如何解决由于超过docker的提取速率限制而导致的pod故障



kubectl get all-n迁移:

NAME                          READY   STATUS             RESTARTS   AGE
pod/nginx2-7b8667968c-zxtq7   0/1     ImagePullBackOff   0          5m38s
NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx2   0/1     1            0           5m38s
NAME                                DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx2-7b8667968c   1         1         0       5m38s

kubectl描述pod nginx2-7b8667968c-zxtq7-n迁移:

Events:
Type     Reason          Age                From               Message
----     ------          ----               ----               -------
Normal   Scheduled       44s                default-scheduler  Successfully assigned migration/nginx2-7b8667968c-zxtq7 to k8s-master01
Normal   SandboxChanged  33s                kubelet            Pod sandbox changed, it will be killed and re-created.
Normal   Pulling         18s (x2 over 43s)  kubelet            Pulling image "nginx"
Warning  Failed          14s (x2 over 34s)  kubelet            Failed to pull image "nginx": rpc error: code = Unknown desc = Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit
Warning  Failed          14s (x2 over 34s)  kubelet            Error: ErrImagePull
Normal   BackOff         3s (x4 over 32s)   kubelet            Back-off pulling image "nginx"
Warning  Failed          3s (x4 over 32s)   kubelet            Error: ImagePullBackOff

使用不同的docker帐户登录后:

我可以使用docker pull nginx手动从docker中提取图像

但是在部署部署时,它再次显示相同的错误。

部署yaml如下:

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx2
namespace: migration
spec:
replicas: 1
selector:
matchLabels:
name: nginx2
template:
metadata:
labels:
name: nginx2
spec:
containers:
- name: nginx2
imagePullPolicy: Always
image: nginx
ports:
- containerPort: 3000
volumeMounts:
- name: game-demo
mountPath: /usr/src/app/config
- name: secret-basic-auth
mountPath: /usr/src/app/secret
- name: site-data2
mountPath: /var/www/html
volumes:
- name: game-demo
configMap:
name: game-demo
- name: secret-basic-auth
secret:
secretName: secret-basic-auth
- name: site-data2
persistentVolumeClaim:
claimName: demo-pvc-claim2

此外,由于nginx映像在本地存在,我尝试将imagePullPolicy修改为Never以及"IfNotPresent"。

但什么都不管用。请引导。

这是您的错误:

警告失败14s(x2超过34s(kubelet无法提取映像"nginx":rpc错误:代码=未知desc=来自守护进程的错误响应:toomanyrequests:您已达到提取速率限制。您可以通过身份验证和升级来增加限制:https://www.docker.com/increase-rate-limit

基本上,如果你超过他们的费率限制,docker hub现在将成为一种付费的东西。您可以使用公开托管的";nginx";来自亚马逊的ECR:

docker pull public.ecr.aws/nginx/nginx:latest

这应该与您使用的相同,只需在此处仔细检查:https://gallery.ecr.aws/nginx/nginx

最新更新