我创建了一个码头管理器。创建了一个服务,并在同一服务器中扩展到5个实例。
我增加了两名工人。现在,如何跨3个节点重新分配5个应用程序实例?
从一开始就没有做任何事情可以做什么吗?
docker service scale id=5
做到了。这是正确的方法吗?我不想重新启动已有的实例。它在节点1重新启动。
docker service update servicename
我通过docker swarm leave
从群集中删除一个节点。我更新了服务。我的所有实例都在剩余的节点中复制。
很高兴,更新按预期工作。但是,还有另一个转折点。
我添加了节点。然后我更新了服务。现在,我的所有实例都像前面的情况一样运行。它没有使用新节点。
它是如何运作的?
答案 0 :(得分:1)
要重新分发,您不需要销毁和重新创建服务,但容器将全部在滚动升级中退回。命令为string aname = GetAttributValue<wkHtmlOptionNameAttribute, string>(fi, a => a.Name );
添加或删除节点时,只有在当前状态和目标状态之间存在差异时,才会重新安排docker。在您执行上述更新命令之前,它不会过早地终止运行容器以重新安排在新节点上。