Docker Swarm(七)Scale 扩(缩)容服务

扩(缩)容服务

  • 扩容服务

Service还提供了复制(类似kubernetes里的副本)功能。可以通过 docker service scale 命令来设置服务中容器的副本数:

docker service scale masl=4

和创建服务一样,增加scale数之后,将会创建新的容器,这些新启动的容器也会经历从准备到运行的过程,过一分钟左右,服务应该就会启动完成,这时候可以再来看一下 masl 服务中的容器

可以看到,之前masl容器在manager-node和node1节点上各有一个实例,而现在又增加了2个实例。

特别需要清楚的一点:
如果一个节点宕机了(即该节点就会从swarm集群中被踢出),则Docker应该会将在该节点运行的容器,调度到其他节点,以满足指定数量的副本保持运行状态。

比如:

将node1宕机后或将node1的docker服务关闭,那么它上面的task实例就会转移到别的节点上。当node1节点恢复后,它转移出去的task实例不会主动转移回来,
只能等别的节点出现故障后转移task实例到它的上面。使用命令"docker node ls",发现node1节点已不在swarm集群中了。

在 node1 节点上关闭docker服务:

systemctl stop docker

过1分钟左右后,在 manager-node 节点上查看服务:

发现,node1节点关闭后,它上面之前的两个task任务已经转移到 manager-node 节点上了。

  • 缩容服务
docker service scale masl=2

发现,有2个task已经关闭了.

除了上面使用scale进行容器的扩容或缩容之外,还可以使用docker service update 命令。 可对 服务的启动 参数 进行 更新/修改。
[root@manager-node ~]# docker service update --replicas 3 masl
masl
  • 删除服务

把所有节点上的所有容器(task任务实例)全部删除了

docker service rm masl

原文地址:https://www.cnblogs.com/caoweixiong/p/12431520.html