Docker 无法为部署创建拉取映像
我正在尝试用以下文件设置kubernetes吊舱。 该图像只是Docker HUB的基本hello world图像 但我总是出错 通过以下命令创建部署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
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