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.第15章 Pod の Preset (プリセット) を使用した情報の Pod への挿入
15.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
Pod の Preset は、ユーザーが指定する情報を Pod の作成時に Pod に挿入するオブジェクトです。
OpenShift Container Platform 3.7 の時点で、Pod の Preset はサポートされなくなりました。
挿入可能な Pod の Preset オブジェクトを使用します。
- シークレットオブジェクト
-
ConfigMap
オブジェクト - ストレージボリューム
- コンテナーボリュームのマウント
- 環境変数
すべての情報を Pod に追加する場合には、開発者は Pod ラベルが PodPreset のラベルセレクターに一致することだけ確認してください。Pod の「ラベル」は、「ラベルセレクター」が一致する Pod Preset オブジェクト 1 つまたは複数に Pod を関連付けます。
Pod の Preset を使用すると、開発者は Pod が使用するサービスについての詳細を知らなくても Pod をプロビジョニングできます。管理者は、開発者による Pod のデプロイを阻むことなくサービスの設定項目を開発者に対して非表示にできます。たとえば、管理者はシークレットでデータベースの名前、ユーザー名、およびパスワードを提供し、環境変数でデータベースポートを提供する Pod の Preset を作成できます。Pod の開発者はすべての情報を Pod に組み込むために使用するラベルのみを把握している必要があります。さらに開発者も Pod の Preset を作成して同じタスクを実行することができます。たとえば開発者は、環境変数を複数 Pod に自動的に挿入する Preset を作成できます。
Pod の Preset が Pod に適用されると、OpenShift Container Platform は Pod 仕様を変更し、挿入可能なデータを追加し、Pod の Preset で変更されたことを示すアノテーションを Pod 仕様に付けます。アノテーションの形式は以下のようになります。
podpreset.admission.kubernetes.io/<pod-preset name>: `resource version`
podpreset.admission.kubernetes.io/<pod-preset name>: `resource version`
クラスターで Pod の Preset を使用するには、以下を実行します。
- 管理者は /etc/origin/master/master-config.yaml で Pod Preset 受付コントローラープラグインを有効にする必要があります。
-
Pod の Preset の作成者は Pod の Preset で API タイプ
settings.k8s.io/v1alpha1/podpreset
を有効にし、挿入可能な情報を Pod の Preset に追加する必要があります。
Pod の作成時にエラーが生じる場合は、Pod の Preset から挿入されたリソースなしに Pod が作成されている場合です。
Pod 仕様で podpreset.admission.kubernetes.io/exclude: "true"
パラメーターを使用することで、Pod の Preset の変更があっても特定の Pod が変更されないようにすることができます。以下の Pod 仕様の例を参照してください。
Pod の Preset 機能は、「サービスカタログ」がインストールされている場合にのみ利用できます。
Pod の Preset オブジェクトの例
Pod 仕様の例
- 1
- Pod の Preset のラベルセレクターに一致するラベルです。
Pod の Preset 適用後の Pod 仕様の例
Pod を Pod の Preset から除外する Pod 仕様の例
- 1
- Pod の Preset 機能がこの Pod を挿入できないようにするにはこのパラメーターを追加します。
15.2. Pod の Preset の作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、Pod の Preset を作成し、使用する方法を示しています。
- 受付コントローラーの追加
- 管理者は /etc/origin/master/master-config.yaml ファイルをチェックして Pod の Preset 受付コントローラープラグインがあることを確認します。受付コントローラーがない場合、以下を使用してプラグインを追加します。
次に OpenShift Container Platform サービスを再起動します。
master-restart api master-restart controllers
# master-restart api
# master-restart controllers
- Pod の Preset の作成
-
管理者または開発者は、
settings.k8s.io/v1alpha1
API、挿入する情報および Pod に一致するラベルセレクターを使用して Pod の Preset を作成します。
- Pod の作成
開発者は Pod の Preset のラベルセレクターに一致するラベルを使って Pod を作成します。
Pod の Preset のラベルセレクターに一致するラベルで標準的な Pod 仕様を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod を作成します。
oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成後に Pod 仕様をチェックします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.3. 複数の Pod の Preset の使用 リンクのコピーリンクがクリップボードにコピーされました!
複数の Pod 挿入ポリシーを挿入するために複数の Pod の Preset を使用することができます。
- Pod の Preset 受付コントローラープラグインが有効にされていることを確認します。
環境変数、マウントポイントおよび/またはストレージボリュームを使用して、以下のような Pod の Preset を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Pod ラベルに一致するラベルセレクターです。
以下のように 2 つ目の Pod の Preset を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Pod ラベルに一致するラベルセレクターです。
標準的な Pod 仕様を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Pod の Preset ラベルセレクターのいずれにも一致するラベルです。
Pod を作成します。
oc create -f pod.yaml
$ oc create -f pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成後に Pod 仕様をチェックします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
15.4. Pod の Preset の削除 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して Pod の Preset を削除できます。
oc delete podpreset <name>
$ oc delete podpreset <name>
以下に例を示します。
oc delete podpreset allow-database
$ oc delete podpreset allow-database
podpreset "allow-database" deleted