如何自动将已死亡 Docker 的 Swarm Manager 替换为至少有 x manager 运行?

How to automatically have dead Docker Swarm Manager replaced to have at least x manager running?

人们如何检测并自动更换死掉的 Swarm Manager?

考虑到这一点似乎很重要:"If the swarm loses the quorum of managers, the swarm cannot perform management tasks."

您需要使用外部监控解决方案来实现它。它不是 docker 集群模式的内置功能。

实施此解决方案并非易事。首先,请记住,当您升级一个节点时,您现在将授予它对 swarm 的完全管理访问权限,而普通工作人员拥有 none 的访问权限,因此请确保您的安全模型可以接受此更改。您还需要避免级联故障,其中一个管理器的过载导致它失败,并且自动提升其他节点会导致它们立即失败,直到没有更多的工作人员,因为现有的工作负载被重新分配到越来越少的节点。最后,当您添加新的管理器时,您需要考虑如何处理对当前失败的管理器的引用。如果它恢复了,您是想让它从中断的地方继续,还是想让它从 swarm 中完全移除以减少仲裁所需的节点数。

最后要注意的一件事是,当您失去法定人数时,节点将继续 运行 它们已启动的容器。您唯一失去的是管理和更改该基础架构的能力。因此,我见过的大多数地方都有 3 或 5 个管理器,具体取决于所需的容错级别,并且通常使管理器虚拟化,这样如果发生故障,VM 映像可以在其环境中的其他地方轻松重启。