首页 > 解决方案 > 使用 PersistentVolumes 的 Azure Kubernetes 故障转移

问题描述

我目前正在测试 Azure Kubernetes 如何处理 StatefulSets 的故障转移。我通过在我的一个节点上运行来模拟网络分区sudo iptables -A INPUT -j DROP,虽然不完美但足以测试一些东西。

1)。如何重用挂载到故障节点的磁盘?有没有办法手动释放磁盘并使其可用于重新安排的 pod?强制删除后释放资源需要很长时间,有时需要一个多小时。

2)。如果我从集群中删除一个节点,所有资源都会在一段时间后释放。问题是,在 Azure 仪表板中,即使我删除了一个节点,它仍将我的集群显示为使用 3 个节点。有没有办法手动重新添加已删除的节点,或者我每次都需要重建集群?

3)。我绝对不想使用ReadWriteMany.

基本上我想要的是让我的 StatefulSet pod 终止并让关联的磁盘分离,然后在发生网络分区或节点故障时在新节点上重新调度。我知道如果从网络分区恢复,Pod 将终止,但我希望自己控制该过程,或者至少让它更快发生。

标签: azurekubernetespersistent-volumespersistent-volume-claimsazure-disk

解决方案


  1. 是的,只需从门户(或 powershell\cli\api\etc)手动分离磁盘
  2. 这是不支持的,你不应该这样做。缩放\升级可能会解决这个问题,但它可能不会
  3. 好吧,不要。

推荐阅读