以下のシナリオで、ポッドで設定を使用できます。
- 設定マップを使用したポッド環境変数の定義
- 設定マップを使用したコマンドラインパラメーターの設定
- データボリュームでの設定マップの利用
詳しくは、「設定マップ使用ポッドの設定」 をご参照ください。
制限
ポッドで設定マップを使用する場合、設定マップおよびポッドが同一のクラスターおよび名前空間にあることをご確認ください。
設定マップの作成
この例では、設定マップ "special-config" を作成します。これには、2 つのキーバリューペア、SPECIAL_LEVEL: very
および
SPECIAL_TYPE: charm
が含まれます。
オーケストレーションテンプレートを利用した設定マップの作成
- Container Service コンソール にログインします。
- Kubernetsで、テンプレートによる作成] をクリックします。 右上角の
- [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ]
ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。
設定マップの作成には、次のような YAML テンプレートを使用できます。
apiVersion: v1 kind: ConfigMap metadata: name: special-config namespace: default data: SPECIAL_LEVEL: very SPECIAL_TYPE: charm
設定マップページでの設定マップの作成
- Container Service コンソール にログインします。
- Kubernetes で、左側のナビゲーションウィンドウから をクリックします。
- [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 右上角の [作成] をクリックします。
- 設定マップ名を入力します。 変数名および変数値を入力します。 次に、右側の [追加] をクリックします。 設定が完了したら、[OK] をクリックします。
設定マップを使用したポッド環境変数の定義
設定マップデータを使用したポッド環境変数の定義
- Container Service コンソール にログインします。
- Kuberneters で、テンプレートによる作成] をクリックします。 右上角の
- [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ]
ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。
ポッドでの環境変数を定義できます。
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" パラメーターを追加します。
ポッド環境変数に対する設定マップすべてのキーとバリューのペアの設定
- Container Service コンソール にログインします。
- Kubernetes で、[テンプレートによる作成] をクリックします。 右上角の
- [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ]
ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。
ポッドの環境変数に対する設定マップのすべてのキーバリューペアを設定するため、"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
設定マップを使用したコマンドラインパラメーターの設定
- Container Service コンソール にログインします。
- Kubernetes で、 [テンプレートによる作成] をクリックします。 右上角の
- [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ]
ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。
環境変数の交換に関する構文である
$(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
データボリュームでの設定マップの利用
- Container Service コンソール にログインします。
- Kubernetes で、左側のナビゲーションウィンドウから、[アプリケーション] の [デプロイ] をクリックします。 右上角の [テンプレートによる作成] をクリックします。
- [クラスター] ドロップダウンリストおよび [名前空間] ドロップダウンリストからクラスターおよび名前空間を選択します。 サンプルテンプレートを選択するか、[リソースタイプ]
ドロップダウンリストから [カスタマイズ] をクリックします。 [デプロイ] をクリックします。
データボリュームで設定マップを利用することができます。 ボリュームにある指定した設定マップ名は、"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