This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.5. コンテナーによる API オブジェクト使用の許可
Downward API は、OpenShift Container Platform に結合せずにコンテナーが API オブジェクトについての情報を使用できるメカニズムです。この情報には、Pod の名前、namespace およびリソース値が含まれます。コンテナーは、環境変数やボリュームプラグインを使用して Downward API からの情報を使用できます。
6.5.1. Downward API の使用によるコンテナーへの Pod 情報の公開 リンクのコピーリンクがクリップボードにコピーされました!
Downward API には、Pod の名前、プロジェクト、リソースの値などの情報が含まれます。コンテナーは、環境変数やボリュームプラグインを使用して Downward API からの情報を使用できます。
Pod 内のフィールドは、FieldRef
API タイプを使用して選択されます。FieldRef
には 2 つのフィールドがあります。
フィールド | 説明 |
---|---|
| Pod に関連して選択するフィールドのパスです。 |
|
|
現時点で v1 API の有効なセレクターには以下が含まれます。
セレクター | 説明 |
---|---|
| Pod の名前です。これは環境変数およびボリュームでサポートされています。 |
| Pod の namespace です。 これは環境変数およびボリュームでサポートされています。 |
| Pod のラベルです。これはボリュームでのみサポートされ、環境変数ではサポートされていません。 |
| Pod のアノテーションです。これはボリュームでのみサポートされ、環境変数ではサポートされていません。 |
| Pod の IP です。これは環境変数でのみサポートされ、ボリュームではサポートされていません。 |
apiVersion
フィールドは、指定されていない場合は、対象の Pod テンプレートの API バージョンにデフォルト設定されます。
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
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pod.yaml
ファイルから Pod を作成します。oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのログで
MY_POD_NAME
およびMY_POD_NAMESPACE
の値を確認します。oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.2.2. ボリュームプラグインを使用したコンテナー値の使用 リンクのコピーリンクがクリップボードにコピーされました!
コンテナーは、ボリュームプラグイン使用して API 値を使用できます。
コンテナーは、以下を使用できます。
- Pod の名前
- Pod プロジェクト/namespace
- Pod のアノテーション
- Pod のラベル
手順
ボリュームプラグインを使用するには、以下の手順を実行します。
volume-pod.yaml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow volume-pod.yaml
ファイルから Pod を作成します。oc create -f volume-pod.yaml
$ oc create -f volume-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのログを確認し、設定されたフィールドの有無を確認します。
oc logs -p dapi-volume-test-pod
$ oc logs -p dapi-volume-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.3. Downward API を使用してコンテナーリソースを使用する方法について リンクのコピーリンクがクリップボードにコピーされました!
Pod の作成時に、Downward API を使用してコンピューティングリソースの要求および制限についての情報を挿入し、イメージおよびアプリケーションの作成者が特定の環境用のイメージを適切に作成できるようにします。
環境変数またはボリュームプラグインを使用してこれを実行できます。
6.5.3.1. 環境変数を使用したコンテナーリソースの使用 リンクのコピーリンクがクリップボードにコピーされました!
Pod を作成するときは、Downward API を使用し、環境変数を使ってコンピューティングリソースの要求と制限に関する情報を挿入できます。
手順
環境変数を使用するには、以下の手順を実行します。
Pod 設定の作成時に、
spec.container
フィールド内のresources
フィールドの内容に対応する環境変数を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソース制限がコンテナー設定に含まれていない場合、Downward API はデフォルトでノードの CPU およびメモリーの割り当て可能な値に設定されます。
pod.yaml
ファイルから Pod を作成します。oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.3.2. ボリュームプラグインを使用したコンテナーリソースの使用 リンクのコピーリンクがクリップボードにコピーされました!
Pod を作成するときは、Downward API を使用し、ボリュームプラグインを使ってコンピューティングリソースの要求と制限に関する情報を挿入できます。
手順
ボリュームプラグインを使用するには、以下の手順を実行します。
Pod 設定の作成時に、
spec.volumes.downwardAPI.items
フィールドを使用してspec.resources
フィールドに対応する必要なリソースを記述します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソース制限がコンテナー設定に含まれていない場合、Downward API はデフォルトでノードの CPU およびメモリーの割り当て可能な値に設定されます。
volume-pod.yaml
ファイルから Pod を作成します。oc create -f volume-pod.yaml
$ oc create -f volume-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.4. Downward API を使用したシークレットの使用 リンクのコピーリンクがクリップボードにコピーされました!
Pod の作成時に、Downward API を使用してシークレットを挿入し、イメージおよびアプリケーションの作成者が特定の環境用のイメージを作成できるようにできます。
手順
secret.yaml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow secret.yaml
ファイルからSecret
オブジェクトを作成します。oc create -f secret.yaml
$ oc create -f secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の
Secret
オブジェクトからusername
フィールドを参照するpod.yaml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pod.yaml
ファイルから Pod を作成します。oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのログで
MY_SECRET_USERNAME
の値を確認します。oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.5. Downward API を使用した設定マップの使用 リンクのコピーリンクがクリップボードにコピーされました!
Pod の作成時に、Downward API を使用して設定マップの値を挿入し、イメージおよびアプリケーションの作成者が特定の環境用のイメージを作成することができるようにすることができます。
手順
configmap.yaml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow configmap.yaml
ファイルからConfigMap
オブジェクトを作成します。oc create -f configmap.yaml
$ oc create -f configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の
ConfigMap
オブジェクトを参照するpod.yaml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pod.yaml
ファイルから Pod を作成します。oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのログで
MY_CONFIGMAP_VALUE
の値を確認します。oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.6. 環境変数の参照 リンクのコピーリンクがクリップボードにコピーされました!
Pod の作成時に、$()
構文を使用して事前に定義された環境変数の値を参照できます。環境変数の参照が解決されない場合、値は提供された文字列のままになります。
手順
既存の
environment variable
を参照するpod.yaml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pod.yaml
ファイルから Pod を作成します。oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのログで
MY_ENV_VAR_REF_ENV
値を確認します。oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.7. 環境変数の参照のエスケープ リンクのコピーリンクがクリップボードにコピーされました!
Pod の作成時に、二重ドル記号を使用して環境変数の参照をエスケープできます。次に値は指定された値の単一ドル記号のバージョンに設定されます。
手順
既存の
environment variable
を参照するpod.yaml
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow pod.yaml
ファイルから Pod を作成します。oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのログで
MY_NEW_ENV
値を確認します。oc logs -p dapi-env-test-pod
$ oc logs -p dapi-env-test-pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow