[英]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_VARIABLES
是name
,而USERNAME
是key
:请参阅我的其他问题以进行澄清: Environmental variables returned undefined for Kubernetes deployment
不确定这是否对其他人有帮助,但这就是我设法在我的 nodejs 应用程序中访问我的秘密的方式!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.