9.2. ユースケース: Pod で設定マップを使用する
以下のセクションでは、Pod で ConfigMap オブジェクトを使用する際のいくつかのユースケースを説明します。
9.2.1. 設定マップの使用によるコンテナーでの環境変数の設定 リンクのコピーリンクがクリップボードにコピーされました!
config map を使用して、コンテナーで個別の環境変数を設定するために使用したり、有効な環境変数名を生成するすべてのキーを使用してコンテナーで環境変数を設定するために使用したりすることができます。
以下の例の ConfigMap カスタムリソース (CR) には、2 つの環境変数が含まれています。
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
special.how: very
special.type: charm
各項目の説明:
metadata.name- config map の名前を指定します。
metadata.namespace- config map が存在するプロジェクトを指定します。設定マップは同じプロジェクトの Pod によってのみ参照されます。
data- 注入する環境変数を指定します。
以下の例の ConfigMap (CR) には、1 つの環境変数が含まれています。
apiVersion: v1
kind: ConfigMap
metadata:
name: env-config
namespace: default
data:
log_level: INFO
各項目の説明:
metadata.name- config map の名前を指定します。
metadata.namespace- config map が存在するプロジェクトを指定します。設定マップは同じプロジェクトの Pod によってのみ参照されます。
data- 注入する環境変数を指定します。
手順
configMapKeyRefセクションを使用して、Pod のこのConfigMapのキーを使用できます。特定の環境変数を注入するように設定されている
Pod仕様のサンプルapiVersion: v1 kind: Pod metadata: name: dapi-test-pod spec: securityContext: runAsNonRoot: true seccompProfile: type: RuntimeDefault containers: - name: test-container image: gcr.io/google_containers/busybox command: [ "/bin/sh", "-c", "env" ] env: - name: SPECIAL_LEVEL_KEY valueFrom: configMapKeyRef: name: special-config key: special.how - name: SPECIAL_TYPE_KEY valueFrom: configMapKeyRef: name: special-config key: special.type optional: true envFrom: - configMapRef: name: env-config securityContext: allowPrivilegeEscalation: false capabilities: drop: [ALL] restartPolicy: Never各項目の説明:
spec.containers.env- config map から取得する環境変数を指定します。
spec.containers.env.name- キーの値を注入する Pod 環境変数の名前を指定します。
spec.containers.env.valueFrom.configMapKeyRef.name- 特定の環境変数を取得する config map の名前を指定します。
spec.containers.env.valueFrom.configMapKeyRef.key- config map から取得する環境変数を指定します。
spec.containers.env.valueFrom.configMapKeyRef.optional- 環境変数が省略可能であることを指定します。オプションとして、指定された config map とキーが存在しない場合でも、Pod は起動されます。
spec.containers.envFrom.configMapRef- 環境変数をすべて取得する config map の名前を指定します。
この Pod が実行されると、Pod のログには以下の出力が含まれます。
SPECIAL_LEVEL_KEY=very log_level=INFO注記SPECIAL_TYPE_KEY=charmは出力例にリスト表示されません。optional: trueが設定されているためです。