跳过有状态集中的 Pod 部署



我有一组有状态的 pod,由于它们的有状态性质,其中一个无法重新创建,因为某些状态错误删除它无济于事。

由于它是一个有状态的集合,Kubernetes 将阻止创建额外的 pod,直到它能够运行卡住的 pod。 Statefulsets具有podManagementPolicy:"Parallel",但不能在运行时更改。

问题是是否有办法让 kubernetes 跳过卡住的那个?

我相信您正在寻找一个已知问题的 WA

,该问题仍然未解决StatefulSet 将继续等待损坏的 Pod 变为就绪(这永远不会发生(,然后再尝试将其恢复到工作配置。

在升级方面,从官方文档在下面的 git hub 上找到了这一点

状态集中的 Pod 按相反的序序顺序更新。StatefulSet 控制器终止每个 Pod,并等待它转换为"正在运行"和"就绪",然后再更新下一个 Pod。

请注意,即使 StatefulSet 控制器在其序号后继者运行和就绪之前不会继续更新下一个 Pod,但它会将任何在更新过程中失败的 Pod 恢复到当前版本。已收到更新的容器将恢复到更新版本,尚未收到更新的容器将恢复到以前的版本。这样,控制器会尝试在出现间歇性故障时继续保持应用程序正常运行和更新一致。

读取强制回滚

滚动更新与默认容器管理策略 (OrderedReady( 结合使用时,可能会进入需要手动干预才能修复的损坏状态

最新更新