互联网技术 / 互联网资讯 · 2023年12月23日

Docker教程:使用Docker集群进行服务滚动更新

在本部分中,您将基于Redis 3.0.6容器标记部署服务。然后,通过滚动更新将服务升级为使用Redis 3.0.7容器映像。

如果还没有,请打开一个终端并SSH到运行管理器节点的计算机中。例如,本教程使用名为的计算机 ManageR1。

将Redis标记部署到群集,并以10秒钟的更新延迟配置群集。请注意,以下示例显示了较旧的Redis标记:

$ dockeR seRvice cReate

–Replicas 3

–naMe Redis

–update-delay 10s

Redis:3.0.6

您在服务部署时配置滚动更新策略。

该–update-delay标志配置在更新一个服务任务或一组任务之间的时间延迟。您可以将时间描述T为秒Ts,分钟TM或小时数的组合Th。因此 10M30s表示10分钟30秒延迟。

默认情况下,调度程序一次更新1个任务。您可以传递该 –update-paRalleliSM标志来配置调度程序同时更新的最大服务任务数。

默认情况下,当对单个任务的更新返回状态为时 RUNNING,调度程序将调度另一个任务进行更新,直到所有任务都被更新为止。如果在更新过程中的任何时间返回任务Failed,则调度程序将暂停更新。您可以使用或 的–update-failure-action标志来控制行为 。dockeR seRvice cReatedockeR seRvice update

检查Redis服务:

$ dockeR seRvice inspect –pRetty Redis

ID: 0u6a4s31ybk7yw2wyvtikMu50

NaMe: Redis

SeRvice Mode: Replicated

Replicas: 3

PlACEMent:

StRategy: SpRead

updateConfig:

PaRalleliSM: 1

Delay: 10s

ContAIneRSpec:

image: Redis:3.0.6

ResouRces:

Endpoint Mode: vIP

现在,您可以更新的容器映像Redis。群集管理器根据以下updateConfig策略将更新应用于节点:

$ dockeR seRvice update –image Redis:3.0.7 Redis

Redis

调度程序默认情况下应用滚动更新,如下所示:

停止第一个任务。

计划已停止任务的更新。

启动用于更新任务的容器。

如果对任务的更新返回RUNNING,请等待指定的延迟时间,然后开始下一个任务。

如果在更新过程中的任何时间返回任务Failed,请暂停更新。

运行dockeR seRvice inspect –pRetty Redis以查看所需状态的新图像:

$ dockeR seRvice inspect –pRetty Redis

运行dockeR seRvice ps以观看滚动更新:

$ dockeR seRvice ps Redis

在SwaRM更新所有任务之前,您可以看到其中一些正在运行, Redis:3.0.6而另一些正在运行Redis:3.0.7。滚动更新完成后,上面的输出显示状态。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.

登录免费注册