首页/开发/CI/CD 与发布速查/kubectl rollout pause / resume 合并变更
发布策略60 条

kubectl rollout pause / resume 合并变更

暂停 Deployment 滚动:pause 之后连续修改镜像、配额、标签等字段不会立即触发滚动,resume 时以最终模板一次收敛,减少无谓的滚动次数。

CI/CD 与发布速查开发更新于 2026-10-13

滚动暂停与合并变更

暂停 Deployment 的滚动:pause 之后连续修改镜像、配额、标签等字段不会立即触发滚动,resume 时以最终模板一次收敛,减少无谓的滚动次数。原生 pause 的粒度是 Deployment 级;需要按流量比例或用户定向的精细控制时,改用带路由能力的发布工具。

基本信息

pause暂停滚动,已进行的保留
期间修改可连续修改多个字段
resume合并为一次新 rollout
典型用法多字段发布、控制推进节奏
粒度Deployment 级,非按流量比例

典型使用场景

  • 多字段发布:镜像与配额一起改,避免多次滚动
  • 调整节奏:先暂停观察基线,再恢复推进
  • 排障窗口:暂停以保留现场,定位后再继续
  • 脚本化发布:封装成发布脚本的顺序步骤
  • 演练:模拟逐步推进的发布过程

暂停并合并修改

暂停并合并修改
kubectl rollout pause deployment/web   # 暂停,后续修改先不滚动
kubectl set image deployment/web web=registry.example.com/web:1.9.0
kubectl set resources deployment/web -c=web --limits=cpu=500m,memory=512Mi
kubectl rollout status deployment/web   # 观察当前进度
kubectl rollout resume deployment/web   # 恢复:按最终模板一次收敛

命令对照

命令作用注意
pause暂停滚动已进行的保留,不是回滚
修改字段累积到模板不会立即滚动
resume恢复并收敛合并为一次新 rollout
status观察进度排查卡住先看这里
undo回滚版本与暂停恢复是不同能力
原生 pause 的粒度是 Deployment 级:需要按流量比例或用户定向的精细控制时,使用带路由能力的发布工具。
暂停不等于回滚:已经创建的新副本仍在,resume 后继续按模板收敛。
脚本里成对出现:pause 后无论成败都要 resume,避免遗忘卡死。

协作注意

  • 状态同步:手动暂停时在变更渠道说明,避免其他人误判发布卡死
  • 进展观察:status 长时间无进展视为异常,及时介入
合并的边界:只有该工作负载模板内的字段会累积合并,其他资源改动不受影响。
遗忘排查:暂停状态保留在对象里,describe 能看到,先查它再怀疑调度。

易错点

  • 忘记 resume:更新长期不推进,排查时才发现是人为暂停
  • 暂停期间并发发起新部署:指令不会合并进当前 rollout,发布窗口要提前协调
  • 把暂停当紧急刹车:已创建的新副本不会撤销,紧急场景用回滚
  • 脚本失败不清理暂停态:发布任务互相阻塞,异常路径也要 resume

数据来源与参考

  • Kubernetes 文档《Deployments》(Pausing and Resuming a rollout)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌