在 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 集群?

pod 没有在 kubernetes 中创建,但存在部署?

为已部署的 Kubernetes 服务获取 YAML?

Kubernetes 集群部署 Metrics Server 获取集群 Metric 数据

Kubernetes 集群部署 Metrics Server 获取集群 Metric 数据

kubernetes:无法使用具有 RW 访问权限的持久卷部署 jenkins 映像