首页/云/云与容器速查/kubectl rollout 发布管理
Kubernetes68 条

kubectl rollout 发布管理

管理 Deployment/DaemonSet/StatefulSet 的滚动发布:status 看进度、history 看版本、undo 回滚、restart 触发重启、pause/resume 控制节奏。

云与容器速查云更新于 2026-10-13

kubectl rollout 是干什么的

kubectl rollout 管理控制器下工作负载的滚 动发布:查看发布进度、翻阅历史版本、回滚到指定版本、触发滚动重启,还能暂停与恢复发布节奏。它的价值在于把发布过程变成可观察、可回退的动作,而不是一次不可逆的替换。

基本信息

查看进度rollout status 会等待发布完成或失败,可加超时时间
查看历史rollout history 列出各版本与变更原因
回滚rollout undo 默认回到上一版,也可指定目标版本
触发重启rollout restart 让控制器滚动重建实例,用于加载新配置
暂停与恢复pause 后批量改配置再 resume,避免多次无谓滚动
适用范围适用于 Deployment、DaemonSet、StatefulSet 等控制器资源

典型使用场景

  • 发布后确认结果:跟一次状态检查,确认滚动真的完成而不是卡住
  • 快速回退:新版本出现异常时立刻退回上一个可用版本
  • 查变更来源:从历史里确认每个版本对应的镜像与变更原因
  • 加载配置变更:配置更新后触发滚动重启让新配置生效
  • 控制发布节奏:灰度期间暂停发布,观察指标后再继续
  • 核对发布历史长度:确认保留的版本数量是否足够支撑回滚

子命令速查

子命令作用常用参数
status等待并显示发布进度--timeout 控制等待上限
history列出历史版本常与回滚搭配使用
undo回滚到上一版或指定版本指定版本前先看历史
restart触发滚动重启配置变更后让新配置生效
pause暂停发布灰度观察期间使用
resume恢复发布与暂停成对使用

完整流程

完整流程
kubectl set image deploy/web nginx=nginx:1.27-alpine      # 更新镜像触发发布
kubectl rollout status deploy/web --timeout=180s          # 跟随发布进度
kubectl rollout history deploy/web                        # 查看版本历史
kubectl rollout undo deploy/web --to-revision=2           # 回滚到指定版本
kubectl rollout restart deploy/web                        # 触发滚动重启
# 回滚前先确认目标版本的镜像与配置,避免退回一个同样有问题的版本
回滚目标要确认:默认回退到上一版;指定版本前先把历史列表看一遍,确认那一版的镜像与变更内容才是想要的结果。
发布历史数量有限:保留的版本太少时,可用回滚点会非常少,长周期发布节奏下应显式调大保留数量。
触发重启会中断正在处理的请求:有优雅退出与探针配合时影响可控,否则会丢请求,选择重启时机要结合业务流量峰谷。
发布过程中被暂停的控制器不会继续推进:排查卡住时先确认是否处于暂停状态,再去看探针与资源是否满足。

发布过程的观察要点

  • 发布期间观察就绪实例数,确认可用容量没有明显缩水
  • 关注事件里的拉取失败与探针失败记录,卡住的原因通常写在那里
  • 灰度期间先暂停发布,指标稳定后再继续推进
  • 回滚前确认目标版本的镜像与配置,避免退回另一个问题版本
  • 发布完成后核对副本数与就绪状态,不要只看命令返回成功
  • 把发布与回滚步骤写进操作手册,值班人员按流程执行
发布窗口的选择同样重要:低峰期发布不仅影响面小,观察时间也更充裕,发现问题时回滚决策更容易从容做出。
把发布状态检查写成流程里的必选步骤而不是可选项:一忙就容易跳过,而跳过的代价往往在几小时后才显现。

易错点

  • 发布后不跟状态检查,以为成功其实卡在就绪探针失败
  • 历史里没有变更原因记录,回滚时选错版本,退回到另一个问题版本
  • 回滚前不确认目标版本内容,把数据库结构已经变更的版本退回去
  • 保留的发布历史过少,需要回滚时发现可选项不够
  • 在流量高峰触发滚动重启,优雅退出窗口不足导致请求失败

数据来源与参考

  • Kubernetes Docs:kubectl rollout

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌