すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ConfigMapを使用するようにポッドを構成する

最終更新日:Dec 10, 2024

ConfigMapsを使用すると、構成ファイルを画像から分離できます。 これにより、コンテナアプリケーションの移植性が向上します。 このトピックでは、ポッドでConfigMapを使用する方法について説明します。

シナリオ

次のシナリオでは、ポッドでConfigMapを使用できます。

詳細については、「ConfigMapを使用するポッドの設定」をご参照ください。

使用上の注意

ポッドでConfigMapを使用する場合、ポッドとConfigMapは同じクラスターおよび名前空間に存在する必要があります。

ConfigMapの作成

この例では、SPECIAL_LEVEL: verySPECIAL_TYPE: charmのキーと値のペアを含むSpecial_Configという名前のConfigMapが作成されます。

次のYAMLテンプレートを使用してConfigMapを作成します。

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

ConfigMapを使用して、ポッドの環境変数を定義します。

ConfigMapのキーと値のペアを使用してポッドの環境変数を定義する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  3. [デプロイメント] ページで、右上隅の [YAMLから作成] をクリックします。

  4. サンプルテンプレートを選択するか、カスタムテンプレートを入力して、[作成] をクリックします。

    ポッドの環境変数を定義するには、valueFromパラメーターを使用してSPECIAL_LEVELの値を参照します。 次のサンプルコードに例を示します。

    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:              ##Use the valueFrom parameter to denote that env references the value of the ConfigMap. 
                 configMapKeyRef:
                   name: special-config               ##The name of the referenced ConfigMap. 
                   key: SPECIAL_LEVEL                 ##The key of the referenced key-value pair. 
       restartPolicy: Never

ConfigMapのすべてのキーと値のペアを使用して、ポッドの複数の環境変数を定義する

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  3. [デプロイメント] ページで、右上隅の [YAMLから作成] をクリックします。

  4. サンプルテンプレートを選択するか、カスタムテンプレートを入力して、[作成] をクリックします。

    ConfigMapのすべてのキーと値のペアを使用してポッドの複数の環境変数を定義する場合は、envFromパラメーターを使用できます。 ConfigMapのキーは、ポッド内の環境変数の名前として使用されます。 次のサンプルコードに例を示します。

    apiVersion: v1
    kind: Pod
    metadata:
       name: config-pod-2
    spec:
       containers:
         - name: test-container
           image: busybox
           command: [ "/bin/sh", "-c", "env" ]
           envFrom:                ##Reference all key-value pairs in the special-config configuration file. 
           - configMapRef:
               name: special-config
       restartPolicy: Never

ConfigMapを使用したコマンドラインパラメーターの設定

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  3. [デプロイメント] ページで、右上隅の [YAMLから作成] をクリックします。

  4. サンプルテンプレートを選択するか、カスタムテンプレートを入力して、[作成] をクリックします。

    ConfigMapを使用して、環境変数の置き換えに $(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

ボリュームでConfigMapを使用します。

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  3. On theデプロイメントページをクリックします。YAMLから作成する右上隅にあります。

  4. サンプルテンプレートを選択するか、テンプレートをカスタマイズし、作成.

    ボリュームでConfigMapを使用し、ボリュームセクションでConfigMap名を指定できます。 これにより、ConfigMapのキーと値のペアが、mountPathフィールドで指定されたディレクトリに保存されます。 この例では、ディレクトリは /etc/configです。ConfigMapのキーにちなんで名付けられた構成ファイルが生成されます。 ConfigMapの値は、関連ファイルに格納されます。 次のサンプルコードに例を示します。

    apiVersion: v1
    kind: Pod
    metadata:
       name: config-pod-4
    spec:
       containers:
         - name: test-container
           image: busybox
           command: [ "/bin/sh", "-c", "ls /etc/config/" ]   ##List the names of the files in the directory. 
           volumeMounts:
           - name: config-volume
             mountPath: /etc/config
       volumes:
         - name: config-volume
           configMap:
             name: special-config
       restartPolicy: Never

    ポッドの実行後、ConfigMapのキーが返されます。

    SPECIAL_TYPE
    SPECIAL_LEVEL