首页/开发/CI/CD 与发布速查/helm rollback 版本回退
质量门禁与回滚51 条

helm rollback 版本回退

Helm 按 release 修订号回滚到历史版本:回滚本身生成新修订,可再次回滚;先用 helm history 确认目标修订与状态。

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

helm rollback 是什么

把 release 回退到历史修订:回滚动作本身生成一个新修订号并记录在历史里,可以继续回滚或再次前进。典型流程是先 helm history 看目标修订与状态,再 rollback,然后 status 确认收敛。严格说它回滚的是 Helm 管理的资源:集群外部资源与数据变更不在范围内——数据库迁移、外部配置这类副作用要单独处理。

基本信息

命令helm rollback <release> [revision],修订号可省略(回退到上一版)
查看历史helm history <release> -n <ns>:列出修订、状态、说明与时间
特性回滚生成新修订号,历史保留,可再回退或前进
边界不会自动回滚集群外部资源与数据变更

helm history 关键列

列含义关注点
REVISION修订号回滚目标的编号
STATUSdeployed/superseded/failed 等目标修订应为 deployed
DESCRIPTION升级或回滚说明核对变更来源
APP VERSION应用版本与发布记录比对

典型使用场景

  • 发布失败止损:upgrade 出问题后回退到已知稳定修订
  • 配置回退:values 调整引发异常时退回旧修订
  • 演练:在预发环境定期演练回滚流程,校验时长与步骤
  • 故障对比:回滚后问题消失,确认与本次发布相关
  • 回退后又后悔:对回滚生成的修订再回滚,等价于重新前进
  • 版本对齐:回滚后核对 helm history 与应用发布记录,避免代码退了配置没退

回滚操作示例

回滚操作示例
# 1. 查看历史,确认目标修订与状态
helm history web -n prod
# 2. 回退到修订 5(生成新修订)
helm rollback web 5 -n prod
# 3. 确认状态与资源收敛
helm status web -n prod
kubectl rollout status deployment/web -n prod
回滚沿用原修订的 values 与镜像:确认这些引用仍可用再执行。
回滚耗时与资源规模相关:多资源 release 的回滚同样要等收敛,别把命令返回当作收敛完成。回滚由控制面执行,但业务影响等同一次发布,需要同样的观察窗口。

易错点

  • 对带副作用 hook 的 release 直接回滚:初始化 hook 可能重复执行,需先核对 hook 定义
  • 只看修订号不看状态:目标修订可能处于 failed 或 pending
  • 把 Helm 回滚当数据回滚:数据库内容不会被还原,需单独执行数据层回退
  • 回滚后不核对镜像可用性:旧镜像可能已被清理或仓库不可达,回滚卡在拉取阶段
  • 省略修订号盲回退:默认回到上一修订,可能不是期望的稳定版本,显式指定修订号

数据来源与参考

  • Helm 官方文档(helm rollback 命令)
  • Helm 官方文档(helm history 命令)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌