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

fai*_*nty 3 deployment environment-variables node.js kubernetes dotenv

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

有人可以帮我解决这个问题吗?谢谢!

Mar*_* K. 6

Secret 创建的环境变量将与传递给 pod 的任何其他环境变量一样读取。

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

kubectl create secret generic user --from-literal=username=xyz
Run Code Online (Sandbox Code Playgroud)

并将其传递给 pod:

env:
- name: USERNAME
  valueFrom:
    secretKeyRef:
      name: user
      key: username
Run Code Online (Sandbox Code Playgroud)

它将作为环境变量传递给 pod。您可以通过printenv USERNAME在 pod 中执行来检查它,输出将类似于以下内容:

kubectl exec -it secret-env -- printenv USERNAME
xyz
Run Code Online (Sandbox Code Playgroud)

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