11.5.5.2. スケーリング後の予期しないマシン数
Machine API と Cluster API 間のリソースの移行をサポートするクラスターでは、コンピュートマシンの数をスケーリングする際に予期しない動作が発生する可能性があります。authoritative API を使用しないコンピュートマシンセットの oc get コマンドの出力には、CURRENT、READY、および AVAILABLE 列に不正確な値が含まれる場合があります。
- 原因
CURRENT、READY、およびAVAILABLE列に設定される値は、コンピュートマシンセットの.statusスタンザから取得されます。authoritative API タイプ間のリソース変換を処理する双方向同期コントローラーは、現在、.statusスタンザ内の値を同期しません。DESIRED列の値は、コンピュートマシンセットの.spec.replicas値を反映します。双方向同期コントローラーは、.specスタンザ内の値を同期します。- 結果
移行されたマシンセットをスケーリングするときに、ユーザーは次の動作を確認することができます。
- 既存のマシンが存在するコンピュートマシンセットから始めます。
- 別の authoritative API を使用するようにマシンセットを移行します。
-
.spec.replicasフィールドに大きい値を設定して、現在の authoritative マシンのセットアップをスケーリングします。 - マシンセットは、要求されたレプリカの数を満たすために、現在の authoritative API を使用してマシンを作成します。
authoritative マシンセットをスケールダウンし、次のいずれかの条件により、現在の authoritative API を使用していないマシンが削除されるようにします。
- 要求されたレプリカの合計数は、現在の authoritative API を使用していないマシンの数よりも少ないです。
- マシンセットのマシン削除ポリシーでは、現在の authoritative API を使用していないマシンが選択されます。
oc getコマンドを実行して、nonauthoritative コンピュートマシンセットのステータスを確認します。-
出力の
DESIRED列の値は、.spec.replicas値を反映します。 -
CURRENT、READY、およびAVAILABLE列の値は、マシンセットをスケーリングする前に存在していたレプリカの元の数を反映します。
-
出力の
- 回避策
-
スケールダウン操作によって、現在の authoritative API を使用していないコンピュートマシンが正常に削除されたことを確認するには、nonauthoritative コンピュートマシンをリスト表示する
oc getコマンドを実行します。 - 結果
-
スケールダウン操作が成功した場合、nonauthoritative コンピュートマシンの
oc getコマンドの出力のカウントは、マシンセットの.spec.replicas値を反映します。