成功完成后 Kubernetes pod 处于 CrashLoopBackOff 状态
Kubernetes pod in CrashLoopBackOff state after successful completion
我在 Kubernetes 1.0 中 运行 建立了一个集群,我有一些容器我想 运行 定期作为 pod 中的边车容器——通常是推送或拉取备份.为此,我构建了一个 pod,其中包含我要备份的数据的容器,以及用于备份数据的 sidecar 容器。 sidecar 容器是一个基本的 bash 脚本,它会执行备份命令,然后休眠多长时间(比如 15 分钟)我想在备份之间等待,最后以 0 状态代码退出。
在 1.0 中,这非常有效。我的备份容器很简单,并不依赖于 运行 作为守护进程;它们几乎可以作为独立命令执行并按预期工作,但监视器使它们保持活动状态,因此使它们处于循环状态。
升级到 1.1 后,我注意到这些 pods 都一直处于 CrashLoopBackOff 状态,这意味着它们的重启被延迟了。这对于sidecar容器来说还好,但是这段时间生产数据的容器也不可用,这让我很意外。
有什么方法可以表明定期重启的 pod 不是崩溃循环,而是设计使然?还是解决这个问题的唯一方法是将 sidecar 容器变成一个永不退出的守护进程?
Is there some way I can signal that a pod being regularly restarted is not a crash loop, but is happening by design?
据我所知没有。
Or is the only way to solve this to turn the sidecar container into a daemon that never exits?
这将是我建议的解决方案。
我在 Kubernetes 1.0 中 运行 建立了一个集群,我有一些容器我想 运行 定期作为 pod 中的边车容器——通常是推送或拉取备份.为此,我构建了一个 pod,其中包含我要备份的数据的容器,以及用于备份数据的 sidecar 容器。 sidecar 容器是一个基本的 bash 脚本,它会执行备份命令,然后休眠多长时间(比如 15 分钟)我想在备份之间等待,最后以 0 状态代码退出。
在 1.0 中,这非常有效。我的备份容器很简单,并不依赖于 运行 作为守护进程;它们几乎可以作为独立命令执行并按预期工作,但监视器使它们保持活动状态,因此使它们处于循环状态。
升级到 1.1 后,我注意到这些 pods 都一直处于 CrashLoopBackOff 状态,这意味着它们的重启被延迟了。这对于sidecar容器来说还好,但是这段时间生产数据的容器也不可用,这让我很意外。
有什么方法可以表明定期重启的 pod 不是崩溃循环,而是设计使然?还是解决这个问题的唯一方法是将 sidecar 容器变成一个永不退出的守护进程?
Is there some way I can signal that a pod being regularly restarted is not a crash loop, but is happening by design?
据我所知没有。
Or is the only way to solve this to turn the sidecar container into a daemon that never exits?
这将是我建议的解决方案。