gpt4 book ai didi

Kubernetes:在 pod 启动时从文件中提取环境变量

转载 作者:行者123 更新时间:2023-12-05 06:33:00 25 4
gpt4 key购买 nike

我想知道我是否能够从文件传播环境变量。

猜猜我有这样一个文件:

ENV_VARIABLE_USERNAME=username
ENV_VARIABLE_PASSWORD=password

我希望当我的 pod 开始时,这个内容文件作为环境变量传播。

这可能吗?

最佳答案

一般来说,对于环境变量,你会通过一个configMap来完成。但由于这是用户名和密码(敏感信息),您可以通过 secret 进行。

例如,给定 Pod(在本例中为 redis)和下面的 Secret:

apiVersion: v1
kind: Secret
metadata:
name: credentials
type: Opaque
data:
username: dXNlcm5hbWU= //username -> encoded base64
password: cGFzc3dvcmQ= //password -> encoded base64

注意:您需要对所有数据进行 secret 编码。这是用 base64 编码的:

echo -n username | base64

还有 pod :

apiVersion: v1
kind: Pod
metadata:
name: redis-pod
spec:
containers:
- name: redis
image: redis
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: credentials
key: username
- name: SECRET_PASSWORD
valueFrom:
secretKeyRef:
name: credentials
key: password
restartPolicy: Never

现在如果你要运行 env | grep SECRET 在 pod 中,我会正确初始化变量:

nerus:~/workspace (master) $ kubectl exec redis-pod env | grep SECRET
SECRET_USERNAME=username
SECRET_PASSWORD=password

关于Kubernetes:在 pod 启动时从文件中提取环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50982041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com