繁体   English   中英

如何将 Kubernetes 卷机密也作为环境变量注入 Pod?

[英]How to inject Kubernetes Volume secrets also as Env variable to the Pod?

我的目标是从已安装的秘密卷中为 pod 创建一个环境变量。 我想跳过创建 Kubernetes 机密(并参考环境的 k8s 机密)的中间步骤,因此 etcd 存储中没有存储任何内容。

我正在使用 CSI 驱动程序来安装我的 Azure Key Vault 的机密。 音量正常工作。

部署.yaml:

...
spec:
  volumes:
    - name: keyvault-secrets
      csi:
        driver: secrets-store.csi.k8s.io
        readOnly: true
        volumeAttributes:
          secretProviderClass: kevault-secrets
  containers:
    - name: busybox
      image: k8s.gcr.io/e2e-test-images/busybox:1.29
      command:
        - /bin/sh
      args:
        - '-c'
        - >-
          SECRET1=$(cat /mnt/keyvault-secrets/secret1); export SECRET1;echo
          $SECRET1; sleep 1d;
      volumeMounts:
        - name: keyvault-secrets
          readOnly: true
          mountPath: /mnt/keyvault-secrets

在启动时,Pod 能够填充环境变量,甚至可以在控制台上正确打印其值。 如果我登录到 Pod,环境变量就消失了。

任何想法为什么环境变量会消失?

在 shell session 中设置的环境(就像您的命令中的环境一样)仅适用于该 session。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM