在 kubernetes 集群中部署映像获取 CrashLoopBackOff
Posted
技术标签:
【中文标题】在 kubernetes 集群中部署映像获取 CrashLoopBackOff【英文标题】:deploying image in kubernetes cluster getting CrashLoopBackOff 【发布时间】:2018-12-10 15:19:18 【问题描述】:我正在使用 kubernetes 集群使用 kubectl create -f dummy.yaml 部署映像。我的图像在 docker hub 中是公开的,图像大小为 1.3 GB。 图像拉取成功但没有运行它是“CrashLoopBackOff”。 当我运行创建部署命令“kubectl create -f dummy.yaml”时,我得到了:
Name READY STATUS RESTARTS AGE
dummy-ser-5459bf444d-9b7sz 0/1 CrashLoopBackOff 118 10h
我尝试在我的 yaml 文件中使用command: [ "/bin/bash", "-c", "--" ]
args: [ "while true; do sleep 30; done;" ]
,它适用于 700 MB 的图像大小,但是当我将它与 1.3 GB 的其他图像一起使用时它会显示 CrashLoopBackOff,拉动后的容器似乎无法运行,因为图像成功拉取。
描述 pod 显示:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 12m default-scheduler Successfully assigned dummy-ser-779 7db4cd4-djqdz to node02
Normal SuccessfulMountVolume 12m kubelet, node02 MountVolume.SetUp succeeded for vol ume "default-token-8p9lq"
Normal Created 1m (x4 over 2m) kubelet, node02 Created container
Normal Started 1m (x4 over 2m) kubelet, node02 Started container
Warning BackOff 53s (x8 over 2m) kubelet, node02 Back-off restarting failed containe r
Normal Pulling 41s (x5 over 12m) kubelet, node02 pulling image "xxx/dummyenc:ba ni"
Normal Pulled 40s (x5 over 2m) kubelet, node02 Successfully pulled image "xxx
在此感谢您
【问题讨论】:
如果您收到CrashLoopBackOff
,则图像已成功拉取并且它没有启动(或退出)。如果不知道镜像的更多细节(比如它的 Dockerfile 和 Kubernetes 部署规范)或失败 pod 的kubectl logs
输出,就很难说更多了。
@DavidMaze 我添加了从 describe pods commad 获得的事件日志
kubectl logs --previous xxx
在那个 pod 上
@HoMan kubectl logs --previous xxx 显示“服务器没有资源类型”xxx“”
.. 你应该输入 pod 名称。例如kubectl logs --previous dummy-ser-5459bf444d-9b7sz
【参考方案1】:
我解决了这个问题。我收到此错误是因为该映像与我尝试在 (ARM7)RPi 上运行的硬件不兼容。我使用 docker build for Dockerfile 在 ubuntu 64 位上创建映像,以便映像无法在 Raspberry pi 上运行。
【讨论】:
以上是关于在 kubernetes 集群中部署映像获取 CrashLoopBackOff的主要内容,如果未能解决你的问题,请参考以下文章
如何从 IntelliJ 运行/部署 Spring Boot 微服务到本地 Kubernetes 集群?
Kubernetes 集群部署 Metrics Server 获取集群 Metric 数据