使用配置項
更新時間 2024-01-05 16:04:24
最近更新時間: 2024-01-05 16:04:24
分享文章
本節以下面這個ConfigMap為例,具體介紹ConfigMap的用法。
配置項創建后,可在工作負載環境變量、命令行參數和數據卷三個場景使用。
- 通過配置項設置工作負載環境變量
- 通過配置項設置命令行參數
- 使用配置項掛載到工作負載數據卷
本節以下面這個ConfigMap為例,具體介紹ConfigMap的用法。
apiVersion: v1
kind: ConfigMap
metadata:
name: cce-configmap
data:
SPECIAL_LEVEL: Hello
SPECIAL_TYPE: CCE
注意
在Pod里使用ConfigMap時,需要Pod和ConfigMap處于同一集群和命名空間中。
通過配置項設置工作負載環境變量
您可以在創建工作負載時將配置項設置為環境變量,使用valueFrom參數引用ConfigMap中的Key/Value。
apiVersion: v1
kind: Pod
metadata:
name: configmap-pod-1
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "env" ]
env:
- name: SPECIAL_LEVEL_KEY
valueFrom: ##使用valueFrom來指定env引用配置項的value值
configMapKeyRef:
name: cce-configmap ##引用的配置文件名稱
key: SPECIAL_LEVEL ##引用的配置項key
restartPolicy: Never
如果您需要將多個配置項的value值定義為pod的環境變量值,您只需要在pod中添加多個環境變量參數即可。
env:
- name: SPECIAL_LEVEL_KEY
valueFrom:
configMapKeyRef:
name: cce-configmap
key: SPECIAL_LEVEL
- name: SPECIAL_TYPE_KEY
valueFrom:
configMapKeyRef:
name: cce-configmap
key: SPECIAL_TYPE
如果要將一個配置項中所有數據都添加到環境變量中,可以使用envFrom 參數,配置項中的 key 會成為 Pod 中的環境變量名稱。
apiVersion: v1
kind: Pod
metadata:
name: configmap-pod-2
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "env" ]
envFrom:
- configMapRef:
name: cce-configmap
restartPolicy: Never
通過配置項設置命令行參數
您可以使用配置項設置容器中的命令或者參數值,使用環境變量替換語法$(VAR_NAME)來進行。如下面的編排示例所示。
apiVersion: v1
kind: Pod
metadata:
name: configmap-pod-3
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ]
env:
- name: SPECIAL_LEVEL_KEY
valueFrom:
configMapKeyRef:
name: cce-configmap
key: SPECIAL_LEVEL
- name: SPECIAL_TYPE_KEY
valueFrom:
configMapKeyRef:
name: cce-configmap
key: SPECIAL_TYPE
restartPolicy: Never
這個Pod運行后,輸出如下內容。
Hello CCE
使用配置項掛載到工作負載數據卷
配置項也可以在數據卷里面使用,只需在創建工作負載時將配置項掛載到工作負載中即可。掛載完成后,最終生成以key為文件名, value為文件內容的配置文件。
apiVersion: v1
kind: Pod
metadata:
name: configmap-pod-4
spec:
containers:
- name: test-container
image: busybox
command: [ "/bin/sh", "-c", "ls /etc/config/" ] ##列出該目錄下的文件名稱
volumeMounts:
- name: config-volume
mountPath: /etc/config ##掛載到/etc/config目錄下
volumes:
- name: config-volume
configMap:
name: cce-configmap
restartPolicy: Never
這個Pod運行后,在/etc/config目錄下會生成SPECIAL_LEVEL和SPECIAL_TYPE兩個文件,文件的內容為Hello和CCE。且運行時會輸出如下內容,即cce-configmap中SPECIAL_LEVEL和SPECIAL_TYPE的名稱。
SPECIAL_TYPE
SPECIAL_LEVEL
掛載ConfigMap到數據卷還可以在界面上進行操作,在創建工作負載時,設置容器的高級設置,選擇數據存儲,添加本地磁盤,選擇ConfigMap即可配置。具體操作請參見配置項(ConfigMap)掛載。