Docker 无法为部署创建拉取映像

Docker 无法为部署创建拉取映像,docker,kubernetes,Docker,Kubernetes,我正在尝试用以下文件设置kubernetes吊舱。 该图像只是Docker HUB的基本hello world图像 但我总是出错 通过以下命令创建部署 kubectl apply -f config.yaml 没有错误,并表示已创建部署。 但几秒钟后,当我试图通过下面的命令查看吊舱时,我得到了这些错误 kubectl get pod 输出 some-deployment-857fb6d98b-jzwhq 0/1 ImagePullBackOff 0 some

我正在尝试用以下文件设置kubernetes吊舱。 该图像只是Docker HUB的基本hello world图像

但我总是出错

通过以下命令创建部署

kubectl apply -f config.yaml
没有错误,并表示已创建部署。 但几秒钟后,当我试图通过下面的命令查看吊舱时,我得到了这些错误

kubectl get pod
输出

some-deployment-857fb6d98b-jzwhq   0/1     ImagePullBackOff   0         
some-deployment-857fb6d98b-ethfs   0/1     ImagePullBackOff   0          
some-deployment-857fb6d98b-w8hgt   0/1     ImagePullBackOff   0  

    
过了一会儿,当我运行相同的get pod命令时,我得到了这些

some-deployment-6f88c9fd89-65c47   0/1     CrashLoopBackOff   8          
some-deployment-84d66585d4-k52ns   0/1     CrashLoopBackOff   9          
some-deployment-857fb6d98b-jzwhq   0/1     ErrImagePull       0          
some-deployment-857fb6d98b-w8hgt   0/1     ErrImagePull       0  

    
我只是换了另一张图片,看看这张图片是否有问题。
它一直在变化。为什么我现在有4个豆荚

some-deployment-6f88c9fd89-65c47   0/1     Completed          8          
some-deployment-84d66585d4-k52ns   0/1     CrashLoopBackOff   8          
some-deployment-857fb6d98b-jzwhq   0/1     ImagePullBackOff   0          
some-deployment-857fb6d98b-w8hgt   0/1     ImagePullBackOff   0 

     
过了一段时间,这个

some-deployment-6f88c9fd89-65c47   0/1     CrashLoopBackOff   8          
some-deployment-84d66585d4-k52ns   0/1     CrashLoopBackOff   9          
some-deployment-857fb6d98b-jzwhq   0/1     ImagePullBackOff   0          
some-deployment-857fb6d98b-w8hgt   0/1     ImagePullBackOff   0  

    
问题似乎在于形象拉动。在我的案例中,图像来自公共码头中心。
是什么导致图像拉取问题

这是正在使用的文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: networkchuckcoffee-deployment
  labels:
    app: nccoffee
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nccoffee
  template:
    metadata:
      labels:
        app: nccoffee
    spec:
      containers:
      - name: nccoffee
        image: hello-world # initially attempted this image which is also public on DockerHUB -> thenetworkchuck/nccoffee 
        imagePullPolicy: Always
        ports:
        - containerPort: 80
豆荚原木。所有吊舱的信息相同:

使用的命令:

kubectl logs some-deployment-857fb6d98b-w8hgt
--

描述日志:(即使此处有敏感数据也不关心,将在之后删除此部署)

名称:some-deployment-857fb6d98b-jzwhq
名称空间:默认值
优先级:0
节点:app-pool-8nid8/10.106.0.5
开始时间:2021年2月6日星期六15:45:38+0000
标签:app=nccoffee
pod模板哈希=857fb6d98b
注释:
状态:正在运行
IP:10.244.1.96
IPs:
IP:10.244.1.96
控制人:ReplicaSet/some-deployment-857fb6d98b
容器:
咖啡:
容器ID:containerd://beb3b0ac0cd63abc1821e259c0fe24b8d8170bee68d50bffc5590c9154f07ead
图片:你好,世界
图像ID:docker.io/library/hello-world@sha256:31b9c7d48790f0d8c50ab433d9c3b7e17666d6993084c002c2ff1ca09b96391d
端口:80/TCP
主机端口:0/TCP
国家:等待
原因:仓促退却
最后状态:终止
原因:已完成
退出代码:0
开始时间:2021年2月6日星期六15:56:40+0000
完成时间:2021年2月6日星期六15:56:40+0000
就绪:错误
重新启动计数:7
环境:
挂载:
/来自default-token-n4n95(ro)的var/run/secrets/kubernetes.io/serviceCount
条件:
类型状态
初始化为True
准备错误
集装箱准备好了吗
播客预定为真
卷数:
default-token-n4n95:
类型:Secret(由Secret填充的卷)
SecretName:default-token-n4n95
可选:false
QoS等级:最佳努力
节点选择器:
容差:node.kubernetes.io/未就绪:NoExecute op=存在300秒
node.kubernetes.io/unreachable:NoExecute op=存在300秒
活动:
从消息中键入原因年龄
----     ------     ----                 ----               -------
正常计划的13m默认计划程序已成功将默认/某些部署-857fb6d98b-jzwhq分配给app-pool-8nid8
正常拉取13m kubelet成功拉取802.715724ms的图像“hello world”
正常拉取13m kubelet以766.964136ms成功拉取图像“hello world”
正常拉动12米kubelet以790.211436毫秒成功拉动图像“hello world”
正常创建的12m(x4/13m)kubelet创建的容器
正常拉动12米kubelet以794.431351毫秒成功拉动图像“hello world”
正常启动12米(x4超过13米)kubelet启动容器
正常拉力11米(x5/13米)kubelet拉力图像“hello world”
正常拉动11米kubelet以807.455498毫秒成功拉动图像“hello world”
警告后退3m1s(x47超过13m)kubelet后退重新启动失败的容器

CrashLoopBackoff
对于
hello world
图像来说是一种完全正常的状态。它的设计目的是打印您在日志中看到的消息,然后退出。它正在做它被设计用来做的事情

Kubernetes部署希望有能够保持运行的容器。因此,当容器退出时,它将自动重新启动。如果一个容器一启动就一直退出,则假定它正在崩溃,因此我们得到
CrashLoopBackoff
。你需要一个不会离开的容器<代码>你好世界不是吗

正如其他人所提到的,你在网络Chuck/nccoffee上的问题很可能是你已经达到了DockerHub的每日拉力极限

最后,您有四个部署的原因是您没有删除失败的部署;部署将一直运行,直到被删除。ImagePullback是nccoffee图像,最有可能是hello world图像的CrashLoopback

kubectl-list-deployment
将显示您拥有的,然后您可以使用
kubectl-delete-deployment


或者,
kubectl delete-f
将删除您使用
kubectl apply-f
创建的内容(或
kubectl create-f…

是否检查您是否未达到dockerhub pull限制(以匿名用户身份从内存100pull/6h)?如果您正在使用单个传出IP从企业网络运行群集,这种情况可能会很快发生。当您从本地网络运行
kubectl logs
@Zeitounator,并且现在只运行此文件两次时,Kubernetes会发出什么日志。因此,猜6张图片拉*你好世界图片,这是非常小的。大小不重要(我说的是图片;))只有数字。按照@MargachChris的建议查看日志会给您提供更多线索。@Margachris在上面为一个处于crashLoopBackOff状态的POD添加了日志。所有pod日志都输出相同的消息。请欣赏此答案中的详细信息。当然澄清了我的疑虑。这与上面的评论一起触发了寻找th的正确位置
Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
Name:         some-deployment-857fb6d98b-jzwhq
Namespace:    default
Priority:     0
Node:         app-pool-8nid8/10.106.0.5
Start Time:   Sat, 06 Feb 2021 15:45:38 +0000
Labels:       app=nccoffee
              pod-template-hash=857fb6d98b
Annotations:  <none>
Status:       Running
IP:           10.244.1.96
IPs:
  IP:           10.244.1.96
Controlled By:  ReplicaSet/some-deployment-857fb6d98b
Containers:
  nccoffee:
    Container ID:   containerd://beb3b0ac0cd63abc1821e259c0fe24b8d8170bee68d50bffc5590c9154f07ead
    Image:          hello-world
    Image ID:       docker.io/library/hello-world@sha256:31b9c7d48790f0d8c50ab433d9c3b7e17666d6993084c002c2ff1ca09b96391d
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Sat, 06 Feb 2021 15:56:40 +0000
      Finished:     Sat, 06 Feb 2021 15:56:40 +0000
    Ready:          False
    Restart Count:  7
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-n4n95 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  default-token-n4n95:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-n4n95
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
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  13m                  default-scheduler  Successfully assigned default/some-deployment-857fb6d98b-jzwhq to app-pool-8nid8
  Normal   Pulled     13m                  kubelet            Successfully pulled image "hello-world" in 802.715724ms
  Normal   Pulled     13m                  kubelet            Successfully pulled image "hello-world" in 766.964136ms
  Normal   Pulled     12m                  kubelet            Successfully pulled image "hello-world" in 790.211436ms
  Normal   Created    12m (x4 over 13m)    kubelet            Created container nccoffee
  Normal   Pulled     12m                  kubelet            Successfully pulled image "hello-world" in 794.431351ms
  Normal   Started    12m (x4 over 13m)    kubelet            Started container nccoffee
  Normal   Pulling    11m (x5 over 13m)    kubelet            Pulling image "hello-world"
  Normal   Pulled     11m                  kubelet            Successfully pulled image "hello-world" in 807.455498ms
  Warning  BackOff    3m1s (x47 over 13m)  kubelet            Back-off restarting failed container