首页/云/Kubernetes 速查/配置变更触发滚动更新(checksum 模式)
本包目录(307 条)
kubectl 基础56 条工作负载36 条网络与服务55 条
配置与存储54 条
调度与资源52 条集群运维与排障54 条

配置变更触发滚动更新(checksum 模式)

把配置内容哈希写进 Pod 模板注解:配置一变模板即变,Deployment 自动滚动重建 Pod,规避 env/subPath 不传播的问题。

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

Kustomize/Helm 常见写法

Kustomize/Helm 常见写法
Helm:   annotations: {checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}}
Kustomize: configMapGenerator 的 nameHash/behavior 生成内容哈希后缀

手工版

手工版
HASH=$(kubectl get cm app-config -o yaml | sha256sum | cut -c1-16)
printf '{"spec":{"template":{"metadata":{"annotations":{"checksum/config":"%s"}}}}}' "$HASH" > /tmp/patch.json
kubectl patch deploy web --patch-file /tmp/patch.json
kubectl rollout status deploy/web
原理:注解位于 Pod 模板 → 模板哈希变化 → 自动滚动;应用侧无需理解 ConfigMap 更新语义。

易错点

  • 只改 ConfigMap 不改模板注解:Deployment 认为无变化,不会滚动
  • 哈希算法两边要一致,Helm 模板与手工脚本混用时先对齐

数据来源与参考

  • Kubernetes 官方文档 · 触发 Deployment 滚动更新(修改 Pod 模板)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌