0Pricing
Docker & DevOps Fundamentals · 课时

Swarm 中的扩缩容与滚动更新

在 Swarm 中扩展服务,执行零停机滚动更新,并在更新出错时自动回滚

Swarm 中的扩缩容与滚动更新 是 CoddyKit 上的免费 Docker & DevOps Fundamentals 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Docker & DevOps Fundamentals 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Docker & DevOps Fundamentals 课程共包含 4 节课。

服务可扩展

在 Swarm 中,一个服务描述所需数量的相同容器副本。Swarm 管理器会持续工作,确保这些副本分布在各个节点上并保持运行。

扩展服务

您可以随时使用 docker service scale 更改副本数量。调度器会将新任务分配到可用节点上。

docker service scale web=5

创建时设置扩展数量

您也可以在使用 --replicas 创建服务时设置副本数量。

docker service create --name web --replicas 3 -p 80:80 nginx

检查副本状态

使用 docker service ls 查看摘要,使用 docker service ps 查看每个任务及其运行所在的节点。

docker service ps web

什么是滚动更新?

滚动更新会每次替换少量副本,因此服务在整个过程中都能保持可用。Swarm 内置了此功能。

触发更新

使用 docker service update --image 将服务指向新镜像。Swarm 会根据您的更新策略逐步替换任务。

docker service update --image nginx:1.27 web

控制发布过程

通过并行度和延迟调整发布过程:控制一次更改多少个任务,以及批次之间等待多长时间。

docker service update \
 --update-parallelism 2 \
 --update-delay 10s \
 --image nginx:1.27 web

更新失败操作

将 --update-failure-action 设置为 rollback,这样更新失败时会自动回滚,而不会让服务处于损坏状态。

docker service update \
 --update-failure-action rollback \
 --image nginx:1.27 web

手动回滚

如果更新出现异常,docker service rollback 会立即将服务恢复到之前的定义。

docker service rollback web

健康检查指导更新

容器的 HEALTHCHECK 可以让 Swarm 知道新的副本是否真正就绪。结合更新策略后,它可以防止流量转移到损坏的任务上。

HEALTHCHECK --interval=10s CMD curl -f http://localhost/ || exit 1

全局与副本式

副本式服务运行固定数量的任务;全局服务则在每个节点上恰好运行一个任务,非常适合日志收集器等代理程序。全局模式不适用扩展操作。

docker service create --mode global --name agent myagent

快速检查

滚动更新如何让服务保持可用?

回顾

现在,您已经可以自信地运行 Swarm 服务:

  • docker service scale 更改副本数量
  • service update --image 触发滚动更新
  • 并行度、延迟和 --update-failure-action rollback 控制安全性
  • service rollback 执行回滚;健康检查控制就绪状态

这些功能结合起来,就能在 Swarm 中实现零停机部署。

常见问题解答

「Swarm 中的扩缩容与滚动更新」课时是免费的吗?

是的 — 「Swarm 中的扩缩容与滚动更新」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Docker & DevOps Fundamentals 课程的其余内容,请升级到 CoddyKit PRO。 Docker & DevOps Fundamentals 课程共包含 4 节课。

「Swarm 中的扩缩容与滚动更新」这节课中我会学到什么?

在 Swarm 中扩展服务,执行零停机滚动更新,并在更新出错时自动回滚 你通过在浏览器中直接运行的动手代码来练习 Docker & DevOps Fundamentals,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Docker & DevOps Fundamentals 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Docker & DevOps Fundamentals 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「Swarm 中的扩缩容与滚动更新」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Docker & DevOps Fundamentals 课中编写并运行代码吗?

能。每节 Docker & DevOps Fundamentals 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Docker Swarm 简介
  2. 设置 Swarm 集群
  3. 向 Swarm 部署服务
  4. Swarm 中的扩缩容与滚动更新
← 返回 Docker & DevOps Fundamentals