すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ノードプールからノードを削除する

最終更新日:Mar 23, 2025

ワーカーノードが不要になった場合は、Container Service for Kubernetes (ACK) コンソールで、そのノードが属するノードプールまたはクラスターから削除できます。このトピックでは、ノードプールまたはクラスターからノードを削除する方法と、関連する使用上の注意について説明します。オフピーク時にこれを行うことをお勧めします。

説明

ノードの削除操作は、クラウドノードプール内のノードにのみ適用され、オンプレミス データセンターでホストされている自己管理型 Kubernetes クラスタ内のワーカーノードは除外されます。

前提条件

  • ACK One 登録済みクラスターが作成され、データセンターにデプロイされた外部 Kubernetes クラスタが ACK One 登録済みクラスターに接続されていること。詳細については、「ACK One 登録済みクラスターを作成する」をご参照ください。

  • ノードプールが作成され、ノードプールのカスタムスクリプトが構成されていること。詳細については、「ノードプールを作成する」をご参照ください。

使用上の注意

  • ノードを削除するには、Container Service コンソール にログインし、このトピックで説明されている手順を実行します。kubectl delete node コマンドを実行してノードを削除しないでください。

  • ECS コンソールまたは Auto Scaling コンソールで、あるいは API オペレーションを呼び出すことによって、ECS インスタンスを解放または削除しないでください。サブスクリプション ECS インスタンスは、有効期限が切れる前に更新してください。ECS インスタンスの有効期限が切れた場合、または解放された場合、その上にデプロイされたノードは実行を停止し、ACK コンソールから削除されます。

    ノードプールに「必要なノード数」パラメータが構成されている場合、ノードプールは必要な ECS インスタンス数を維持するように自動的にスケーリングされます。

  • ノードを削除すると、ノード上のポッドは他のノードに移行され、サービス中断が発生する可能性があります。ノードを削除すると、予期しないリスクが発生する可能性があります。削除する前に、ノード上のデータをバックアップすることをお勧めします。

  • ノードを削除すると、システムはノードをドレインします。クラスター内の他のノードが、削除するノードからエビクトされたポッドをホストするのに十分なリソースを提供できることを確認してください。

  • 削除するノード上のポッドを他のノードに正常にスケジュールできるように、ポッドのノードアフィニティルールとスケジューリングポリシーが要件を満たしているかどうかを確認することをお勧めします。

機能の説明

1 つ以上のワーカーノードをノードプールまたはクラスターから削除できます。ノードプールに [必要なノード数] パラメータが構成されている場合、ノードプールは必要な ECS インスタンス数を維持するように自動的にスケーリングされます。

クラスターからノードを削除した後、再度追加できます。詳細については、「ノードを自動または手動で追加する」をご参照ください。

ACK コンソールでノードを削除するときに、[ノードのドレイン] チェックボックスと [ECS インスタンスの解放] チェックボックスを選択またはクリアできます。[ノードのドレイン] チェックボックスは、ノードを自動的にドレインする(ポッドを他のノードにエビクトする)かどうかを指定します。[ECS インスタンスの解放] チェックボックスは、ECS インスタンス(それにアタッチされているデータディスクを含む)を解放するかどうかを指定します。

ノードのドレイン

[ノードのドレイン] チェックボックスを選択すると、システムはノードをドレインしてポッドを他のノードにエビクトします。これにより、サービス中断を防ぎます。ドレインする前に、クラスター内の他のノードが、削除するノードからエビクトされたポッドをホストするのに十分なリソースを提供できることを確認してください。次の点に注意してください。

  • ノードの削除中、ポッドのデフォルトの安全停止期間(terminationGracePeriodSeconds)は 30 分です。この時間よりも長く設定した場合、デフォルトが優先されます。ポッドが 30 分以内に安全に停止されない場合、ドレインプロセスは停止され、失敗とみなされます。システムは後続のノード削除操作を実行せず、手動でドレインプロセスを再試行する必要があります。

    ビジネスポッドに安全停止期間の高い要件がある場合は、kubectl drain <nodeName> [options] コマンドを実行してノードを手動でドレインしてから、ノードを削除することをお勧めします。すべてのビジネスポッドがノードからエビクトされた後、[ノードのドレイン] をクリアしてから、ノードを削除します。

    クリックしてコマンドの説明を表示

    • <nodeName>: <your-region-name>.<node-id> 形式で値を設定します。

      <your-region-name>: クラスターのリージョン名に設定します。<node-id>: 削除するノードの ECS インスタンス ID に設定します。例: cn-hangzhou.i-i-bp1asavedmte377c3****。

    • options: このパラメータは省略可能です。例: --force --ignore-daemonsets --delete-local-data。ノードドレインの構成方法の詳細については、kubectl drain --help コマンドを実行してください。

  • PodDisruptionBudget (PDB) 構成: ドレインプロセス中、ACK はポッドに構成されている PDB に基づいて、ノードから使用可能な他のノードにポッドをエビクトします。ドレインプロセス中の問題を防ぐために、実際のニーズに基づいて PDB を確認および変更することをお勧めします。

ECS インスタンスの解放

[ECS インスタンスの解放] オプションを選択すると、ノードの削除によって ECS インスタンスとそれにアタッチされているすべてのデータディスクが完全に削除されます。これを行う前に、ノード上のデータをバックアップすることをお勧めします。選択解除すると、ノードの削除後も ECS インスタンスは存続し、課金が継続されます。

  • 従量課金制の ECS インスタンスとそれにアタッチされているデータディスクのみ、対応するノードが削除されたときに解放できます。解放されていない ECS インスタンスについては、引き続き課金されます。

  • サブスクリプション ECS インスタンスは、サブスクリプションの有効期限が切れた後に自動的に解放されます。有効期限前にサブスクリプション ECS インスタンスを解放するには、サブスクリプション期間が終了する前に 払い戻しをリクエスト します。また、インスタンスの課金方法をサブスクリプションから従量課金に変更 してから解放することもできます。

手順

  1. ACK コンソール にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターを見つけ、その名前をクリックします。左側のナビゲーションウィンドウで、[ノード] > [ノードプール] を選択します。

  3. ノードが属するノードプールの名前をクリックします。[ノード] タブで、削除するノードを選択し、ページの下部にある [一括削除] をクリックします。

  4. [ノードのドレイン][ECS インスタンスの解放] を選択またはクリアします。使用上の注意を読み、画面の指示に従ってノードを削除します。