首页/云/Kubernetes 速查/kubectl rollout history 查看发布历史
kubectl 基础56 条

kubectl rollout history 查看发布历史

列出工作负载的历史修订版本(revision),配合 --revision 查看某次的 Pod 模板快照,是回滚前的必修课。

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

命令定位

kubectl rollout history 列出工作负载的历史修订版本(revision),用于回答「上次发布改了什么、能不能退回去」。适用范围是 Deployment、StatefulSet、DaemonSet 这些带 rollout 语义的工作负载。Deployment 的每一版对应一个 ReplicaSet,StatefulSet 的历史由 ControllerRevision 对象保存。回滚前先用它确认目标 revision,再配合 rollout undo 才不会退错版本。

基本信息

适用平台Kubernetes(Deployment / StatefulSet / DaemonSet)
权限要求对工作负载的 get/list 权限;查看模板快照还需能读 ReplicaSet 或 ControllerRevision
修订来源Deployment 对应 ReplicaSet,StatefulSet/DaemonSet 对应 ControllerRevision
保留数量由 spec.revisionHistoryLimit 控制,Deployment 默认保留 10 个旧版本

典型使用场景

  • 发布出问题准备回滚:先看历史确认上一版的 revision 编号与时间,再执行 rollout undo
  • 核对某次发布改了什么:用 --revision 展开 Pod 模板快照,对比镜像与配置差异
  • 排查「为什么这次发布没生效」:确认修订号是否真的递增了一次
  • 多环境对照:把预发与生产的修订历史放在一起比发布时间与变更说明
  • 发布前留痕:给 revision 补 change-cause 注解,让历史列表自带业务语境

常用示例

常用示例
kubectl rollout history deploy/web -n prod          # 列出修订号与变更说明
kubectl rollout history deploy/web --revision=3     # 展开第 3 版的 Pod 模板快照
kubectl annotate deploy/web kubernetes.io/change-cause="release 2026.10.13 hotfix"   # 给本次修订写说明
kubectl rollout undo deploy/web --to-revision=2     # 明确回退到指定版本
kubectl get rs -l app=web -o wide                   # 每个 ReplicaSet 对应一个修订,可交叉核对

输出逐列读法

列含义使用注意
REVISION修订序号,每次 Pod 模板变更递增编号只增不回收,回滚也会产生新编号
CHANGE-CAUSE来自 kubernetes.io/change-cause 注解不写注解就显示 <none>,旧版 --record 已弃用
镜像与副本快照--revision 展开后的模板内容据判断两版之间到底改了什么
ControllerRevisionStatefulSet 场景的历史载体名字形如 sts-<名称>-<哈希>
回滚本质是把目标 revision 的 Pod 模板重新提交一次,会再生成一个新修订号,历史记录不会被回写覆盖。
revisionHistoryLimit 之外的旧版本会被清理,超过保留窗口的版本无法再回滚,重要发布节点要么调大该值,要么在流水线里留好旧清单。

易错点

  • revision 编号会随每次发布递增且不回收,历史保留数量由 revisionHistoryLimit 控制(默认 10),删多了就回不到很早的版本
  • 只改了镜像 tag 但内容相同也会算一次修订,判断差异必须对照 --revision 输出的模板而不是凭编号猜
  • CHANGE-CAUSE 不写注解就是 <none>,运维交接时看不出每次发布做了什么,建议流水线自动写入变更单号
  • 把 rollout undo 当万能回退:它只还原 Pod 模板,不还原 ConfigMap、Secret 或数据库结构变更,配套资源要一起处理

数据来源与参考

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