在 Kubernetes 中将机密作为环境变量访问
Access secrets as environment variables in Kubernetes
我将 Secrets 用作环境变量,我想知道您将如何在我的应用程序的客户端调用该 Secret?我是 运行 一个 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
来检查它,输出将类似于:
kubectl exec -it secret-env -- printenv USERNAME
xyz
Multiple secrets 可以作为环境变量传递给 pod。
经过几天弄清楚如何将 Secrets 用作环境变量后,我弄清楚了如何在我的 nodejs 应用程序中引用它!
在我以正常方式调用环境变量之前,process.env.VARIABLE_NAME
,但是当我将 Secrets 作为环境变量时,这对我不起作用。为了获得变量的值,我必须在我的 Javascript 文件中执行 process.env.ENVIRONMENTAL_VARIABLES_USERNAME
,这对我有用!其中 ENVIRONMENTAL_VARIABLES
是 name
,USERNAME
是 key
!请参阅我的其他问题进行说明:
不确定这是否对其他人有帮助,但这就是我设法在我的 nodejs 应用程序中访问我的 Secrets 的方式!
我将 Secrets 用作环境变量,我想知道您将如何在我的应用程序的客户端调用该 Secret?我是 运行 一个 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
来检查它,输出将类似于:
kubectl exec -it secret-env -- printenv USERNAME
xyz
Multiple secrets 可以作为环境变量传递给 pod。
经过几天弄清楚如何将 Secrets 用作环境变量后,我弄清楚了如何在我的 nodejs 应用程序中引用它!
在我以正常方式调用环境变量之前,process.env.VARIABLE_NAME
,但是当我将 Secrets 作为环境变量时,这对我不起作用。为了获得变量的值,我必须在我的 Javascript 文件中执行 process.env.ENVIRONMENTAL_VARIABLES_USERNAME
,这对我有用!其中 ENVIRONMENTAL_VARIABLES
是 name
,USERNAME
是 key
!请参阅我的其他问题进行说明:
不确定这是否对其他人有帮助,但这就是我设法在我的 nodejs 应用程序中访问我的 Secrets 的方式!