3 回答
TA贡献1818条经验 获得超7个赞
制作这样的 yaml 文件来定义配置映射
apiVersion: v1
data:
CLOUD_TYPE: "$CLOUD_TYPE"
CLUSTER_REGION: "$CLUSTER_REGION"
CLUSTER_TYPE: "$CLUSTER_TYPE"
CLUSTER_NAME: "$CLUSTER_NAME"
CLUSTER_ID: "$CLUSTER_ID"
kind: ConfigMap
metadata:
creationTimestamp: null
name: foo
确保您的配置变量已设置,然后将其应用于您的集群,首先使用 env 替换
envsubst < foo.yaml | kubectl apply -f
然后在 pod 定义中使用 config map
spec:
containers:
- name: mypod
envFrom:
- configMapRef:
name: foo
TA贡献2003条经验 获得超2个赞
...haven't set the env var in the pod. I set it locally in my system
在您的主机上设置的环境变量不会自动传递给 Pod。您可以在规范中设置环境并通过容器访问。将规范中的环境变量替换为主机上的变量的常用方法是使用envsubst < draft-spec.yaml > final-spec.yaml. 例如,如果您有规格:
apiVersion: v1
kind: Pod
metadata:
labels:
run: busybox
name: busybox
spec:
restartPolicy: Never
containers:
- name: busybox
image: busybox
imagePullPolicy: IfNotPresent
command: ["ash","-c","echo ${CONTAINER_MESSAGE}"]
env:
- name: CONTAINER_MESSAGE
value: $HOST_MESSAGE
你可以运行HOST_MESSAGE='hello, world!' envsubst '{$HOST_MESSAGE}' < busybox.yaml | kubectl apply -f -。这会将 $HOST_MESSAGE 替换为“你好,世界!” 但不会触及 ${CONTAINER_MESSAGE}。这种方法不依赖于 ConfigMap,它允许您kubectl set env在部署后使用它来更新变量。
- 3 回答
- 0 关注
- 108 浏览
添加回答
举报