11.2.2.2. Machine API リソースを移行して Cluster API を使用する
個々の Machine API オブジェクトを同等の Cluster API オブジェクトに移行できます。
Machine API リソースを移行して Cluster API を使用する機能は、テクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
- サポートされているインフラストラクチャータイプに OpenShift Container Platform クラスターをデプロイしている。
- Cluster API の使用を有効化している。
-
TechPreviewNoUpgrade機能セットでMachineAPIMigrationフィーチャーゲートを有効化している。 -
cluster-admin権限を持つアカウントを使用してクラスターにアクセスできる。 -
OpenShift CLI (
oc) がインストールされている。
手順
次のコマンドを実行して、Cluster API リソースに移行する Machine API リソースを特定します。
$ oc get <resource_kind> -n openshift-machine-apiここで、
<resource_kind>は次のいずれかの値になります。machine.machine.openshift.io- コンピュートまたはコントロールプレーンマシンのリソースの種類の完全修飾名。
machineset.machine.openshift.io- コンピュートマシンセットのリソースの種類の完全修飾名。
次のコマンドを実行してリソース仕様を編集します。
$ oc edit <resource_kind>/<resource_name> -n openshift-machine-apiここでは、以下のようになります。
<resource_kind>-
machine.machine.openshift.ioを持つコンピュートマシン、またはmachineset.machine.openshift.ioで設定されたコンピュートマシンを指定します。 <resource_name>- Cluster API リソースに移行する Machine API リソースの名前を指定します。
リソース仕様で、
spec.authoritativeAPIフィールドの値を更新します。apiVersion: machine.openshift.io/v1beta1 kind: <resource_kind> metadata: name: <resource_name> [...] spec: authoritativeAPI: ClusterAPI [...] status: authoritativeAPI: MachineAPI [...]ここでは、以下のようになります。
kind-
移行するリソースの種類を指定します。たとえば、コンピュートマシンセットのリソースの種類は
MachineSetであり、コンピュートマシンのリソースの種類はMachineです。 metadata.name- 移行するリソースの名前を指定します。
spec.authoritativeAPI-
このリソースが使用する権威ある API を指定します。たとえば、Machine API リソースの Cluster API への移行を開始するには、
ClusterAPIを指定します。 ステータス.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>- Cluster API リソースに移行する Machine API リソースの名前を指定します。
-
変換の進行中、このコマンドは
Migratingという値を返します。この値が長時間続く場合は、openshift-cluster-apinamespace のcluster-capi-operatorデプロイメントのログをチェックして詳細を確認し、潜在的な問題を特定してください。 -
変換が完了すると、このコマンドは
ClusterAPIの値を返します。
- リソース設定変更時の予期しない動作