Docker swarm - 添加新工作人员 - 重新扩展服务

Docker swarm - add new worker - re scale the service

我创建了一个 docker 经理。在同一台服务器中创建了一个服务并扩展到 5 个实例。

我加了两个工人。现在,我如何在 3 个节点上重新分配应用程序的 5 个实例?

是否可以不从头开始做任何事情?

docker service scale id=5 做到了。这是正确的方法吗?我不想重新启动已经存在的实例。它在节点 1 重新启动。

docker service update servicename

我通过 docker swarm leave 从集群中删除了一个节点。我更新了服务。我的所有实例都在剩余节点中复制。

很高兴,更新按预期工作。但是,还有另一个转折点。

我把节点加回去了。然后我更新了服务。现在,我所有的实例都是 运行 和之前的情况一样。它不使用新节点。

它是如何工作的?

要重新分发,您不需要销毁并重新创建服务,但容器将在滚动升级中全部弹回。命令为docker service update --force $service_name


添加或删除节点时,docker只会在当前状态与目标状态存在差异时才重新安排。在执行上述更新命令之前,它不会过早地杀死 运行 容器以在新节点上重新安排。