12.3. コントロールプレーンマシンセットの設定
これらのサンプル YAML ファイルとスニペットは、コントロールプレーンマシンセットカスタムリソース (CR) の基本構造と、プロバイダー仕様および障害ドメイン設定のプラットフォーム固有のサンプルを示しています。
12.3.1. コントロールプレーンマシンセットのカスタムリソースのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
ControlPlaneMachineSet
CR のベースは、すべてのプラットフォームで同じように構築されています。
サンプル ControlPlaneMachineSet
CR YAML ファイル
- 1
cluster
であるControlPlaneMachineSet
CR の名前を指定します。この値は変更しないでください。- 2
- コントロールプレーンマシンの数を指定します。3 つのコントロールプレーンマシンを持つクラスターのみがサポートされているため、
replicas
の値は3
です。水平スケーリングはサポートされていません。この値は変更しないでください。 - 3
- クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。
ControlPlaneMachineSet
CR を作成するときに、この値を指定する必要があります。OpenShift CLI (oc
) がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 4
- Operator の状態を指定します。状態が
Inactive
の場合、Operator は操作できません。値をActive
に設定することで、Operator をアクティブ化できます。重要Operator をアクティブ化する前に、
ControlPlaneMachineSet
CR 設定がクラスター要件に対して正しいことを確認する必要があります。Control Plane Machine Set Operator のアクティブ化の詳細は、「コントロールプレーンマシンセットの概要」を参照してください。 - 5
- クラスターの更新戦略を指定します。許可される値は
OnDelete
とRollingUpdate
です。デフォルト値はRollingUpdate
です。更新戦略の詳細は、「コントロールプレーン設定の更新」を参照してください。 - 6
- クラウドプロバイダーのプラットフォーム名を指定します。この値は変更しないでください。
- 7
- クラスターの
<platform_failure_domains>
設定を指定します。このセクションのフォーマットと値はプロバイダー固有です。詳細は、クラウドプロバイダーの障害ドメイン設定サンプルを参照してください。注記VMware vSphere は、コントロールプレーンマシンセットの障害ドメインをサポートしていません。
- 8
- クラスターの
<platform_provider_spec>
設定を指定します。このセクションのフォーマットと値はプロバイダー固有です。詳細は、クラウドプロバイダーのサンプルプロバイダー仕様を参照してください。
プロバイダー固有の設定
コントロールプレーンマシンセットリソースの <platform_provider_spec>
および <platform_failure_domains>
セクションは、プロバイダー固有です。クラスターのサンプル YAML を参照してください。
12.3.2. Amazon Web Services クラスターを設定するサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、Amazon Web Services (AWS) クラスターのプロバイダー仕様と障害ドメイン設定を示しています。
12.3.2.1. AWS プロバイダーの仕様例 リンクのコピーリンクがクリップボードにコピーされました!
既存のクラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様が、インストールプログラムによって作成されるコントロールプレーンマシンのカスタムリソース (CR) の providerSpec
設定と一致する必要があります。CR の障害ドメインセクションに設定されているフィールドは省略できます。
次の例で、<cluster_id>
は、クラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID です。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。
oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
サンプル AWS providerSpec
値
- 1
- クラスターの Red Hat Enterprise Linux CoreOS (RHCOS) Amazon Machine Image (AMI) ID を指定します。AMI はクラスターと同じリージョンに属する必要があります。AWS Marketplace イメージを使用する場合は、AWS Marketplace から OpenShift Container Platform サブスクリプションを完了して、リージョンの AMI ID を取得する必要があります。
- 2
- 暗号化された EBS ボリュームの設定を指定します。
- 3
- クラスターのシークレット名を指定します。この値は変更しないでください。
- 4
- AWS Identity and Access Management (IAM) インスタンスプロファイルを指定します。この値は変更しないでください。
- 5
- コントロールプレーンの AWS インスタンスタイプを指定します。
- 6
- クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
- 7
- クラスターの内部 (
int
) および外部 (ext
) ロードバランサーを指定します。注記プライベート OpenShift Container Platform クラスターでは、外部 (
ext
) ロードバランサーパラメーターを省略できます。 - 8
- このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。
- 9
- クラスターの AWS リージョンを指定します。
- 10
- コントロールプレーンマシンのセキュリティーグループを指定します。
- 11
- このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。
- 12
- コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
12.3.2.2. AWS 障害ドメインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
障害ドメインのコントロールプレーンマシンセットの概念は、既存の AWS の アベイラビリティゾーン (AZ) の概念に似ています。ControlPlaneMachineSet
CR は、可能な場合、コントロールプレーンマシンを複数の障害ドメインに分散します。
コントロールプレーンマシンセットで AWS 障害ドメインを設定するときは、使用するアベイラビリティゾーン名とサブネットを指定する必要があります。
AWS 障害ドメインの値の例
- 1
- 最初の障害ドメインの AWS アベイラビリティゾーンを指定します。
- 2
- サブネット設定を指定します。この例では、サブネットタイプが
Filters
であるため、filters
スタンザがあります。 - 3
- インフラストラクチャー ID と AWS アベイラビリティゾーンを使用して、最初の障害ドメインのサブネット名を指定します。
- 4
- サブネットタイプを指定します。許可される値は、
ARN
、Filters
、およびID
です。デフォルト値はFilters
です。 - 5
- インフラストラクチャー ID と AWS アベイラビリティゾーンを使用して、追加の障害ドメインのサブネット名を指定します。
- 6
- クラスターのインフラストラクチャー ID と、追加の障害ドメインの AWS アベイラビリティゾーンを指定します。
- 7
- クラウドプロバイダーのプラットフォーム名を指定します。この値は変更しないでください。
12.3.3. Google Cloud Platform クラスターを設定するためのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、Google Cloud Platform (GCP) クラスターのプロバイダー仕様と障害ドメイン設定を示しています。
12.3.3.1. GCP プロバイダーの仕様例 リンクのコピーリンクがクリップボードにコピーされました!
既存のクラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様が、インストールプログラムによって作成されるコントロールプレーンマシンのカスタムリソース (CR) の providerSpec
設定と一致する必要があります。CR の障害ドメインセクションに設定されているフィールドは省略できます。
OpenShift CLI を使用して取得した値
以下の例では、OpenShift CLI を使用してクラスターの値の一部を取得できます。
- インフラストラクチャー ID
<cluster_id>
文字列は、クラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID です。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - イメージパス
<path_to_image>
文字列は、ディスクの作成に使用されたイメージへのパスです。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してイメージへのパスを取得できます。oc -n openshift-machine-api \ -o jsonpath='{.spec.template.machines_v1beta1_machine_openshift_io.spec.providerSpec.value.disks[0].image}{"\n"}' \ get ControlPlaneMachineSet/cluster
$ oc -n openshift-machine-api \ -o jsonpath='{.spec.template.machines_v1beta1_machine_openshift_io.spec.providerSpec.value.disks[0].image}{"\n"}' \ get ControlPlaneMachineSet/cluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
GCP providerSpec
の値の例
- 1
- クラスターのシークレット名を指定します。この値は変更しないでください。
- 2
- ディスクの作成に使用されたイメージへのパスを指定します。
GCP Marketplace イメージを使用するには、使用するオファーを指定します。
-
OpenShift Container Platform:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-ocp-413-x86-64-202305021736
-
OpenShift Platform Plus:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-opp-413-x86-64-202305021736
-
OpenShift Kubernetes Engine:
https://www.googleapis.com/compute/v1/projects/redhat-marketplace-public/global/images/redhat-coreos-oke-413-x86-64-202305021736
-
OpenShift Container Platform:
- 3
- クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
- 4
- クラスターに使用する GCP プロジェクトの名前を指定します。
- 5
- クラスターの GCP リージョンを指定します。
- 6
- 単一のサービスアカウントを指定します。複数のサービスアカウントはサポートされていません。
- 7
- コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
- 8
- このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。
12.3.3.2. GCP 障害ドメインの設定例 リンクのコピーリンクがクリップボードにコピーされました!
障害ドメインのコントロールプレーンマシンセットの概念は、既存の GCP の ゾーン の概念に似ています。ControlPlaneMachineSet
CR は、可能な場合、コントロールプレーンマシンを複数の障害ドメインに分散します。
コントロールプレーンマシンセットで GCP 障害ドメインを設定する場合は、使用するゾーン名を指定する必要があります。
GCP 障害ドメインの値の例
12.3.4. Microsoft Azure クラスターを設定するためのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、Azure クラスターのプロバイダーの仕様と障害ドメインの設定を示しています。
12.3.4.1. Azure プロバイダーの仕様例 リンクのコピーリンクがクリップボードにコピーされました!
既存クラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様は、インストールプログラムによって作成されるコントロールプレーン machine
CR の providerSpec
設定と一致する必要があります。CR の障害ドメインセクションに設定されているフィールドは省略できます。
次の例で、<cluster_id>
は、クラスターをプロビジョニングしたときに設定したクラスター ID に基づくインフラストラクチャー ID です。OpenShift CLI がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。
oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster
Azure providerSpec
の値の例
- 1
- クラスターのシークレット名を指定します。この値は変更しないでください。
- 2
- コントロールプレーンマシンセットのイメージの詳細を指定します。
- 3
- インスタンスタイプと互換性のあるイメージを指定します。インストールプログラムによって作成された Hyper-V 世代の V2 イメージには接尾辞
-gen2
が付いていますが、V1 イメージには接尾辞のない同じ名前が付いています。 - 4
- コントロールプレーンの内部ロードバランサーを指定します。このフィールドは事前入力されていない可能性がありますが、
ControlPlaneMachineSet
とコントロールプレーンMachin
CR の両方で必要です。 - 5
- クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
- 6
- コントロールプレーンマシンを配置するリージョンを指定します。
- 7
- コントロールプレーンのディスク設定を指定します。
- 8
- コントロールプレーンのパブリックロードバランサーを指定します。注記
ユーザー定義のアウトバウンドルーティングを持つプライベート OpenShift Container Platform クラスターでは、
publicLoadBalancer
パラメーターを省略できます。 - 9
- コントロールプレーンのサブネットを指定します。
- 10
- コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
- 11
- このパラメーターは障害ドメインで設定され、ここでは空の値で表示されます。このパラメーターに指定された値が障害ドメインの値と異なる場合、Operator はそれを障害ドメインの値で上書きします。
12.3.4.2. Azure 障害ドメイン設定のサンプル リンクのコピーリンクがクリップボードにコピーされました!
障害ドメインのコントロールプレーンマシンセットの概念は、Azure 可用性ゾーン の既存の Azure 概念に似ています。ControlPlaneMachineSet
CR は、可能な場合、コントロールプレーンマシンを複数の障害ドメインに分散します。
コントロールプレーンマシンセットで Azure 障害ドメインを設定するときは、可用性ゾーン名を指定する必要があります。
Azure 障害ドメインの値のサンプル
12.3.5. VMware vSphere クラスターを設定するためのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
コントロールプレーンマシンセット CR の一部のセクションは、プロバイダー固有です。このセクションの YAML の例は、VMware vSphere クラスターのプロバイダー仕様の設定を示しています。
12.3.5.1. サンプルの vSphere プロバイダー仕様 リンクのコピーリンクがクリップボードにコピーされました!
既存のクラスター用のコントロールプレーンマシンセットを作成する場合、プロバイダーの仕様が、インストールプログラムによって作成されるコントロールプレーンマシンのカスタムリソース (CR) の providerSpec
設定と一致する必要があります。
vSphere providerSpec
の値の例
- 1
- クラスターのシークレット名を指定します。この値は変更しないでください。
- 2
- コントロールプレーンマシンの VM ディスクサイズを指定します。
- 3
- クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
- 4
- コントロールプレーンマシンに割り当てられるメモリーを指定します。
- 5
- コントロールプレーンがデプロイされるネットワークを指定します。
- 6
- コントロールプレーンマシンに割り当てられる CPU の数を指定します。
- 7
- 各コントロールプレーン CPU のコア数を指定します。
- 8
user-5ddjd-rhcos
など、使用する vSphere VM テンプレートを指定します。- 9
- コントロールプレーンのユーザーデータシークレットを指定します。この値は変更しないでください。
- 10
- コントロールプレーンの vCenter データセンターを指定します。
- 11
- コントロールプレーンの vCenter データストアを指定します。
- 12
/dc1/vm/user-inst-5ddjd
などの vCenter の vSphere 仮想マシンフォルダーへのパスを指定します。- 13
- 仮想マシンの vSphere リソースプールを指定します。
- 14
- vCenter サーバーの IP または完全修飾ドメイン名を指定します。