【问题标题】:Does docker swarm mode start replicas simultaneously or wait until each one finishes?docker swarm 模式是同时启动副本还是等到每个副本完成?
【发布时间】:2021-05-27 22:07:08
【问题描述】:

我正在尝试使用 docker swarmdocker service 来部署 Confluence 数据中心。但是,Atlassian documentation for the clustering part 给出了这个警告:

您一次只能启动一个节点。同时启动多个节点可能会导致严重的故障。

docker swarm 服务副本的默认启动策略是什么?它们是同时开始的,还是一个接一个?如果一个接一个,它如何决定一个完成开始?

【问题讨论】:

标签: docker docker-swarm confluence


【解决方案1】:

默认情况下 docker swarm 创建副本同时,但一次更新一个副本(滚动更新)。据我所知,您无法控制创建,但您可以使用一个副本创建应用程序,然后对其进行更新:

docker service create --replicas 1 --name apache httpd:alpine
sleep 60 # one minute
docker service update --replicas 2 apache
sleep 60 # one more minute ...
docker service update --replicas 3 apache

这是安全的,因为如果您不更改除--replicas 之外的任何参数,则现有副本不会受到影响。

如果您想更新一个副本,您可以使用--update-parallelism,并进一步控制每个更新副本之间的时间--update-delay

docker service update apache \
--image nginx:alpine \
--update-parallelism 1 \
--update-delay 10s

【讨论】:

  • 天哪,你是对的!这仅适用于“复制作业”模式,抱歉,我将编辑修复。
  • 唯一的选择是用一个副本创建服务,然后更新它。
  • 已编辑包括和更新示例。请始终查看--help 输出,例如:docker service --help 甚至docker service create --help 和其他操作。
猜你喜欢
  • 1970-01-01
  • 2017-04-02
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
相关资源
最近更新 更多