首页 > 解决方案 > 从秘密映射时,Kubernetes pod 环境变量未更新

问题描述

我正在尝试将 kubernetes 机密值映射到环境变量。我的秘密如下图所示

apiVersion: v1
kind: Secret
metadata:
  name: test-secret
type: opaque
data:
  tls.crt: {{ required "A valid value is required for tls.crt"  .Values.tlscrt }}

将密钥映射到部署 yaml 中的环境变量

 env:
 - name: TEST_VALUE
   valueFrom:
       secretKeyRef:
          name: test-secret
          key: tls.crt

当我进行 helm install 时,该值被映射。但是,当我进行 helm upgrade 时,更改的值不会反映在环境变量中,它仍然具有旧值。有人可以在这里帮忙吗?

标签: kubernetes

解决方案


对现有 pod 的更改secretconfigMap数据不会反映出来。您必须删除并重新创建 pod 才能看到更改。有一些方法可以自动化该过程(例如,请参阅此 Q/A:Helm chart restart pods when configmap changes),它们都有一个共同点:您需要修改 pod 定义中的某些内容以触发重启。secret更新链接或 a时不会发生这种情况,configMap因为链接保持不变。


推荐阅读