首页/云/Kubernetes 速查/kubectl rollout status 观察发布进度
kubectl 基础56 条

kubectl rollout status 观察发布进度

阻塞等待一次滚动更新完成并输出进度,直到新版本全部可用或超时;适合发布脚本串行化与人工值守。

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

rollout status 是什么

rollout status 阻塞等待一次发布完成,并持续输出进度,直到新版本全部可用、判定失败或达到超时。它适合放在发布脚本里做串行控制:上一步没有收敛就不进入下一步,避免带着半成品状态继续操作。

退出码说明什么

超时退出码非零只代表「没等完」,不等于发布失败。慢启动应用、资源紧张导致新副本调度慢,都会让等待时间变长。正确做法是接到超时后去看对象状态与事件,判断是仍在正常推进还是真的卡住了。

基本信息

适用环境任何 Kubernetes 发行版,支持无状态负载、有状态负载与守护进程
语法kubectl rollout status <资源>/<名称> [--timeout=...]
默认行为不设超时会一直等待
返回值成功为 0,超时或判定失败为非零
信息来源工作负载状态条件与副本统计
常用搭配发布命令之后调用,再配合历史与回滚命令

典型使用场景

  • 流水线门禁:发布后等待收敛,失败则中断后续步骤
  • 人工值守:现场观察替换过程,判断是否需要立即回滚
  • 批量发布:多个服务依次执行,确保前一个完成再进下一个
  • 有状态负载升级:等待逐个成员完成更新,掌握整体节奏
  • 验证发布结果:确认全部副本都是新版本并且处于就绪状态
  • 故障演练:观察异常版本在什么阶段停住,验证监控与告警是否生效

常用示例

常用示例
kubectl rollout status deploy/web --timeout=180s   # 加超时,避免脚本卡死
kubectl rollout status sts/db -n prod                # 有状态负载按序观察
kubectl rollout status ds/node-agent                  # 守护进程按节点滚动
kubectl get rs -l app=web                             # 对照新旧副本集比例
kubectl describe deploy web | grep -A5 Conditions     # 超时后看条件与原因

超时后的排查分支

现象可能原因下一步
新副本一直未就绪探针不通过或启动慢看新副本日志与探针事件
副本数上不去资源不足或约束不满足看调度失败事件与节点余量
镜像拉取失败凭据或地址问题看拉取失败的具体错误文本
状态条件报推进超时超过设定的推进时限确认是慢还是真卡住
在流水线里必须显式设置超时,否则环境异常时任务会一直挂住,占满执行资源。
等待成功只说明副本已全部更新且就绪,不代表业务功能正常,发布后仍应有业务层验证。

易错点

  • 把超时当作失败直接回滚:可能只是应用启动慢,回滚反而扩大影响面,先看清楚状态
  • 不设超时:发布脚本在异常情况下永久阻塞,无人值守环境尤其危险
  • 只等主工作负载:有状态负载与守护进程的更新节奏不同,观察对象要选对
  • 忽略进度输出里的关键信息:副本数量与就绪数量的变化趋势本身就能判断是推进中还是停滞

数据来源与参考

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