第 9 章 サービスアカウントの概要および作成
17.4. ユースケース : POD での CONFIGMAP の使用
1 2
3 4
2. 結果を確認します。
出力例 出力例
1 2
1 2 3 5
1 つの環境変数を含むつの環境変数を含む ConfigMap
ConfigMap の名前。
挿入する環境変数
手順 手順
configMapKeyRef セクションを使用して、Pod のこの ConfigMap のキーを使用できます。
特定の環境変数を挿入するように設定されている
特定の環境変数を挿入するように設定されているPod仕様のサンプル仕様のサンプル
ConfigMap から指定された環境変数をプルするためのスタンザです。
キーの値を挿入する Pod 環境変数の名前です。
特定の環境変数のプルに使用する ConfigMap の名前です。
apiVersion: v1 kind: ConfigMap metadata:
name: env-config 1 namespace: default data:
log_level: INFO 2
apiVersion: v1 kind: Pod metadata:
name: dapi-test-pod spec:
containers:
- name: test-container
image: gcr.io/google_containers/busybox command: [ "/bin/sh", "-c", "env" ]
env: 1
- name: SPECIAL_LEVEL_KEY 2 valueFrom:
configMapKeyRef:
name: special-config 3 key: special.how 4
- name: SPECIAL_TYPE_KEY valueFrom:
configMapKeyRef:
name: special-config 5 key: special.type 6 optional: true 7 envFrom: 8
- configMapRef:
name: env-config 9 restartPolicy: Never
4 6 7
8 9
ConfigMap からプルする環境変数です。
環境変数をオプションにします。オプションとして、Pod は指定された ConfigMap およ びキーが存在しない場合でも起動します。
ConfigMap からすべての環境変数をプルするためのスタンザです。
すべての環境変数のプルに使用する ConfigMap の名前です。
この Pod が実行されると、Pod のログには以下の出力が含まれます。
SPECIAL_LEVEL_KEY=very log_level=INFO
注記 注記
SPECIAL_TYPE_KEY=charm は出力例に一覧表示されません。optional: true が設定さ れているためです。
17.4.2. ConfigMap を使用したコンテナーコマンドのコマンドライン引数の設定
ConfigMap は、コンテナーのコマンドまたは引数の値を設定するために使用することもできます。これ
は、Kubernetes 置換構文 $(VAR_NAME) を使用して実行できます。以下の ConfigMap について見て みましょう。
手順 手順
値をコンテナーのコマンドに挿入するには、環境変数で ConfigMap を使用する場合のように環 境変数として使用する必要のあるキーを使用する必要があります。次に、$(VAR_NAME) 構文 を使用してコンテナーのコマンドでそれらを参照することができます。
特定の環境変数を挿入するように設定されている
特定の環境変数を挿入するように設定されているPod仕様のサンプル仕様のサンプル apiVersion: v1
kind: ConfigMap metadata:
name: special-config namespace: default data:
special.how: very special.type: charm
apiVersion: v1 kind: Pod metadata:
name: dapi-test-pod spec:
containers:
- name: test-container
image: gcr.io/google_containers/busybox
command: [ "/bin/sh", "-c", "echo $(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ] 1
env:
1 環境変数として使用するキーを使用して、コンテナーのコマンドに値を挿入します。
この Pod が実行される場合、test-container コンテナーで実行される echo コマンドの出力は 以下のようになります。
very charm
17.4.3. 設定マップの使用によるボリュームへのコンテンツの挿入
設定マップを使用して、コンテンツをボリュームに挿入することができます。
ConfigMapの例の例
手順 手順
設定マップを使用してコンテンツをボリュームに挿入するには、2 つの異なるオプションを使用できま す。
設定マップを使用してコンテンツをボリュームに挿入するための最も基本的な方法は、キーが ファイル名であり、ファイルの内容がキーの値になっているファイルでボリュームを設定する 方法です。
- name: SPECIAL_LEVEL_KEY valueFrom:
configMapKeyRef:
name: special-config key: special.how
- name: SPECIAL_TYPE_KEY valueFrom:
configMapKeyRef:
name: special-config key: special.type restartPolicy: Never
apiVersion: v1 kind: ConfigMap metadata:
name: special-config namespace: default data:
special.how: very special.type: charm
apiVersion: v1 kind: Pod metadata:
name: dapi-test-pod spec:
containers:
- name: test-container
image: gcr.io/google_containers/busybox
command: [ "/bin/sh", "cat", "/etc/config/special.how" ] volumeMounts:
- name: config-volume
1
1
キーを含むファイル。
この Pod が実行されると、cat コマンドの出力は以下のようになります。
very
ConfigMap キーが展開されるボリューム内のパスを制御することもできます。
ConfigMap キーへのパス。
この Pod が実行されると、cat コマンドの出力は以下のようになります。
very
mountPath: /etc/config volumes:
- name: config-volume configMap:
name: special-config 1 restartPolicy: Never
apiVersion: v1 kind: Pod metadata:
name: dapi-test-pod spec:
containers:
- name: test-container
image: gcr.io/google_containers/busybox
command: [ "/bin/sh", "cat", "/etc/config/path/to/special-key" ] volumeMounts:
- name: config-volume mountPath: /etc/config volumes:
- name: config-volume configMap:
name: special-config items:
- key: special.how
path: path/to/special-key 1 restartPolicy: Never
第 18 章 クラウドプロバイダーの認証情報の管理
18.1. CLOUD CREDENTIAL OPERATOR について
Cloud Credential Operator (CCO) は、クラウドプロバイダーの認証情報をカスタムリソース定義
(CRD) として管理します。CCO は CredentialsRequest カスタムリソース (CR) で同期し、OpenShift
Container Platform コンポーネントが、クラスターの実行に必要な特定のパーミッションと共にクラウ
ドプロバイダーの認証情報を要求できるようにします。
install-config.yaml ファイルで credentialsMode パラメーターに異なる値を設定すると、CCO は複数 の異なるモードで動作するように設定できます。モードが指定されていない場合や、credentialsMode パラメーターが空の文字列 ("") に設定されている場合、CCO はデフォルトモードで動作します。
18.1.1. モード
install-config.yaml ファイルに credentialsMode パラメーターの異なる値を設定することで、CCO を mint、passthrough、または manual モードで動作するように設定できます。これらのオプションによ り、CCO がクラウド認証情報を使用してクラスターで CredentialsRequest CR を処理し、CCO を組 織のセキュリティー要件に対応するように設定する方法において透明性と柔軟性が提供されます。すべ てのクラウドプロバイダーですべての CCO モードがサポートされている訳ではありません。
Mint: mint モードでは、CCO は提供される管理レベルのクラウド認証情報を使用して、必要と
なる特定のパーミッションのみでクラスター内のコンポーネントの新規の認証情報を作成しま す。
注記 注記
mint モードは、CCO が使用するデフォルトかつ推奨されるベストプラクティス
の設定です。
passthrough: passthrough モードでは、CCO はクラウド認証情報を要求するコンポーネント に、指定されたクラウド認証情報を渡します。
手動
手動: 手動モードでは、ユーザーは CCO の代わりにクラウド認証情報を管理します。
Manual with AWS STS: manual モードでは、AWS クラスターを Amazon Web Services Secure Token Service(AWS STS)を使用するように設定できます。この設定では、CCO は 異なるコンポーネントに一時的な認証情報を使用します。
重要 重要
Amazon Web Services Secure Token Service (AWS STS) のサポートはテクノロジープレ ビュー機能としてのみご利用いただけます。テクノロジープレビュー機能は Red Hat の 実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、
Red Hat では実稼働環境での使用を推奨していません。Red Hat は実稼働環境でこれら
を使用することを推奨していません。これらの機能は、近々発表予定の製品機能をリ リースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中 にフィードバックをお寄せいただくことができます。
Red Hat のテクノロジープレビュー機能のサポート範囲についての詳細
は、https://access.redhat.com/ja/support/offerings/techpreview/ を参照してくださ い。
表
表18.1 CCO モードのサポートマトリックスモードのサポートマトリックス
クラウドプロバイダー
クラウドプロバイダー Mint passthrough Manual
Amazon Web Services (AWS) X X X
Microsoft Azure X X X
Google Cloud Platform (GCP) X X X
Red Hat OpenStack Platform (RHOSP) X
Red Hat Virtualization (RHV) X
VMware vSphere X
18.1.2. デフォルト動作
複数のモードがサポートされるプラットフォーム (AWS、Azure、および GCP) の場合、CCO がデフォ ルトモードで動作する際に、これは指定される認証情報を動的にチェックし、CredentialsRequest CR を処理するのに十分なモードを判別します。
デフォルトで、CCO は推奨される操作モードの mint モードに十分な認証情報があるかどうかを判別 し、これらの認証情報を使用してクラスター内のコンポーネントの適切な認証情報を作成します。mint モードに十分な認証情報がない場合は、passthrough モードに十分な認証情報があるかどうかを判別し ます。passthrough モードに十分な認証情報がない場合、CCO は CredentialsRequest CR を適切に処 理できません。
注記 注記
CCO は、Azure 認証情報が passthrough モードに十分であるかどうかを検証できませ ん。Azure 認証情報が mint モードに不十分な場合、CCO は認証情報が passthrough モードには十分であることを前提として動作します。
インストール時に提供された認証情報が不十分であると判別される場合、インストールは失敗します。
AWS では、インストーラーはプロセスの早期の段階で失敗し、どの必須パーミッションが欠落してい るかを示します。他のプロバイダーは、エラーが発生するまでエラーの原因についての具体的な情報を 提供しない場合があります。
認証情報が正常なインストールの後に変更され、CCO が新規の認証情報が不十分であると判別する場
合に、CCO は新規の CredentialsRequest CR に条件を追加し、認証情報が不十分であるためにそれら
を処理できないことを示唆します。
不十分な認証情報についての問題を解決するために、適切なパーミッションで認証情報を指定します。
エラーがインストール時に発生した場合は、再度インストールを試行します。新規の
CredentialsRequest CR 関連の問題については、CCO が再び CR の処理を試行するのを待機しま す。または、AWS、Azure、および GCP の IAM を手動で作成できます。
18.1.3. 追加リソース
Cloud Credential Operator の Red Hat Operator リファレンスページ