6.5.2. Downward API を使用してコンテナーの値を使用する方法について
コンテナーは、環境変数やボリュームプラグインを使用して API の値を使用することができます。選択する方法により、コンテナーは以下を使用できます。
- Pod の名前
- Pod プロジェクト/namespace
- Pod のアノテーション
- Pod のラベル
アノテーションとラベルは、ボリュームプラグインのみを使用して利用できます。
6.5.2.1. 環境変数の使用によるコンテナー値の使用
コンテナーの環境変数を設定する際に、EnvVar
タイプの valueFrom
フィールド (タイプは EnvVarSource
) を使用して、変数の値が value
フィールドで指定されるリテラル値ではなく、FieldRef
ソースからの値になるように指定します。
この方法で使用できるのは Pod の定数属性のみです。変数の値の変更についてプロセスに通知する方法でプロセスを起動すると、環境変数を更新できなくなるためです。環境変数を使用してサポートされるフィールドには、以下が含まれます。
- Pod の名前
- Pod プロジェクト/namespace
手順
環境変数を使用するには、以下を実行します。
pod.yaml
ファイルを作成します。apiVersion: v1 kind: Pod metadata: name: dapi-env-test-pod spec: containers: - name: env-test-container image: gcr.io/google_containers/busybox command: [ "/bin/sh", "-c", "env" ] env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace restartPolicy: Never
pod.yaml
ファイルから Pod を作成します。$ oc create -f pod.yaml
コンテナーのログで
MY_POD_NAME
およびMY_POD_NAMESPACE
の値を確認します。$ oc logs -p dapi-env-test-pod