全部產品
Search
文件中心

Container Service for Kubernetes:在容器組中使用配置項

更新時間:Feb 28, 2024

配置項使您可以將設定檔與鏡像分離,提高容器應用程式的可移植性。本文介紹如何在Pod中使用配置項。

使用情境

您可以在Pod中使用配置項,主要有以下幾種使用情境:

關於配置項的更多資訊,請參見Configure a Pod to Use a ConfigMap

使用限制

在Pod中使用配置項時,Pod與配置項需處於同一叢集和命名空間中。

建立配置項

本樣本建立配置項Special_Config,包含SPECIAL_LEVEL: verySPECIAL_TYPE: charm兩個索引值對。

YAML樣本模板如下:

apiVersion: v1
kind: ConfigMap
metadata:
   name: special-config
   namespace: default
data:
   SPECIAL_LEVEL: very
   SPECIAL_TYPE: charm

使用配置項定義Pod環境變數

使用配置項的資料定義Pod環境變數

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 無狀態

  3. 無狀態頁面中,單擊使用YAML建立資源

  4. 選擇樣本模板或自訂,然後單擊建立

    您可以在Pod中定義環境變數,可以使用valueFrom引用SPECIAL_LEVEL的Value值,從而定義Pod的環境變數。配置樣本如下:

    apiVersion: v1
    kind: Pod
    metadata:
       name: config-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: special-config               ##引用的設定檔名稱。
                   key: SPECIAL_LEVEL                 ##引用的配置項key。
       restartPolicy: Never

將配置項的所有Key/Values配置為Pod的環境變數

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 無狀態

  3. 無狀態頁面中,單擊使用YAML建立資源

  4. 選擇樣本模板或自訂,然後單擊建立

    如果您想在一個Pod中將配置項的所有Key/Values索引值對配置為Pod的環境變數,可以使用envFrom參數,配置項中的Key會成為Pod中的環境變數的名稱。配置樣本如下:

    apiVersion: v1
    kind: Pod
    metadata:
       name: config-pod-2
    spec:
       containers:
         - name: test-container
           image: busybox
           command: [ "/bin/sh", "-c", "env" ]
           envFrom:                ##引用special-config設定檔的所有key/values索引值對。
           - configMapRef:
               name: special-config
       restartPolicy: Never

通過配置項設定命令列參數

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 無狀態

  3. 無狀態頁面中,單擊使用YAML建立資源

  4. 選擇樣本模板或自訂,然後單擊建立

    您可以使用配置項設定容器中的命令或參數值,使用環境變數替換文法$(VAR_NAME)進行。配置樣本如下:

    apiVersion: v1
    kind: Pod
    metadata:
       name: config-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: special-config
                   key: SPECIAL_LEVEL
             - name: SPECIAL_TYPE_KEY
               valueFrom:
                 configMapKeyRef:
                   name: special-config
                   key: SPECIAL_TYPE
       restartPolicy: Never

在資料卷中使用配置項

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇工作負載 > 無狀態

  3. 無狀態頁面中,單擊使用YAML建立資源

  4. 選擇範例模板或自訂,然後單擊建立

    您也可以在資料卷裡面使用配置項,在Volumes下指定配置項名稱,會將Key/Values的資料存放區到MountPath路徑下(本例中是/etc/config)。最終產生以Key為檔案名稱,Values為檔案內容的設定檔。配置樣本如下:

    apiVersion: v1
    kind: Pod
    metadata:
       name: config-pod-4
    spec:
       containers:
         - name: test-container
           image: busybox
           command: [ "/bin/sh", "-c", "ls /etc/config/" ]   ##列出該目錄下的檔案名稱。
           volumeMounts:
           - name: config-volume
             mountPath: /etc/config
       volumes:
         - name: config-volume
           configMap:
             name: special-config
       restartPolicy: Never

    運行Pod後,將輸出配置項的Key。

    SPECIAL_TYPE
    SPECIAL_LEVEL