Kubernetes クラスターでは、ワークロードは動的に変化します。これにより、リソースの余剰または不足が発生する可能性があります。リソース使用率を向上させるために、Alibaba Cloud Container Service for Kubernetes (ACK) では、ワーカーノードのインスタンスタイプを変更して、クラスターのリソース構成を調整できます。
ノードをドレインすると、設定された Pod Disruption Budget (PDB) に従って、その Pod が他の利用可能なノードに退避させられます。高可用性を確保するために、ワークロードを複数のレプリカとして異なるノードにデプロイしてください。また、重要なサービスには PDB を設定して、同時に中断できる Pod の数を制御してください。
この操作にはリスクが伴います。続行する前にデータをバックアップすることを推奨します。
この操作中、ターゲットノードはスケジューリング不可な状態に設定されます。
ノードプールをスペックアップまたはスペックダウンする前に、自動スケーリングが有効になっている場合は無効にする必要があります。これを行うには、[スケーリングモード] を [手動] に切り替えます。スペックアップまたはスペックダウンが完了した後、自動スケーリングを再度有効にできます。
操作手順
単一ノードのインスタンスタイプを変更するか、同じまたは異なるノードプールから複数のノードのインスタンスタイプをバッチ操作で変更できます。開始する前に、「ECS インスタンスタイプの推奨」を参照して、ワーカーノードに適したインスタンスタイプを選択してください。
このトピックでは、従量課金制のワーカーノードのインスタンスタイプを変更する方法について説明します。その他のスペックアップおよびスペックダウン方法の詳細については、「スペックアップおよびスペックダウン方法の概要」をご参照ください。
単一ノードのインスタンスタイプの変更
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、変更したいクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
[ノード] ページで、ターゲットノードを見つけ、[操作] 列で を選択します。表示されるダイアログボックスで、[OK] をクリックしてノードから Pod をドレインします。
ノードがドレインされた後、ノードのインスタンス ID をクリックして [インスタンスの詳細] ページを開きます。インスタンスタイプなどの情報を表示できます。

[インスタンスの詳細] ページの [設定情報] セクションで、インスタンスタイプの横にある [変更] をクリックして、[インスタンスタイプの変更] ページを開きます。

ターゲットインスタンスタイプを選択し、見積もりコストを確認して、[インスタンスを停止して続行] をクリックします。
[インスタンスの停止] ダイアログボックスで、[停止モード] を選択し、[OK] をクリックします。インスタンスの停止方法の詳細については、「インスタンスの停止」をご参照ください。
構成の変更が完了したら、[インスタンスを起動して戻る] をクリックします。表示される [インスタンスの起動] ダイアログボックスで、[OK] をクリックします。ノードが自動的にクラスターに参加し、そのステータスが [Ready] に変わるのを待ちます。ノードの [操作] 列で、 を選択し、ノードをスケジューリング可能にします。これで、ワーカーノードのリソース構成の変更は完了です。
インスタンスタイプの一括変更
クラスター内の複数のノードのインスタンスタイプは、次の 2 つの方法のいずれかで変更できます。
複数のノードプールにまたがるノードのインスタンスタイプを変更します。この方法では、ECS インスタンスは置き換えられず、ノードインスタンス内のカスタム構成が保持されます。
同一ノードプール内のノードのインスタンスタイプを変更します。この方法では、既存の ECS インスタンスが置き換えられます。ノードプールに追加されるすべての新しいノードは新しいインスタンスタイプを使用しますが、インスタンス内のカスタム構成は保持されません。
複数のノードプールにまたがるノードのインスタンスタイプの変更
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
クラスター ページで、変更したいクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
[ノード] ページで、再構成するノードのチェックボックスをオンにします。次に、ページ下部の [ノードのドレイン] をクリックします。表示されるダイアログボックスで、[OK] をクリックして、既存の Pod をノードからドレインします。
ノードがドレインされた後、ECS コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
変更するノードのチェックボックスをオンにします。ページ下部で、 を選択します。
インスタンスタイプを変更します。
ターゲットインスタンスタイプを選択します。
[ターゲットインスタンスタイプ] 列で、各ノードのインスタンスタイプを選択し、[次へ] をクリックします。

インスタンスの [ステータス] に基づいて次のステップに進みます。
すべてのインスタンスが [停止済み] 状態の場合は、[次へ] をクリックします。
いずれかのインスタンスが [実行中] 状態の場合は、[すべて停止] をクリックし、次に [次へ] をクリックします。
重要インスタンスを停止する際は、[停止モード] を [標準停止モード] に設定します。[エコノミーモード] を選択すると、計算リソース (vCPU とメモリ) が回収され、在庫不足によりインスタンスの再起動に失敗する可能性があります。
インスタンスを停止するとサービスが中断されます。この操作はオフピーク時に実行してください。

料金を確認し、[変更の確認] をクリックします。
インスタンスを起動します。ノードが自動的にクラスターに参加し、そのステータスが [Ready] に変わるのを待ちます。ノードのチェックボックスをオンにし、ページ下部の [スケジューリング設定] をクリックして、ノードをスケジューリング可能にします。これで、ワーカーノードのリソース構成の変更は完了です。
同一ノードプール内のノードのインスタンスタイプの変更
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[ノードプール] ページで、ターゲットノードプールを見つけ、[操作] 列の [編集] をクリックします。ノードプールの [インスタンスタイプ] を変更し、[OK] をクリックします。
インスタンスタイプを変更した後、ノードプールを手動でスケールアウトして、新しいタイプのインスタンスを追加します。
新しいインスタンスが追加され、そのステータスが [Ready] に変わるのを待ちます。次に、左側のナビゲーションウィンドウで、 を選択します。
[ノード] ページで、古いインスタンスタイプのノードを見つけ、[操作] 列で を選択します。表示されるダイアログボックスで、[OK] をクリックしてノードから Pod をドレインします。
サービスが期待どおりに実行されていることを確認した後、古いインスタンスタイプのノードを削除します。これで、ワーカーノードのリソース構成の変更は完了です。