您的位置:首页 > 运维架构 > Docker

Docker Swarm 入门示例7: 滚动更新服务

2017-12-22 00:00 519 查看
打开manager1服务器 shell

部署redis 3.0.6 到swarm,并设置更新延迟为 10s

$ docker service create \
--replicas 3 \
--name redis \
--update-delay 10s \
redis:3.0.6-alpine
fnrfiohgr39tjae2jia5t4ox3

--update-delay
: 更新服务任务(Task)执行间隔, 单位 s,m,h
--update-parallelism
: 并行更新服务任务数量, 默认1
RUNNING
: 更新服务任务返回
RUNNING
表示任务成功
FAILED
: 更新服务任务返回
FAILED
表示任务成功
--update-failure-action
: 如果更新服务任务失败后的操作,默认
pause
即暂停更新,结束该任务

查看 redis 服务信息

$ docker service inspect --pretty redis

ID:             fnrfiohgr39tjae2jia5t4ox3
Name:           redis
Service Mode:   Replicated
Replicas:      3
Placement:
UpdateConfig:
Parallelism:   1
Delay:         10s
On failure:    pause
Monitoring Period: 5s
Max failure ratio: 0
Update order:      stop-first
RollbackConfig:
Parallelism:   1
On failure:    pause
Monitoring Period: 5s
Max failure ratio: 0
Rollback order:    stop-first
ContainerSpec:
Image:         redis:3.0.6-alpine@sha256:404a3444162e8c6f7c375a27746d7b75554e1a89436bd0dc7503af25ae50cdcb
Resources:
Endpoint Mode:  vip


更新redis 版本
更新计划

停止第一个任务(容器)

添加更新调度到此任务

启动更新后的容器

如果任务执行结果为
RUNNING
, 等待 delay 设置的时间后开始下一个任务

如果有任意一个任务失败,停止此次更新

$ docker service update --image redis:3.0.7 redis
redis


查看更新后的服务信息

$ docker service inspect --pretty redis

ID:             fnrfiohgr39tjae2jia5t4ox3
Name:           redis
Service Mode:   Replicated
Replicas:      3
UpdateStatus:
State:         updating
Started:       18 seconds ago
Message:       update in progress
Placement:
UpdateConfig:
Parallelism:   1
Delay:         10s
On failure:    pause
Monitoring Period: 5s
Max failure ratio: 0
Update order:      stop-first
RollbackConfig:
Parallelism:   1
On failure:    pause
Monitoring Period: 5s
Max failure ratio: 0
Rollback order:    stop-first
ContainerSpec:
Image:         redis:3.0.7@sha256:730b765df9fe96af414da64a2b67f3a5f70b8fd13a31e5096fee4807ed802e20
Resources:
Endpoint Mode:  vip


查看更新过程中的容器状态

$ docker service ps redis
ID                  NAME                IMAGE                NODE                DESIRED STATE       CURRENT STATE                 ERROR               PORTS
9uzdoruo0n27        redis.1             redis:3.0.7          ubuntu-1604-002     Running             Preparing 23 seconds ago
uzabimd9ilx5         \_ redis.1         redis:3.0.6-alpine   ubuntu-1604-002     Shutdown            Shutdown 21 seconds ago
6lhvz3aanelv        redis.2             redis:3.0.6-alpine   ubuntu-1604-003     Running             Running about an hour ago
i55mt8fzqqbp        redis.3             redis:3.0.7          ubuntu-1604-001     Running             Running 33 seconds ago
rxu3t1iy6qcg         \_ redis.3         redis:3.0.6-alpine   ubuntu-1604-001     Shutdown            Shutdown about a minute ago
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: