首页/云/Kubernetes 速查/kubectl rollout pause/resume 暂停发布
kubectl 基础56 条

kubectl rollout pause/resume 暂停发布

暂停滚动发布后继续修改模板(如分批改镜像/环境变量),改完再恢复,可把多次修改合并成一次发布或实现暂停观察的金丝雀。

Kubernetes 速查云更新于 2026-10-13

暂停发布有什么用

暂停滚动发布后,模板仍可修改,但不会立即触发新的副本集。这样可以把多次修改合并成一次发布,也可以在推出一部分副本后停下来观察一段时间,形成手工控制的金丝雀节奏。恢复后所有累积改动一次性生效。

基本信息

适用平台kubectl 1.20+,适用于部署等支持滚动的资源
两个命令暂停与恢复发布流程
暂停期间模板可改,不触发新的副本集
恢复结果累积的改动合并成一次滚动
配合命令查看发布进度与回滚

典型使用场景

  • 同一版本要同时改镜像与环境变量,合并成一次滚动避免反复重建
  • 推出一部分副本后停下来观察指标,再决定继续还是回滚
  • 发布窗口受限,需要在一个窗口内集中完成多次改动
  • 灰度验证镜像可用性,确认后再恢复完成全量
  • 排查发布异常时先暂停,避免继续扩散问题副本

常用示例

常用示例
kubectl rollout pause deploy/web                   # 暂停发布
kubectl set image deploy/web web=app:1.26.0        # 改镜像不会被立即推出
kubectl set env deploy/web FEATURE_X=on            # 继续累积改动
kubectl rollout status deploy/web --timeout=5m     # 观察当前进度
kubectl rollout resume deploy/web                  # 恢复,改动一次生效

状态与行为

状态表现说明
暂停中模板已改但副本未重建适合继续累积改动
恢复后按最终模板滚动一次中间改动不会各触发一轮
暂停中缩容副本数仍然变化暂停只约束模板滚动,不约束扩缩容
暂停中回滚行为与预期可能不符回滚前先恢复到非暂停状态
暂停是临时状态,容易被遗忘。把恢复动作写进发布脚本或流程清单,可以避免模板改完却一直没推出去的情况。
暂停并不冻结一切操作:扩缩容、自动扩缩容以及部分其他改动仍会生效。把它当成完全静止状态会导致对副本数的判断出错。

易错点

  • 暂停状态被遗忘:模板改动迟迟没有推出,手工验证的版本与线上不一致
  • 以为暂停能冻结所有变化:扩缩容仍然生效,副本数与预期不符
  • 在暂停状态下执行回滚:回滚语义需要恢复发布状态后操作,顺序错误会产生意外结果
  • 发布脚本没有把恢复作为必经步骤:异常退出时资源长期停在暂停状态

数据来源与参考

  • Kubernetes 官方文档 · kubectl rollout pause
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌