You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用kubectl patch修改Deployment滚动更新策略为何不触发Pod重启

现象说明

执行如下patch命令修改nginx1 Deployment配置后,Deployment对应的滚动更新策略已成功更新,但其管理的所有Pod均未发生重启:

kk patch deployments.apps nginx1 --type json -p '[{"op": "replace", "path": "/spec/strategy/rollingUpdate/maxUnavailable","value":100%}]'
核心结论

你的推测完全正确。

  • Deployment控制器判断是否需要触发存量Pod滚动重建的唯一判定依据是.spec.template(Pod模板)字段的内容变化:只有修改Pod模板范畴内的属性(比如容器镜像、启动参数、环境变量、资源限制、卷挂载、端口配置等)时,控制器才会计算新的模板哈希值,按照配置的更新策略逐步替换存量旧Pod。
  • 你本次修改的.spec.strategy.rollingUpdate.maxUnavailable属于Deployment全局层面的更新策略配置,不属于Pod模板的组成部分。这类非模板字段的修改只会在后续触发Pod滚动更新时生效,不会对当前正在运行的存量Pod产生任何影响,自然不会触发Pod重启。

常见不会触发Pod重启的Deployment配置变更

修改以下字段时都只会即时更新Deployment配置,不会主动触发Pod重建:

  • 副本数.spec.replicas
  • 历史版本保留数.spec.revisionHistoryLimit
  • 更新进度超时时长.spec.progressDeadlineSeconds
  • 最小就绪等待时间.spec.minReadySeconds
  • 暂停/恢复更新标识.spec.paused

内容的提问来源于stack exchange,提问作者jackdlov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 11:27:18