我将Secrets用作环境变量,我想知道您将如何在应用程序的客户端中调用Secret?我正在运行Node.js应用程序,并希望使用Secrets环境变量。通常我会通过在本地执行process.env.VARIABLE_NAME
来调用我的环境变量,因为我有一个env文件,但是我知道,将其部署到Kubernetes时,其秘密与环境变量并不相同。
有人可以帮我吗?谢谢!
答案 0 :(得分:1)
由secret创建的环境变量将与传递给pod的其他环境变量一样被读取。
因此,如果您创建一个秘密,例如:
kubectl create secret generic user --from-literal=username=xyz
并将其传递到广告连播:
env:
- name: USERNAME
valueFrom:
secretKeyRef:
name: user
key: username
它将作为环境变量传递到Pod。您可以通过在窗格中执行printenv USERNAME
进行检查,其输出将与此类似:
kubectl exec -it secret-env -- printenv USERNAME
xyz
Multiple secrets可以作为环境变量传递到Pod。
答案 1 :(得分:0)
经过数天的思考,如何将Secrets用作环境变量,我想出了如何在我的nodejs应用程序中引用它!
在我以通常的方式调用环境变量process.env.VARIABLE_NAME
之前,但是当我将Secrets作为环境变量使用时,这对我不起作用。为了获取变量的值,我必须在Javascript文件中执行process.env.ENVIRONMENTAL_VARIABLES_USERNAME
,这对我来说很有效!其中ENVIRONMENTAL_VARIABLES
是name
,而USERNAME
是key
!请参阅我的其他问题进行澄清:Environmental variables returning undefined for Kubernetes deployment
不确定这是否对其他人有帮助,但这是我设法在nodejs应用程序中访问我的Secrets的方法!