首页/开发/CI/CD 与发布速查/kubectl rollout restart 滚动重启
发布策略60 条

kubectl rollout restart 滚动重启

不改镜像也触发一次滚动重启:给 Pod 模板打时间戳注解使 Deployment 生成新 ReplicaSet,用于重载配置、清理异常实例或让镜像重新拉取。

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

rollout restart 是什么

不改镜像也触发一次滚动重启:给 Pod 模板打时间戳注解,Deployment 生成新 ReplicaSet,按滚动更新策略替换实例。用于重载挂载配置、清理异常实例或让镜像重新拉取。注意重启不等于回滚:版本没变,问题版本重启只会重现问题。

基本信息

原理修改 Pod 模板注解(restartedAt),触发新 ReplicaSet
过程与滚动更新一致,受 maxSurge/maxUnavailable 约束
用途重载挂载配置、滚动替换异常实例
注意重启不等于回滚:版本没变
记录rollout history 可查历次变更

典型使用场景

  • 配置重载:挂载的 ConfigMap 更新后滚动生效
  • 实例清理:内存泄漏实例分批替换
  • 镜像拉取:同名标签场景强制重新拉取
  • 故障替换:疑似坏实例先滚动替换,再诊断原因

实践要点

  • 先取证:重启前抓日志与现场,别把证据清掉
  • 分批观察:滚动过程盯就绪与错误率
  • 区分手段:配置类问题重载,版本类问题 undo
  • 时间戳注解:restartedAt 使模板变更可追踪
  • 演练心态:把重启纳入 runbook 而不是随手执行
  • 与 HPA 协同:重启期间的副本波动叠加扩缩容,容量评估要含两者
  • 窗口选择:避开高峰与发布冻结期执行
  • 容量确认:剩余副本扛得住滚动期间的缺口

触发与跟踪

触发与跟踪
kubectl rollout restart deployment/web
kubectl rollout status deployment/web
# 版本问题改用回滚
kubectl rollout undo deployment/web

rollout 子命令

命令作用场景
rollout restart滚动重启配置重载与替换
rollout status跟踪进度观察就绪
rollout undo回滚版本坏版本处置
rollout history版本记录排障对照
把重启当故障处置手段前先确认版本是否有问题:问题版本重启只会重现问题,需要的是 rollout undo。
重启会一进一出替换实例:容量紧张的集群提前评估,避免滚动中余量不足。
重启不改镜像与版本:先分清是配置原因还是版本原因,再选手段。
多服务批量重启按依赖顺序排:上下游同时抖动会把故障放大。

易错点

  • 全员重启清理现场:诊断信息一起被清掉,应先取证再重启
  • 以为重启会加载所有配置:环境变量类配置需要改模板才会更新
  • 把重启当回滚:版本不变问题不变,版本问题用 rollout undo
  • 频繁无脑重启:掩盖根因,重启记录要纳入复盘
  • 一次性重启多个关联服务:上下游同时抖动放大故障,按依赖顺序分批
  • 重启后不看就绪状态:滚动中的异常被忽略,配合 rollout status 与探针观察

数据来源与参考

  • Kubernetes 文档《Deployments》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌