通常情况下我们不需要重新平衡task在节点上的分配。只有当我们新加了节点,或者一个节点重新接入Swarm时,Swarm不会自动将已存在的task按照新的节点个数从新在节点之间分配。这种设计的初衷是防止增加节点时,如果task重新分配会造成客户端访问的阻断。
在Docker 1.13或者更高版本,我们可以在命令docker service update使用使用--force或者-f参数来从新分配task。这会造成Service的task滚动重启。
docker service update
--force
-f