为什么“Competed”容器会导致“CrashLoopBackOff”pod?

为什么“Competed”容器会导致“CrashLoopBackOff”pod?

我的问题与退出重新启动失败的容器 - 在 Minikube 中同步 pod 时出错。我遇到了同样的问题。我的问题是:

为什么“Competed”容器会导致“CrashLoopBackOff”pod?https://sysdig.com/blog/debug-kubernetes-crashloopbackoff/,“CrashLoopBackOff” 表示“你有一个 pod 正在启动、崩溃、重新启动,然后再次崩溃。”但我的 pod 根本没有崩溃,因为其中的容器没有任何错误就退出了。“重新启动”是意料之中的,因为默认的重启策略是Always

答案1

A部署应该继续运行执行某项任务,响应用户请求等。它不应该结束,直到收到命令。如果你想运行某项任务直到完成,你必须部署一个工作.您可以使用工作例如,如果你想运行一次,或者定时任务如果你想按计划运行它。

根据评论,您创建了一个没有控制器的 Pod。 API 文档明确规定:

建议用户仅通过控制器创建 Pod,而不是直接创建。请参阅控制器:Deployment、Job 或 StatefulSet。

本质上,这不是标准的部署方式。

答案2

我猜你遇到了另一个社区贡献者的困惑,因为到目前为止kubectl get pod命令的输出没有显示 Pod阶段在相应的STATUS列中,但它实际上是从 Pod 内的特定容器中检索状态,你可以containerStatuses:在 Pod 描述中的字段下找到相关信息,我回答的是相同的行为这里

查找解决的相关 Github 问题#76619以及相关的拉取请求#13840#12397

相关内容