Node.js Kubernetes中作为环境变量的访问秘密
我正在使用Secrets作为环境变量,我想知道您如何在我的应用程序的客户端调用secret?我正在运行Node.js应用程序,希望使用Secrets环境变量。我通常会通过在本地执行Node.js Kubernetes中作为环境变量的访问秘密,node.js,kubernetes,deployment,environment-variables,dotenv,Node.js,Kubernetes,Deployment,Environment Variables,Dotenv,我正在使用Secrets作为环境变量,我想知道您如何在我的应用程序的客户端调用secret?我正在运行Node.js应用程序,希望使用Secrets环境变量。我通常会通过在本地执行process.env.VARIABLE\u NAME来调用我的环境变量,因为我有一个env文件,但我知道当部署到Kubernetes上时,它与环境变量的秘密不同 有人能帮我吗?谢谢 由secret创建的环境变量将被读取为传递给pod的其他环境变量 因此,如果您创建了一个秘密,例如: kubectl create se
process.env.VARIABLE\u NAME
来调用我的环境变量,因为我有一个env文件,但我知道当部署到Kubernetes上时,它与环境变量的秘密不同
有人能帮我吗?谢谢 由secret创建的环境变量将被读取为传递给pod的其他环境变量 因此,如果您创建了一个秘密,例如:
kubectl create secret generic user --from-literal=username=xyz
然后把它传给吊舱:
env:
- name: USERNAME
valueFrom:
secretKeyRef:
name: user
key: username
它将作为环境变量传递给pod。您可以通过在pod中执行printenv USERNAME
来检查它,输出将类似于此:
kubectl exec -it secret-env -- printenv USERNAME
xyz
可以作为环境变量传递给pod。在弄清楚如何将机密用作环境变量的几天后,我终于弄明白了如何在我的nodejs应用程序中引用它 在我使用调用环境变量的常规方法之前,
process.env.VARIABLE\u NAME
,但当我将机密作为环境变量时,这对我来说并不适用。为了得到变量的值,我必须在我的Javascript文件中执行process.env.env.environment\u VARIABLES\u USERNAME
,这对我很有效!其中,环境变量
是名称
,用户名
是键
!请参阅我的另一个问题进行澄清:
不确定这是否会帮助其他人,但这就是我如何在我的nodejs应用程序中访问我的秘密 无论环境变量是从文本值、向下API、ConfigMap还是秘密值设置的,它们的行为都应该相同。Kubernetes文档中有一些示例。你有什么特别的设置吗?我明白了。。因此,如果我使用
process.env.*
来访问我的环境变量,这是一个秘密,那么它应该以同样的方式工作吗?