来自 configmap 的 Env 变量在 pod 中不可用
Env variables from configmap not available inside pod
我正在尝试将 env 变量从 configmap 传递到我的 pod。我有以下设置。
我有一个文件 test-config.txt 有 2 个环境变量
a_sample_env=b
c_sample_env=d
我创建了一个configmap如下:
kubectl create configmap test-config --from-file test-config.txt
我的pod定义如下:
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- name: mycontainer
image: redis
envFrom:
- configMapRef:
name: test-config
但是我的应用程序没有收到 test-config.txt 文件中的 2 个环境变量。我使用 kubectl exec 登录到 pod 并获取环境变量的空值。
root@test-pod:/data# echo $c_sample_env
root@test-pod:/data# echo $a_sample_env
谁能指出为什么环境变量在 pod 中不可用?
您应该如下创建 configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
a_sample_env: b
c_sample_env: d
如果您使用以下命令创建 configmap
kubectl create configmap test-config --from-file test-config.txt
然后您可以将 test-config 作为容器内的卷挂载。您将必须创建一个 wrapper/launch 脚本以在启动期间从该文件导出所有 k:v 对作为环境变量
您可以简单地使用 --from-literal
标志而不是 --from-file
创建秘密
kubectl create cm test-config --from-literal=a_sample_env=b --from-literal=c_sample_env=d
创建广告连播
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: test-pod
name: test-pod
spec:
containers:
- image: redis
imagePullPolicy: IfNotPresent
name: test-pod
resources: {}
envFrom:
- configMapRef:
name: test-config
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
执行 pod 并检查 envs
root@test-pod:/data# env | grep sample
c_sample_env=d
a_sample_env=b
我正在尝试将 env 变量从 configmap 传递到我的 pod。我有以下设置。
我有一个文件 test-config.txt 有 2 个环境变量
a_sample_env=b
c_sample_env=d
我创建了一个configmap如下:
kubectl create configmap test-config --from-file test-config.txt
我的pod定义如下:
apiVersion: v1
kind: Pod
metadata:
name: test-pod
spec:
containers:
- name: mycontainer
image: redis
envFrom:
- configMapRef:
name: test-config
但是我的应用程序没有收到 test-config.txt 文件中的 2 个环境变量。我使用 kubectl exec 登录到 pod 并获取环境变量的空值。
root@test-pod:/data# echo $c_sample_env
root@test-pod:/data# echo $a_sample_env
谁能指出为什么环境变量在 pod 中不可用?
您应该如下创建 configmap
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
a_sample_env: b
c_sample_env: d
如果您使用以下命令创建 configmap
kubectl create configmap test-config --from-file test-config.txt
然后您可以将 test-config 作为容器内的卷挂载。您将必须创建一个 wrapper/launch 脚本以在启动期间从该文件导出所有 k:v 对作为环境变量
您可以简单地使用 --from-literal
标志而不是 --from-file
kubectl create cm test-config --from-literal=a_sample_env=b --from-literal=c_sample_env=d
创建广告连播
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: test-pod
name: test-pod
spec:
containers:
- image: redis
imagePullPolicy: IfNotPresent
name: test-pod
resources: {}
envFrom:
- configMapRef:
name: test-config
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
执行 pod 并检查 envs
root@test-pod:/data# env | grep sample
c_sample_env=d
a_sample_env=b