如何确保每个Docker Swarm节点上至less运行一个服务
你好,docker群目前运行在3个节点上作为pipe理员。 我有一个简单的服务在所有3个节点上均匀分布6次。 但是,当我将1或2个节点脱机时,所有的服务在其余的节点/节点之间传播。 当我将所有节点重新联机时,所有服务都保留在未脱机的节点上。 我知道这是devise,因为这个概念是你不能为了重新平衡而离线服务。 但是为了在生产环境中运行,我需要在任何时候至less有一个服务在节点上运行。
是否有自动平衡,以确保至less有一个服务在每个Docker群集节点上运行?
这不适用于每个节点的多个副本 。 但是,如果您不知道全球服务:
Swarm模式有两种types的服务,即replicated
和global
。 对于replicated
服务,可以指定swarmpipe理器调度到可用节点的副本任务数。 对于global
服务,调度程序在每个可用节点上放置一个任务 。
docker service create \ --name <service name> \ --mode global \ <image name:tag>
请注意--mode global
。
replicated
模式是默认模式。
我知道这是devise,因为这个概念是你不能为了重新平衡而离线服务
您可以缩小规模并再次扩大规模,以便在不停机的情况下重新平衡各个节点上的容器,因为一个容器随时都可用。