11.6. Cluster API を無効にする
OpenShift Container Platform クラスター上のインフラストラクチャーリソースの管理を自動化するために Cluster API の使用を停止するには、クラスター上の任意の Cluster API リソースを同等の Machine API リソースに変換します。
Cluster API を使用したマシン管理は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
11.6.1. Cluster API リソースを Machine API リソースに移行する リンクのコピーリンクがクリップボードにコピーされました!
Machine API と Cluster API リソース間の移行をサポートするクラスターでは、双方向同期コントローラーは Cluster API リソースの Machine API リソースへの変換をサポートします。
双方向同期コントローラーは、TechPreviewNoUpgrade 機能セットの MachineAPIMigration フィーチャーゲートが有効になっているクラスターでのみ動作します。
最初に Machine API から Cluster API に移行したリソース、または最初に Cluster API リソースとして作成したリソースを移行できます。元の Machine API リソースを Cluster API リソースに移行してから、それを元に戻すと、移行プロセスが期待どおりに機能することを確認できます。
一部のリソースは、サポートされているインフラストラクチャータイプでのみ移行できます。
| インフラストラクチャー | コンピュートマシン | コンピュートマシンセット | マシンのヘルスチェック | コントロールプレーンマシンセット | Cluster Autoscaler |
|---|---|---|---|---|---|
| AWS | テクノロジープレビュー | テクノロジープレビュー | 利用不可 | 利用不可 | 利用不可 |
| その他のすべてのインフラストラクチャータイプ | 利用不可 | 利用不可 | 利用不可 | 利用不可 | 利用不可 |
11.6.1.1. Cluster API リソースを移行して Machine API を使用する リンクのコピーリンクがクリップボードにコピーされました!
個々の Cluster API オブジェクトを同等の Machine API オブジェクトに移行できます。
Cluster API リソースを移行して Machine API を使用する機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- サポートされているインフラストラクチャータイプに OpenShift Container Platform クラスターをデプロイしている。
-
TechPreviewNoUpgrade機能セットでMachineAPIMigrationフィーチャーゲートを有効化している。 -
cluster-admin権限を持つアカウントを使用してクラスターにアクセスできる。 -
OpenShift CLI (
oc) がインストールされている。
手順
次のコマンドを実行して、Machine API リソースに移行する Cluster API リソースを特定します。
$ oc get <resource_kind> -n openshift-cluster-apiここで、
<resource_kind>は次のいずれかの値になります。machine.cluster.x-k8s.io- コンピュートまたはコントロールプレーンマシンのリソースの種類の完全修飾名。
machineset.cluster.x-k8s.io- コンピュートマシンセットのリソースの種類の完全修飾名。
次のコマンドを実行してリソース仕様を編集します。
$ oc edit <resource_kind>/<resource_name> -n openshift-machine-apiここでは、以下のようになります。
<resource_kind>-
machine.machine.openshift.ioを持つコンピュートマシン、またはmachineset.machine.openshift.ioで設定されたコンピュートマシンを指定します。 <resource_name>- Machine API に移行する Cluster API リソースに対応する Machine API リソースの名前を指定します。
リソース仕様で、
spec.authoritativeAPIフィールドの値を更新します。apiVersion: machine.openshift.io/v1beta1 kind: <resource_kind> metadata: name: <resource_name> [...] spec: authoritativeAPI: MachineAPI [...] status: authoritativeAPI: ClusterAPI [...]ここでは、以下のようになります。
kind-
移行するリソースの種類を指定します。たとえば、コンピュートマシンセットのリソースの種類は
MachineSetであり、コンピュートマシンのリソースの種類はMachineです。 metadata.name- 移行するリソースの名前を指定します。
spec.authoritativeAPI-
このリソースが使用する権威ある API を指定します。たとえば、Cluster API リソースの Machine API への移行を開始するには、
MachineAPIを指定します。 ステータス.authoritativeAPI- 現在の権威ある API の値を指定します。この値は、現在このリソースを管理している API を示します。仕様のこの部分の値は変更しないでください。
重要spec.authoritativeAPIフィールドの値を更新する際は、他の値を変更しないでください。同期コントローラーがspec.authoritativeAPIフィールドの更新を処理する前に、他のコントローラーが他の値の更新を処理する可能性があるため、他の値を変更すると予期しない動作が発生する可能性があります。詳細は、リソース設定の変更時に予期しない動作が発生するを参照してください。
検証
次のコマンドを実行して、変換のステータスを確認します。
$ oc -n openshift-machine-api get <resource_kind>/<resource_name> -o json | jq .status.authoritativeAPIここでは、以下のようになります。
<resource_kind>-
machine.machine.openshift.ioを持つコンピュートマシン、またはmachineset.machine.openshift.ioで設定されたコンピュートマシンを指定します。 <resource_name>- Machine API に移行する Cluster API リソースに対応する Machine API リソースの名前を指定します。
-
変換の進行中、このコマンドは
Migratingという値を返します。この値が長時間続く場合は、openshift-cluster-apinamespace のcluster-capi-operatorデプロイメントのログをチェックして詳細を確認し、潜在的な問題を特定してください。 -
変換が完了すると、このコマンドは
MachineAPIの値を返します。
重要現在の authoritative API を使用する対応するリソースを削除する場合を除き、現在の authoritative API を使用しない nonauthoritative リソースは削除しないでください。
現在の authoritative API を使用していない nonauthoritative リソースを削除すると、同期コントローラーは、現在の authoritative API を使用する対応するリソースを削除します。詳細は、リソース移行のトラブルシューティング コンテンツの、「予期しないリソース削除動作」を参照してください。
11.6.1.2. コンピュートマシンの権威ある API タイプ リンクのコピーリンクがクリップボードにコピーされました!
コンピュートマシンの authoritative API は、それを作成する Machine API コンピュートマシンセット内の .spec.authoritativeAPI フィールドと .spec.template.spec.authoritativeAPI フィールドの値によって異なります。
|
|
|
|
|
|
|
|
|
|
|
|
|
新しいコンピュートマシンの |
|
|
|
|
.spec.authoritativeAPI 値が ClusterAPI の場合、Machine API マシンセットは authoritative ではないため、.spec.template.spec.authoritativeAPI 値は使用されません。その結果、Machine API を authoritative として持つコンピュートマシンを作成する唯一の組み合わせは、.spec.authoritativeAPI と .spec.template.spec.authoritativeAPI の値が MachineAPI である場合です。