7.5.2. Downward API を使用してコンテナーの値を使用する方法について


コンテナーは、環境変数またはボリュームプラグインを使用して API 値を利用できます。

選択する方法により、コンテナーは以下を使用できます。

  • Pod の名前
  • Pod プロジェクト/namespace
  • Pod のアノテーション
  • Pod のラベル

アノテーションとラベルは、ボリュームプラグインのみを使用して利用できます。

7.5.2.1. 環境変数の使用によるコンテナー値の使用

コンテナー内で環境変数を使用する場合、変数の値が指定されたリテラル値ではなく、FieldRef ソースから取得されるように指定できます。

この方法で利用できるのは、Pod の定数属性のみです。なぜなら、環境変数は、プロセスが開始された後に、変数の値が変更されたことをプロセスに通知できるような方法で更新することはできないからです。環境変数で使用できるフィールドは以下のとおりです。

  • Pod の名前
  • Pod プロジェクト/namespace

手順

  1. コンテナーで使用する環境変数を含む新しい Pod 仕様を作成します。

    1. 次のような pod.yaml ファイルを作成します。

      apiVersion: v1
      kind: Pod
      metadata:
        name: dapi-env-test-pod
      spec:
        securityContext:
          runAsNonRoot: true
          seccompProfile:
            type: RuntimeDefault
        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
            securityContext:
              allowPrivilegeEscalation: false
              capabilities:
                drop: [ALL]
        restartPolicy: Never
      # ...

      各項目の説明:

      spec.containers.env.valueFrom.fieldRef.fieldPath
      環境変数が、 フィールドで指定されたリテラル値ではなく、指定された Pod 値 (Pod 名の場合は metadata.name、Pod 名前空間の場合は metadata.namespace) から値を取得することを指定します。
    2. 以下のコマンドを使用して、pod.yaml ファイルから Pod を作成します。

      $ oc create -f pod.yaml

検証

  • コンテナーログで MY_POD_NAMEMY_POD_NAMESPACE の 値を確認してください。

    $ oc logs -p dapi-env-test-pod
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る