首页/开发/CI/CD 与发布速查/Helm --wait 与 --atomic 发布保险
发布策略60 条

Helm --wait 与 --atomic 发布保险

让 Helm 等资源真正就绪再判定升级结果:--wait 等待就绪;--atomic 在失败时自动回滚到上一版本,为 CI 自动发布加一道兜底。

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

Helm 发布保险是什么

让 Helm 等资源真正就绪再判定升级结果:--wait 等待资源就绪(受 --timeout 约束),--atomic 在失败时自动回滚到上一版本,为 CI 自动发布加一道兜底。默认超时 5 分钟,生产发布通常调到 10 分钟以上。回滚作用于 Helm 管理的资源,作用边界要在使用前弄清楚。回滚会把整个变更集撤销,回滚后要有人确认业务恢复而不是只看命令退出码。

基本信息

--wait等待资源就绪(受 --timeout 约束)
--atomic失败自动回滚(隐含 --wait)
--timeout整体等待上限,默认 5m
回滚记录helm history 可查每次发布与回滚
边界crds/ 目录的 CRD 只安装、不升级不删除,不随回滚还原
现状确认helm status 查看当前 release 的资源与状态

典型使用场景

  • CI 自动发布:无人值守升级用 --atomic 做失败兜底
  • 首次安装:--install 配合 --wait,就绪后再进入后续步骤
  • 发布审计:helm history 留痕每次升级与回滚
  • 手动回滚:helm rollback 回到指定历史版本
  • 预发演练:同一 chart 同参数先在预发执行验证
  • 灰度环境:预发先升级,观察 release 状态与资源事件
  • 流水线集成:helm 输出接入通知与发布审计

带兜底的升级

带兜底的升级
helm upgrade --install web ./chart -n prod \
  --wait --atomic --timeout 10m
# 查看发布历史
helm history web -n prod
# 手动回滚到指定版本
helm rollback web 3 -n prod

常用参数

参数行为注意
--wait等待资源就绪依赖就绪探针质量
--atomic失败自动回滚隐含 --wait
--timeout等待上限按环境启动时长调大
helm history发布与回滚审计关注每行状态与时间
自动回滚是兜底不是终点:回滚事件要通知到团队并复盘触发原因。
回滚依赖上一版本制品仍在仓库(镜像、Chart 未被清理),制品保留窗口要覆盖回滚周期。
超时约束整个等待过程:设太短会把慢启动判为失败并触发不必要的自动回滚。

易错点

  • --wait 遇到松弛探针:资源「就绪」很快但实际不可用,被判发布成功
  • 自动回滚静默发生:变更消失但无人知晓,接入通知与审计
  • 超时设置过长:坏版本挂住流水线长时间卡住,按正常启动时间放宽余量
  • 回滚时旧制品已被清理:上一版镜像被策略删除,回滚失败,保留窗口覆盖回滚周期
  • 把自动回滚当发布成功:流水线判绿但版本已回退,需要核对 helm history 的状态

数据来源与参考

  • Helm 文档《helm upgrade》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌