亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Docker Swarm 進階:服務滾動部署

標簽:
Docker

webp

文/Anoyi

服务平滑升级,即服务不停机更新,客户端无感知。

案例演示:Redis 版本升级 4.0.4 -> 4.0.5

1、创建 overlay 网络

docker network create \
  --attachable \
  --driver overlay \
  redis_network

说明:添加 --attachable 是为了待会 redis-cli 的连接,生产环境建议不加

2、创建 redis 服务,版本 4.0.4

docker service create \  --name redis \  --replicas 2 \  --network redis_network \  redis:4.0.4

webp

3、使用 redis-cli 连接到 redis 服务

新建一个终端窗口,执行:

docker run -it --network redis_network --rm redis redis-cli -h redis -p 6379

说明:此处用的 latest 版本的 redis 镜像客户端,与服务端版本无关

4、升级 redis 服务到 4.0.5 版本

执行以下命令,同时注意观察 redis-cli 连接的变化:

docker service update --image redis:4.0.5 redis

webp

现象:整个升级过程 redis-cli 没有断开连接,说明升级过程是平滑的,不间断的。

5、查看 redis 服务的任务列表

docker service ps redis

webp

附加内容

1、任务或任务组之间更新延迟时间的设置

使用 --update-delay 来配置,单位 smh,1小时20分30秒即 1h20m30s

2、任务调度器并行任务数量的配置

默认并行任务的数量为 1,如上案例所示,redis 服务有 2 个副本,在更新过程中,会有 2 个新的任务来执行 2 个副本的更新,由于最大并发任务执行量是 1,所以 2 个副本会依次更新。

可以通过 --update-parallelism 来配置最大任务并发执行数量。

3、任务更新失败的情况

默认情况下,当对单个任务的更新返回 RUNNING 状态时,调度程序开始更新另一个任务,直到所有任务都更新。如果在更新期间任务返回 FAILED 状态,则调度程序会暂停更新。

可以使用 docker service createdocker service update--update-failure-action 来控制失败后的行为。

4、平滑升级的条件

服务平滑升级需要至少2个副本,单副本服务在更新过程中不可用。



作者:Anoyi
链接:https://www.jianshu.com/p/3075df95cec8


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
51
獲贊與收藏
181

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消