设置docker swarm以使用特定节点作为备份



有没有一种方法可以设置docker swarm,使其只使用特定的节点(工作者或管理者(作为故障转移节点?例如,如果一个特定的工作者死亡(或其上的服务死亡(,只有在那时它才会使用另一个节点,在此之前,就好像该节点不在群中一样。

不,这是不可能的。然而,docker swarm确实具有构建这一点的功能。假设您有3个工作节点,您希望在其中运行服务A。2/3节点将始终可用,节点3将作为备份。

  1. 为3个节点添加一个标签。例如:运行=服务A。这将确保您的服务仅在这3个节点中运行
  2. 运行docker node update --availability drain <NODE-ID>使第三节点无法调度任务
  3. 每当需要返回节点时,请运行docker node update --availability active <NODE-ID>

最新更新