gpt4 book ai didi

Kubernetes StatefulSet pod 启动错误恢复

转载 作者:行者123 更新时间:2023-12-02 12:21:35 29 4
gpt4 key购买 nike

如果您在 StatefulSet 规范中修补镜像名称,Kubernetes StatefulSet (v1.8) 将自动将其管理的 pod 滚动到新镜像——毕竟,编排这种更新是其主要工作之一。但是,如果在镜像拉取步骤中部署修改后的镜像失败(例如,镜像名称中存在拼写错误,因此没有要拉取的镜像),它尝试使用新镜像重新启动的第一个 pod 会卡在ImagePullBackOff 状态和翻转停止。很好,这几乎是您想要和期望的。但是,如果您随后再次修补 StatefulSet 规范以更正错误,则该集合不会被修复——它只是处于损坏状态——直到您(手动)删除失败的 pod,此时一切都将按应有的方式进行一切都会恢复到健康状态。

我认为应该有一种方法来配置事物,以便在更新镜像名称时自动发生这种恢复,就像正常部署一样,而不是需要手动干预(特别是因为这是针对 CI-类型的应用程序,无论如何这一切都需要自动化)。我不禁觉得我只是没有在文档中找到正确的选项,但是仔细阅读文档并进行无休止的谷歌搜索并没有发现一个成功的秘诀。有没有办法将这种恢复配置为自动发生,如果是,它是什么?

如果做不到这一点,是否有一种优雅的方法可以自动检测失败状态以触发对失败 pod 的脚本删除?
我尝试过的一切似乎都很笨拙,有很多轮询和临时超时,所以我很难相信这是正确的做法。

最佳答案

我在 GitHub 上提出了同样的问题.现在的答案是,不,没有选择,而且可能缺少文档。我们正在开始讨论,看看是否有任何方法可以改进这一点。
现在,解决方法可能依赖于轮询和超时。但是,这首先取决于您如何部署 StatefulSet。一些部署工具(如带有 --wait 选项的 Helm)可以配置为等待所有 pod 运行。

关于Kubernetes StatefulSet pod 启动错误恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48894414/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com