配置管理与编排60 条

分批编排与滚动更新

分批编排与滚动更新把一次性变更拆成带观察窗口的小批次,用时间换风险。关键在于批大小按剩余容量与服务目标反推、批间必须过门禁、新旧版本保持兼容,并始终准备好回退路径。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌‌​​​​​‌‌​‌​​​​‌‌​​​​‌​‌‌‌​​‌‌​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌‌​‌​‌​‌‌‌​​​​​‌‌​​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

分批编排与滚动更新是什么

分批编排把同一批目标切成若干批次(灰度组、机架组、百分比组),逐批下发并在批间留观察窗口,前一批通过门禁才放行下一批。滚动更新是它在无状态服务上的固定套路:按比例替换实例,任意时刻只有一部分实例运行新版本,整体容量不掉线。两者的共同思路是「用时间换风险」——把一次大爆炸拆成可观测、可暂停、可回退的小步提交;代价是变更总时长变长,并要求新旧版本在窗口内共存兼容。

基本信息

分批维度机架、可用区、实例比例、权重、业务分组
批间动作观察窗口 + 门禁判定 + 人工暂停点
回退单位以批为单位,失败停留在当前批
容量前提单批不可用时剩余容量仍满足最低服务能力
兼容前提新旧版本双向兼容,配置项可缺省

典型使用场景

  • 版本发布:先 1 台灰度,观察错误率与延迟,再扩到 10%、50%、100%
  • 配置变更:负载均衡与交换机按机架分批,避免整机房同时抖动
  • 集群升级:先升副本与从节点,确认数据同步正常再处理主节点
  • 大规模补丁与内核更新:分批重启,始终保留冗余容量
  • 网络设备变更:先试点单台,验证转发与邻居关系,再扩到整网

分批参数示意

分批参数示意
# 批大小、失败容忍与批间暂停共同决定风险半径
serial: 10%                  # 每批最多 10% 的目标
max_fail_percentage: 10      # 本批失败超过阈值立即停止,不放行下一批
pause: 60                    # 批间观察窗口,留出探针与监控判定时间
# 单台内的动作顺序:先摘流量、再变更、再校验、最后放回流量
# 失败即停:停在当前批比把错误扩散到全部目标更可控

分批参数与判读

参数作用取值不当的后果
批大小单次风险半径与总时长过大则一批打满冗余;过小则总时长线性膨胀
最大失败比例何时停止滚动过松会放行故障批,过紧则正常抖动触发中断
观察窗口给探针与监控判定时间短于冷启动耗时会出现假失败回退
暂停点关键批次前的人工确认无暂停点则高危批次无法拦停
批大小不应机械取 1 台或固定 10%,而应回答:这一批同时不可用时,剩余容量是否仍满足容量规划与服务目标。有状态服务另有数据同步与主从切换约束,不能照搬无状态滚动策略。
滚动窗口内新旧实例并存,接口、消息格式与配置项必须双向兼容。典型症状是滚动期间报错、停止滚动后自行恢复,容易被误判为偶发抖动而放过。

易错点

  • 批间没有观察窗口,等于把一次大爆炸拆成连续小爆炸,故障照样在几分钟内打满全部目标
  • 忽略新旧版本兼容:滚动期内新旧实例互相调用失败,回滚后自动恢复正常,排错方向被严重误导
  • 把有状态集群按无状态方式滚动,主节点被直接替换后出现脑裂或数据回退
  • 分批只按比例不按故障域,某一批恰好覆盖同一机架或同一可用区,形成相关性故障
  • 只准备前进路径没有准备回退路径:发现异常时既不能继续也不能退回,只能带故障收尾

数据来源与参考

  • Kubernetes 官方文档:Deployment 滚动更新策略
  • ITIL 4 变更使能实践指南
  • Ansible 官方文档:serial 与 max_fail_percentage

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/phased-orchestration-rolling-update.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌‌​​​​​‌‌​‌​​​​‌‌​​​​‌​‌‌‌​​‌‌​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌‌​​‌​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌​‌‌​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌‌​‌​‌​‌‌‌​​​​​‌‌​​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​