Docker 如何诊断从未准备就绪的Kubernetes群集?

Docker 如何诊断从未准备就绪的Kubernetes群集?,docker,kubernetes,google-kubernetes-engine,Docker,Kubernetes,Google Kubernetes Engine,我向Kubernetes部署了一个映像,但它从未准备好,即使在几个小时之后 $ kubectl get pods NAME READY STATUS RESTARTS AGE myapp-b8dd974db-9jbsl 0/1 ImagePullBackOff 0 21m 所有这些都是通过Quickstart以及我自己的Docker图像实现的 尝试连接失败 $ k

我向Kubernetes部署了一个映像,但它从未准备好,即使在几个小时之后

$ kubectl get pods

NAME                            READY     STATUS             RESTARTS   AGE
myapp-b8dd974db-9jbsl    0/1       ImagePullBackOff   0          21m
所有这些都是通过Quickstart以及我自己的Docker图像实现的

尝试连接失败

$ kubectl attach -it  myapp-b8dd974db-9jbs

Unable to use a TTY - container myapp did not allocate one
If you don't see a command prompt, try pressing enter.
error: unable to upgrade connection: container 
   myapp not found in pod myapp-b8dd974db-9jbsl_default
尝试通过HTTP访问它失败

在Stackdriver日志中,我看到如下消息

skipping: failed to "StartContainer" for "myapp"
with ImagePullBackOff: "Back-off pulling image 
\"gcr.io/myproject/myapp-image:1.0\""
没有这样的形象

然而,我确实部署了这些图像,云控制台显示POD是绿色的

kubectl似乎告诉我集群是正常的

$ kubectl get service myapp
NAME           TYPE           CLUSTER-IP     EXTERNAL-IP      PORT(S)          AGE
myapp   LoadBalancer   10.43.248.78   35.193.107.141   8222:31840/TCP   29m
如何诊断此问题?

您可以使用kubectl Descripte myapp-b8dd974db-9jbsl获取有关pod的更多信息

但是从状态消息“ImagePullBackOff”中,它可能试图下载docker映像,但失败了

这可能是因为几个原因,您将通过kubectl Descripte获得更多信息,但可能是您没有访问docker存储库的权限,或者image/image:标记不存在。

您可以使用kubectl Descripte myapp-b8dd974db-9jbsl来获取有关pod的更多信息

但是从状态消息“ImagePullBackOff”中,它可能试图下载docker映像,但失败了


这可能是因为几个原因,您将通过kubectl description获得更多信息,但可能是您没有访问该docker存储库的权限,或者image/image:标记不存在。

有趣的是,我刚刚重新部署了Hello示例,现在其中一个已在旧示例的ImagePullback处运行。现在它是否正常工作?您使用过描述命令吗?在运行之后,您还可以使用kubectl日志myapp-b8dd974db-9jbsl来获取容器的输出,重新定义构建序列并成功。在某些情况下,我可能忽略了docker push,但在其他情况下我做得很正确。谢谢。很有意思-我刚刚重新部署了Hello示例,现在其中一个已经在旧的ImagePullback中运行了。那么它现在工作了吗?您使用过描述命令吗?在运行之后,您还可以使用kubectl日志myapp-b8dd974db-9jbsl来获取容器的输出,重新定义构建序列并成功。在某些情况下,我可能忽略了docker push,但在其他情况下我做得很正确。非常感谢。