繁体   English   中英

访问机密作为 Kubernetes 中的环境变量

[英]Access secrets as environment variables in Kubernetes

我使用 Secrets 作为环境变量,我想知道您将如何在我的应用程序的客户端调用密钥? 我正在运行 Node.js 应用程序并希望使用 Secrets 环境变量。 我通常会通过在本地执行process.env.VARIABLE_NAME来调用我的环境变量,因为我有一个 env 文件,但我知道当部署到 Kubernetes 时,它与环境变量的秘密不同。

有人可以帮我吗? 谢谢!

secret 创建的环境变量将读取为传递给 pod 的任何其他环境变量。

因此,如果您创建一个秘密,例如:

kubectl create secret generic user --from-literal=username=xyz

并将其传递给 pod:

env:
- name: USERNAME
  valueFrom:
    secretKeyRef:
      name: user
      key: username

它将作为环境变量传递给 pod。 您可以通过在 pod 中执行printenv USERNAME来检查它,output 将与此类似:

kubectl exec -it secret-env -- printenv USERNAME
xyz

多个秘密可以作为环境变量传递给 pod。

在弄清楚如何使用 Secrets 作为环境变量几天之后,我想出了如何在我的 nodejs 应用程序中引用它!

在我以正常方式调用环境变量之前, process.env.VARIABLE_NAME ,但是当我将 Secrets 作为环境变量时,这对我不起作用。 为了获得变量的值,我必须在我的 Javascript 文件中执行process.env.ENVIRONMENTAL_VARIABLES_USERNAME ,这对我有用! 其中ENVIRONMENTAL_VARIABLESname ,而USERNAMEkey :请参阅我的其他问题以进行澄清: Environmental variables returned undefined for Kubernetes deployment

不确定这是否对其他人有帮助,但这就是我设法在我的 nodejs 应用程序中访问我的秘密的方式!

暂无
暂无

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

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