暂停发布有什么用
暂停滚动发布后,模板仍可修改,但不会立即触发新的副本集。这样可以把多次修改合并成一次发布,也可以在推出一部分副本后停下来观察一段时间,形成手工控制的金丝雀节奏。恢复后所有累积改动一次性生效。
基本信息
| 适用平台 | 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 # 恢复,改动一次生效状态与行为
| 状态 | 表现 | 说明 |
|---|---|---|
| 暂停中 | 模板已改但副本未重建 | 适合继续累积改动 |
| 恢复后 | 按最终模板滚动一次 | 中间改动不会各触发一轮 |
| 暂停中缩容 | 副本数仍然变化 | 暂停只约束模板滚动,不约束扩缩容 |
| 暂停中回滚 | 行为与预期可能不符 | 回滚前先恢复到非暂停状态 |
暂停是临时状态,容易被遗忘。把恢复动作写进发布脚本或流程清单,可以避免模板改完却一直没推出去的情况。
暂停并不冻结一切操作:扩缩容、自动扩缩容以及部分其他改动仍会生效。把它当成完全静止状态会导致对副本数的判断出错。