以下のシナリオで、ポッドで設定を使用できます。

  • 設定マップを使用したポッド環境変数の定義
  • 設定マップを使用したコマンドラインパラメーターの設定
  • データボリュームでの設定マップの利用

詳しくは、「設定マップ使用ポッドの設定」 をご参照ください。

制限

ポッドで設定マップを使用する場合、設定マップおよびポッドが同一のクラスターおよび名前空間にあることをご確認ください。

設定マップの作成

この例では、設定マップ "special-config" を作成します。これには、2 つのキーバリューペア、SPECIAL_LEVEL: very および SPECIAL_TYPE: charm が含まれます。

オーケストレーションテンプレートを利用した設定マップの作成

  1. Container Service コンソール にログインします。
  2. Kubernetsで、[アプリケーション] > [デプロイ] をクリックします。右上角の テンプレートによる作成] をクリックします。
  3. [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ] ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。

    設定マップの作成には、次のような YAML テンプレートを使用できます。

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

設定マップページでの設定マップの作成

  1. Container Service コンソール にログインします。
  2. Kubernetes で、左側のナビゲーションウィンドウから[アプリケーション] > [設定マップ] をクリックします。
  3. [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 右上角の [作成] をクリックします。
  4. 設定マップ名を入力します。 変数名および変数値を入力します。 次に、右側の [追加] をクリックします。 設定が完了したら、[OK] をクリックします。

設定マップを使用したポッド環境変数の定義

設定マップデータを使用したポッド環境変数の定義

  1. Container Service コンソール にログインします。
  2. Kuberneters で、[アプリケーション] > [デプロイ] をクリックします。右上角の テンプレートによる作成] をクリックします。
  3. [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ] ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。

    ポッドでの環境変数を定義できます。 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 valueFrom to specify env to reference the value of the config map.
                 configMapKeyRef:
                   name: special-config               ##The referenced config map name.
                   key: SPECIAL_LEVEL                 ##The referenced config map key.
       restartPolicy: Never

同様に、ポッドの環境変数値に対し複数の設定マップの値を定義するために、ポッドで複数の "env" パラメーターを追加します。

ポッド環境変数に対する設定マップすべてのキーとバリューのペアの設定

  1. Container Service コンソール にログインします。
  2. Kubernetes で、[アプリケーション] > [デプロイ] をクリックします。右上角の [テンプレートによる作成] をクリックします。
  3. [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ] ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。

    ポッドの環境変数に対する設定マップのすべてのキーバリューペアを設定するため、"envFrom" パラメーターを設定します。 設定マップのキーは、ポッドでの環境変数名になります。

    以下のオーケストレーションサンプルをご参照ください。

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

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

  1. Container Service コンソール にログインします。
  2. Kubernetes で、[アプリケーション] > [デプロイ] をクリックします。右上角の [テンプレートによる作成] をクリックします。
  3. [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ] ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。

    環境変数の交換に関する構文である $(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

    ポッド実行後の出力は以下のようになります。

    very charm

データボリュームでの設定マップの利用

  1. Container Service コンソール にログインします。
  2. Kubernetes で、左側のナビゲーションウィンドウから、[アプリケーション] の [デプロイ] をクリックします。 右上角の [テンプレートによる作成] をクリックします。
  3. [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ] ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。

    データボリュームで設定マップを利用することができます。 ボリュームにある指定した設定マップ名は、"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/" ]   ##List the file names under this directory.
           volumeMounts:
           - name: config-volume
             mountPath: /etc/config
       volumes:
         - name: config-volume
           configMap:
             name: special-config
       restartPolicy: Never

    設定マップのキーがポッド実行後に出力されます。

    SPECIAL_TYPE
    SPECIAL_LEVEL