当容器注册表也无法访问时,控制 pod 从“错误:ImagePullBackOff”恢复

uci*_*ass 3 kubernetes container-registry kubernetes-pod

当我们的容器注册表和整个 K8S 集群都断电时,我们发生了一次严重的中断。当集群恢复速度快于容器注册表时,我的 pod(有状态集的一部分)陷入困境 Error: ImagePullBackOff

是否有配置设置可以定期重试从 CR 下载映像或在无需手动干预的情况下恢复?

我查看了imagePullPolicy,但这不适用于 CR 不可用的情况。

ana*_*rxz 5

BackOff 状态中的部分意味着 ImagePullBackOff Kubernetes 不断尝试从注册表中提取映像,并具有指数退避延迟(10 秒、20 秒、40 秒、\xe2\x80\xa6)。每次尝试之间的延迟会增加,直到达到 300 秒(5 分钟)的编译限制 - Kubernetes 文档中有更多相关信息中有更多相关信息。

\n

backOffPeriod图像拉取的参数是 Kubernetes 中的硬编码常量,不幸的是现在无法调整,因为它会影响节点性能 - 否则,可以在自定义 kubelet 二进制文件的代码中对其进行调整。\n仍然存在问题使其可调。

\n

  • 非常感谢您的全面解答!也非常感谢源代码的链接!我认为存在与 MaxContainerBackOff 硬编码 300 相关的潜在错误,因为我必须在 20 多分钟后重新启动 Statefulset 才能触发图像下载。 (2认同)