Docker 工人在重启后从负载中解脱出来
Docker worker is freed from the load after reboot
我有一个 docker 群,由一名经理和一名工人组成。
当我创建一个有 4 个副本的服务时,我在每个节点上有两个容器(2 个在管理节点上,2 个在工作节点上)。
- 我重新启动了工作节点,所以我发现管理器现在拥有所有负载(4 个容器)。
- 重启后,manger还有4个container,worker什么都没有
worker节点重启后不是应该自动重新分配负载吗?
如果不行,如何重新分配负载?
只有一个管理器,您没有 HA,当它出现故障时,不会重新安排任何内容。您至少需要 3 个管理器才能支持单个向下管理器场景。当单个管理器重新启动时,这是调度程序分配工作负载和现有节点重新连接之间的竞争条件,工作节点不太可能获胜。
Swarm 模式也不会主动重新调整重新安排工作负载,当向集群添加新节点时,或者只是重新启动停机节点时,现有任务将继续 运行 在其当前节点中,直到发生强制更改他们被重新安排。该更改可以是关闭节点,也可以是对服务的更新。这提高了 HA,因为新节点可能是 unstable/flapping.
要强制群模式重新平衡服务,您可以运行:
docker service update --force $service_name
这将强制更新而不对该服务进行任何其他修改。 (将 $service_name
替换为您的服务名称或 ID。)
我有一个 docker 群,由一名经理和一名工人组成。
当我创建一个有 4 个副本的服务时,我在每个节点上有两个容器(2 个在管理节点上,2 个在工作节点上)。
- 我重新启动了工作节点,所以我发现管理器现在拥有所有负载(4 个容器)。
- 重启后,manger还有4个container,worker什么都没有
worker节点重启后不是应该自动重新分配负载吗?
如果不行,如何重新分配负载?
只有一个管理器,您没有 HA,当它出现故障时,不会重新安排任何内容。您至少需要 3 个管理器才能支持单个向下管理器场景。当单个管理器重新启动时,这是调度程序分配工作负载和现有节点重新连接之间的竞争条件,工作节点不太可能获胜。
Swarm 模式也不会主动重新调整重新安排工作负载,当向集群添加新节点时,或者只是重新启动停机节点时,现有任务将继续 运行 在其当前节点中,直到发生强制更改他们被重新安排。该更改可以是关闭节点,也可以是对服务的更新。这提高了 HA,因为新节点可能是 unstable/flapping.
要强制群模式重新平衡服务,您可以运行:
docker service update --force $service_name
这将强制更新而不对该服务进行任何其他修改。 (将 $service_name
替换为您的服务名称或 ID。)