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 關注
- 153 瀏覽
添加回答
舉報