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

Kubernetes Secret更新不生效:删除重建后Pod仍用旧值

解决Kubernetes Immutable Secret更新后Pod仍使用旧值的问题

问题场景

更新Kubernetes Secret的数值后,重启Pod依然读取旧值;删除该Secret重新创建,且反复核对数值无误,问题仍存在,推测是immutable: true配置的残留影响。

用户提供的Secret配置:

apiVersion: v1
data:
  username: <super secret base64>
  password: <super secret base64>
kind: Secret
immutable: true
metadata:
  annotations:
    meta.helm.sh/release-namespace: default
  labels:
    helm.toolkit.fluxcd.io/namespace: default
  name: <secretname>
  namespace: default
type: Opaque

解决方案

  • 强制重建使用该Secret的Pod:单纯重启Pod时,kubelet可能复用已缓存的Secret Volume内容。直接删除Pod(由Deployment/StatefulSet等控制器自动重建),让kubelet重新挂载新的Secret。
  • 调整Secret的immutable配置:如果后续需要频繁更新该Secret,建议将immutable: true改为immutable: false。一旦Secret被标记为不可变,kubelet会默认认为其内容不会变更,缓存策略会更激进。
  • 验证Secret实际内容:执行以下命令确认Secret的真实值是否正确:
    # 验证username
    kubectl get secret <secretname> -n default -o jsonpath='{.data.username}' | base64 -d
    # 验证password
    kubectl get secret <secretname> -n default -o jsonpath='{.data.password}' | base64 -d
    
  • 清理kubelet缓存(可选):如果上述步骤无效,可登录Pod所在节点,清理对应Pod的Secret挂载缓存(路径示例:/var/lib/kubelet/pods/<pod-id>/volumes/kubernetes.io~secret/<secret-volume-name>/),之后重建Pod。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:20:01