Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Kubernetes中作为环境变量的访问秘密_Node.js_Kubernetes_Deployment_Environment Variables_Dotenv - Fatal编程技术网

Node.js Kubernetes中作为环境变量的访问秘密

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

我正在使用Secrets作为环境变量,我想知道您如何在我的应用程序的客户端调用secret?我正在运行Node.js应用程序,希望使用Secrets环境变量。我通常会通过在本地执行
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.*
来访问我的环境变量,这是一个秘密,那么它应该以同样的方式工作吗?