12.2. コントロールプレーンマシンセットの概要
コントロールプレーンマシンセットを使い始めるプロセスは、クラスター内の ControlPlaneMachineSet カスタムリソース(CR)の状態によって異なります。
- アクティブに生成された CR を持つクラスター
- アクティブな状態で生成された CR を持つクラスターは、デフォルトで設定されたコントロールプレーンマシンを使用します。管理者の操作は必要ありません。
- 非アクティブな CR が生成されたクラスター
- 生成された非アクティブな CR を含むクラスターの場合、CR 設定を確認して CR を アクティブ化する 必要があります。
- CR が生成されていないクラスター
- 生成された CR が含まれていないクラスターの場合、クラスターに適した設定で CR を作成してアクティブ化する 必要があります。
クラスター内の ControlPlaneMachineSet CR の状態が不明な場合は、CR の状態を確認 できます。
12.2.1. サポートされているクラウドプロバイダー
OpenShift Container Platform 4.13 では、Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure、および VMware vSphere クラスターのコントロールプレーンマシンセットがサポートされています。
インストール後のコントロールプレーンマシンセットのステータスは、クラウドプロバイダーと、クラスターにインストールした OpenShift Container Platform のバージョンによって異なります。
表12.1 OpenShift Container Platform 4.13 のコントロールプレーンマシンセットの実装
| クラウドプロバイダー | デフォルトでアクティブ | 生成された CR | 手動の CR が必要 |
|---|---|---|---|
| Amazon Web Services (AWS) | X [1] | X | |
| Google Cloud Platform (GCP) | X [2] | X | |
| Microsoft Azure | X [2] | X | |
| VMware vSphere | X |
- バージョン 4.11 以前からアップグレードされた AWS クラスターには、CR アクティベーション が必要です。
- バージョン 4.12 以前からアップグレードされた GCP および Azure クラスターでは、CR アクティベーション が必要です。
12.2.2. コントロールプレーンマシンセットのカスタムリソースの状態を確認する
ControlPlaneMachineSet カスタムリソース (CR) の存在と状態を確認できます。
手順
次のコマンドを実行して、CR の状態を確認します。
$ oc get controlplanemachineset.machine.openshift.io cluster \ --namespace openshift-machine-api
-
Activeの結果は、ControlPlaneMachineSetCR が存在し、アクティブ化されていることを示します。管理者の操作は必要ありません。 -
Inactiveの結果は、ControlPlaneMachineSetCR が存在するがアクティブ化されていないことを示します。 -
NotFoundの結果は、既存のControlPlaneMachineSetCR がないことを示します。
-
次のステップ
コントロールプレーンマシンセットを使用するには、クラスターの正しい設定を持つ ControlPlaneMachineSet CR が存在することを確認する必要があります。
- クラスターに既存の CR がある場合は、CR の設定がクラスターに対して正しいことを確認する必要があります。
- クラスターに既存の CR がない場合は、クラスターの正しい設定で CR を作成する必要があります。
12.2.3. コントロールプレーンマシンセットカスタムリソースの有効化
コントロールプレーンマシンセットを使用するには、クラスターの正しい設定を持つ ControlPlaneMachineSet カスタムリソース (CR) が存在することを確認する必要があります。CR が生成されたクラスターでは、CR の設定がクラスターに対して正しいことを確認し、アクティブ化する必要があります。
CR のパラメーターの詳細については、コントロールプレーンマシンセットの設定を参照してください。
手順
次のコマンドを実行して、CR の設定を表示します。
$ oc --namespace openshift-machine-api edit controlplanemachineset.machine.openshift.io cluster
- クラスター設定に不適切なフィールドの値を変更します。
設定が正しい場合は、
.spec.stateフィールドをActiveに設定し、変更を保存して CR をアクティブにします。重要CR を有効にするには、CR 設定の更新に使用するのと同じ
oc editセッションで.spec.stateフィールドをActiveに変更する必要があります。CR がInactiveのままの状態で保存された場合、コントロールプレーンマシンセットジェネレーターは CR を元の設定にリセットします。
12.2.4. コントロールプレーンマシンセットのカスタムリソースの作成
コントロールプレーンマシンセットを使用するには、クラスターの正しい設定を持つ ControlPlaneMachineSet カスタムリソース (CR) が存在することを確認する必要があります。CR が生成されていないクラスターでは、CR を手動で作成してアクティブ化する必要があります。
CR の構造とパラメーターの詳細については、コントロールプレーンマシンセットの設定を参照してください。
手順
次のテンプレートを使用して YAML ファイルを作成します。
コントロールプレーンマシンセットの CR YAML ファイルテンプレート
apiVersion: machine.openshift.io/v1 kind: ControlPlaneMachineSet metadata: name: cluster namespace: openshift-machine-api spec: replicas: 3 selector: matchLabels: machine.openshift.io/cluster-api-cluster: <cluster_id> 1 machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master state: Active 2 strategy: type: RollingUpdate 3 template: machineType: machines_v1beta1_machine_openshift_io machines_v1beta1_machine_openshift_io: failureDomains: platform: <platform> 4 <platform_failure_domains> 5 metadata: labels: machine.openshift.io/cluster-api-cluster: <cluster_id> 6 machine.openshift.io/cluster-api-machine-role: master machine.openshift.io/cluster-api-machine-type: master spec: providerSpec: value: <platform_provider_spec> 7- 1
- クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。
ControlPlaneMachineSetCR を作成するときに、この値を指定する必要があります。OpenShift CLI (oc) がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster - 2
- Operator の状態を指定します。状態が
Inactiveの場合、Operator は操作できません。値をActiveに設定することで、Operator をアクティブ化できます。重要CR をアクティブ化する前に、その設定がクラスター要件に対して正しいことを確認する必要があります。
- 3
- クラスターの更新戦略を指定します。許可される値は
OnDeleteとRollingUpdateです。デフォルト値はRollingUpdateです。 - 4
- クラウドプロバイダーのプラットフォーム名を指定します。許可される値は、
AWS、Azure、GCP、およびVSphereです。 - 5
- クラスターの
<platform_failure_domains>設定を追加します。このセクションのフォーマットと値はプロバイダー固有です。詳細については、クラウドプロバイダーの障害ドメイン設定サンプルを参照してください。注記VMware vSphere は障害ドメインをサポートしていません。vSphere クラスターの場合、
<platform_failure_domains>を空のfailureDomains:パラメーターに置き換えます。 - 6
- インフラストラクチャー ID を指定します。
- 7
- クラスターの
<platform_provider_spec>設定を追加します。このセクションのフォーマットと値はプロバイダー固有です。詳細については、クラウドプロバイダーのサンプルプロバイダー仕様を参照してください。
- コントロールプレーンマシンセット CR のサンプル YAML を参照し、クラスター設定に適した値をファイルに入力します。
- クラウドプロバイダーのサンプル障害ドメイン設定とサンプルプロバイダー仕様を参照し、ファイルのこれらのセクションを適切な値で更新します。
-
設定が正しい場合は、
.spec.stateフィールドをActiveに設定し、変更を保存して CR をアクティブにします。 次のコマンドを実行して、YAML ファイルから CR を作成します。
$ oc create -f <control_plane_machine_set>.yaml
<control_plane_machine_set>は、CR 設定を含む YAML ファイルの名前です。