Docker Swarm 入门示例7: 滚动更新服务
2017-12-22 00:00
519 查看
打开manager1服务器 shell
部署redis 3.0.6 到swarm,并设置更新延迟为 10s
查看 redis 服务信息
更新redis 版本
更新计划
停止第一个任务(容器)
添加更新调度到此任务
启动更新后的容器
如果任务执行结果为
如果有任意一个任务失败,停止此次更新
查看更新后的服务信息
查看更新过程中的容器状态
部署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
相关文章推荐
- Docker Swarm 入门示例6: 从swarm删除服务
- Docker Swarm 入门示例5: 缩放服务
- Docker Swarm 入门示例4: 检视swarm服务信息
- Docker Swarm 入门示例3: 部署服务到swarm
- 如何调用docker swarm service的API来创建及更新服务
- docker实战2 (docker swarm的应用,docker集群的构建,在docker集群中部署服务的创建与更新)
- Docker Swarm 入门示例8: swarm节点的清空和再启用
- Docker 入门笔记 4 - 用Swarm部署服务
- Docker Swarm 入门示例2: 手动添加节点为到swarm
- Docker Swarm 入门示例1: 创建swarm
- Docker Swarm 入门示例0: 准备工作
- docker 集群(swarm)与服务编排(service orchestration)入门
- docker创建镜像、单个容器、swarm集群启动、更新服务等常用指令
- Docker入门系列(三):让你的应用变为可扩展的服务
- docker:利用maven镜像启动服务的一个示例
- Java API——RMIIO入门教程(2)远程流传输示例之RMIIO服务源码
- Docker入门系列(四):让你的服务跨越多台机器
- 分布式服务框架 dubbo/dubbox 入门示例
- 搭建Docker Swarm集群实战(二)(服务发现使用consul)