Kubernetes 有状态集不转移到新节点

Kubernetes 有状态集不转移到新节点,kubernetes,kubernetes-statefulset,Kubernetes,Kubernetes Statefulset,我在Kubernetes集群上部署了一个有状态的set应用程序。它有持久卷等和一个副本。我面临的问题是,当我关闭运行有状态集的节点时,pod不会在新节点上重新启动。它继续等待节点启动,并最终在同一节点上重新启动。在StatefulSet规范中是否有一些我缺少的设置。我已经按照Kubernetes指南中提到的示例设置了相同的: 我遗漏了什么?这是故意的。当节点“停机”时,主节点不知道是安全停机(故意停机)还是网络分区。因此,具有该节点的PVC保持在同一节点上,并将该节点上的POD主标记为未知 默认

我在Kubernetes集群上部署了一个有状态的set应用程序。它有持久卷等和一个副本。我面临的问题是,当我关闭运行有状态集的节点时,pod不会在新节点上重新启动。它继续等待节点启动,并最终在同一节点上重新启动。在StatefulSet规范中是否有一些我缺少的设置。我已经按照Kubernetes指南中提到的示例设置了相同的:


我遗漏了什么?

这是故意的。当节点“停机”时,主节点不知道是安全停机(故意停机)还是网络分区。因此,具有该节点的PVC保持在同一节点上,并将该节点上的POD主标记为
未知

默认情况下,Kubernetes总是尝试在供应PVC的同一节点上创建pod,这就是pod在删除时总是出现在同一节点上的原因


只有当您
cordon
节点、
drain
节点和
delete
集群中的节点时,此PVC才会进入其他节点,现在master知道集群中不存在此节点。因此,master将PVC移动到另一个节点,pod出现在该节点上。

那么,如果StatefulSet无法自动故障切换,那么当节点出现计划外故障时,任何其他方法都可以使这种有状态应用程序(如mysql with PVC)自动故障切换?