有没有一种方法可以设置docker swarm,使其只使用特定的节点(工作者或管理者(作为故障转移节点?例如,如果一个特定的工作者死亡(或其上的服务死亡(,只有在那时它才会使用另一个节点,在此之前,就好像该节点不在群中一样。
不,这是不可能的。然而,docker swarm确实具有构建这一点的功能。假设您有3个工作节点,您希望在其中运行服务A。2/3节点将始终可用,节点3将作为备份。
- 为3个节点添加一个标签。例如:运行=服务A。这将确保您的服务仅在这3个节点中运行
- 运行
docker node update --availability drain <NODE-ID>
使第三节点无法调度任务 - 每当需要返回节点时,请运行
docker node update --availability active <NODE-ID>