11.2.2. Machine API リソースを Cluster API リソースに移行する
Machine API リソースから Cluster API リソースへの移行をサポートするクラスターでは、双方向同期コントローラーが openshift-cluster-api namespace に次の Cluster API リソースを作成します。
- コンピュートマシンセットに対応する 1 つ以上のマシンテンプレート。
- 3 台のコンピュートマシンを管理する 1 つ以上のコンピュートマシンセット。
- 各 Machine API コンピュートマシンに対応する 1 つ以上の Cluster API コンピュートマシン。
双方向同期コントローラーは、TechPreviewNoUpgrade 機能セットの MachineAPIMigration フィーチャーゲートが有効になっているクラスターでのみ動作します。
これらの Cluster API リソースは、デフォルトの設定オプションを使用するクラスターの openshift-machine-api namespace でインストールプログラムがプロビジョニングするリソースに対応します。Cluster API リソースは、対応する Machine API リソースと同じ名前を持ち、リソースをリスト表示する oc get などのコマンドの出力に表示されます。同期コントローラーは、意図しない調整を防ぐために、プロビジョニングされていない (Paused) 状態で Cluster API リソースを作成します。
サポートされている設定では、正規とみなす API を変更することで、Machine API リソースを同等の Cluster API リソースに移行できます。Machine API リソースを Cluster API へ移行すると、そのリソースの管理は Cluster API に移管されます。
Machine API リソースを Cluster API を使用するように移行することで、実稼働クラスターでの Cluster API の使用を決定する前に、すべてが期待どおりに動作することを確認できます。Machine API リソースを同等の Cluster API リソースに移行した後、新しいリソースを調べて、機能と設定が元の Machine API リソースと一致しているか確認できます。
コンピュートマシンセットの authoritative API を変更しても、コンピュートマシンセットが管理する既存のコンピュートマシンは、元の authoritative API を保持します。その結果、これらの API タイプ間での移行をサポートするクラスターにおいて、コンピュートマシンセットが異なる正規の API を使用するマシンを管理する状態は、正当かつ想定内の事象です。
コンピュートマシンの authoritative API を変更しても、そのマシンを支える基盤となるインフラストラクチャー上のインスタンスは、再作成も再プロビジョニングもされません。ラベル、タグ、taint、またはアノテーションの変更などのインプレース変更は、マシンをサポートする基礎となるインスタンスに対して API グループが行うことができる唯一の変更です。
一部のリソースは、サポートされているインフラストラクチャータイプでのみ移行できます。
| インフラストラクチャー | コンピュートマシン | コンピュートマシンセット | マシンのヘルスチェック | コントロールプレーンマシンセット | Cluster Autoscaler |
|---|---|---|---|---|---|
| AWS | テクノロジープレビュー | テクノロジープレビュー | 利用不可 | 利用不可 | 利用不可 |
| その他のすべてのインフラストラクチャータイプ | 利用不可 | 利用不可 | 利用不可 | 利用不可 | 利用不可 |
11.2.2.1. コンピュートマシンの権威ある 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 である場合です。