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

Container Service for Kubernetes:ノードプールを手動でスケーリングする

最終更新日:Nov 10, 2025

詳細については、「投稿」をご参照ください。

説明

Container Service for Kubernetes (ACK) は自動スケーリングもサポートしています。[ノード自動スケーリング] または [ノードインスタントスケーリング] を使用して、ノードリソースを自動的に調整することで、スケジューリング容量を向上させることができます。詳細については、「ノードスケーリング」をご参照ください。

ノードプールスケーリングの概要

ノードの予想数は、ノードプールに保持されるノードの数です。ノードプールが最終状態に達したときのノードプールのノード数を示します。ノードプール内のノードの予想数を指定すると、ノードプール内のノードは指定された数に自動的にスケーリングされます。

ノードプールのスケールアウト

ノードの予想数を現在の値よりも大きい値に設定します。その後、ノードプールは自動的にスケールアウトされます。このようにして、ノードプールにノードを追加できなかった場合、システムは自動的に再試行できます。スケールアウト構成は、ノードプール構成によって異なります。ノードのインスタンスタイプとゾーンは、使用されるスケーリングポリシーによって異なります。ノードプールスケーリングポリシーの詳細については、「スケーリングポリシー」をご参照ください。

ノードプールのスケーリングプロセス中は、作成および使用された実際の仕様に基づいて課金されます。たとえば、ノードプールが 2 つのタイプのインスタンス仕様で構成され、課金方法が [従量課金] で、[スケーリングポリシー][優先度] に設定されているとします。このスケーリング操作中に、タイプ A の 2 つのノードが最初の優先順位の vSwitch のゾーンに追加されます。ノード A のリソースが不足している場合は、タイプ B の 3 つのノードが 2 番目の優先順位の vSwitch のゾーンに追加されます。1 時間のコストは、インスタンス仕様の単価に乗算されたノード数と課金期間として計算されます。つまり、(ノード A 単価 × 2 × 1)+(ノード B 単価 × 3 × 1)です。

システムは、ノードプールをスケールアウトするために次の手順を実行します。

  1. ECS インスタンスの作成: ACK がノードプールをスケーリングするために使用する基盤となるサービスである Auto Scaling は、Elastic Compute Service (ECS) インスタンスを自動的に作成します。ノードの予想数を変更すると、ACK はノードプール構成に基づいてノードプールをスケールアウトするために、Auto Scaling のスケーリンググループのインスタンスの予想数を自動的に変更します。ノードプールのステータスは「拡張中」に変わります。Auto Scaling が ECS インスタンスを作成すると、ノードプールのステータスは「アクティブ」に変わります。予想インスタンス数の機能の詳細については、「予想インスタンス数」をご参照ください。

    重要

    GPU アクセラレーション ECS ベアメタルインスタンスファミリー ebmgn7 および ebmgn7e は、Multi-Instance GPU (MIG) 構成を自動的に削除できません。ACK が上記のインスタンスファミリーのインスタンスを追加すると、ACK はインスタンスに保持されている MIG 構成を自動的にリセットします。リセットには時間がかかる場合があります。この場合、インスタンスをクラスタに追加できない可能性があります。

  2. クラスタへの ECS インスタンスの追加: Auto Scaling が ECS インスタンスを作成した後、ECS インスタンスは ACK によって維持される cloud-init スクリプトを自動的に実行してノードを初期化し、ノードをノードプールに追加します。操作ログは、各ノードの /var/log/messages ファイルに保存されます。ノードにログインし、grep cloud-init /var/log/messages コマンドを実行してログを表示できます。

    説明
    • ノードがノードプールに追加されると、/var/log/messages ファイルの操作ログは自動的に削除されます。したがって、ログには、ノードをノードプールに追加できなかった場合の情報のみが記録されます。

    • ノードをノードプールに追加できなかった場合、/var/log/messages ファイルの関連ログデータはタスク結果に同期されます。クラスタ詳細ページの [クラスタタスク] タブでタスクの詳細を表示できます。

ノードプールのスケールイン

ノードの予想数を現在の値よりも小さい値に設定します。その後、ノードプールは自動的にスケールインされます。

  • システムがノードプールをスケールインする場合:

    • スケーリングポリシーが「優先度」に設定されている場合、システムは新しく作成された ECS インスタンスをスケーリンググループから優先的に削除します。

    • スケーリングポリシーが「分散バランシング」に設定されている場合、システムはポリシーに基づいて ECS インスタンスがデプロイされているゾーンをフィルタリングします。次に、新しく作成された ECS インスタンスがスケーリンググループから優先的に削除され、スケーリンググループの異なるゾーンの ECS インスタンスの数が近いか同じになるようにします。

    • スケーリングポリシーが「コスト最適化」に設定されている場合、システムは vCPU 価格の降順でスケーリンググループから ECS インスタンスを削除します。

  • ノードの予想数を変更することでスケールインアクティビティがトリガーされると、ACK はノードを最初にドレインすることなく削除できます。削除する前にノードをドレインする場合は、詳細については、「ノードを削除する」をご参照ください。

  • システムがノードプールをスケールインする場合、従量課金 ECS インスタンスのみが解放されます。サブスクリプション ECS インスタンスは解放されません。有効期限が切れていないサブスクリプションノードを解放する必要がある場合は、ECS コンソール にログインし、課金方法を従量課金に変更します。詳細については、「課金方法をサブスクリプションから従量課金に変更する」をご参照ください。

手順

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

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

  3. スケールアウトするノードプールを見つけて、[アクション] 列の [スケール] をクリックします。

  4. (オプション) CloudOps Orchestration Service (OOS) が承認されていない場合は、AliyunOOSLifecycleHook4CSRole ロールを作成し、OOS に割り当てます。

    AliyunOOSLifecycleHook4CSRole をクリックし、指示に従って承認を完了します。

    説明
    • 現在のアカウントが Alibaba Cloud アカウントの場合は、AliyunOOSLifecycleHook4CSRole をクリックします。

    • 現在のアカウントが RAM ユーザーの場合は、Alibaba Cloud アカウントに AliyunOOSLifecycleHook4CSRole ロールが割り当てられていることを確認してください。次に、AliyunRAMReadOnlyAccess ポリシーを RAM ユーザーにアタッチします。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。

  5. [予想ノード数] パラメータを設定し、プロンプトに従って構成を完了します。

    変更を送信した後、[更新中][スケールアウト中][削除中] の情報がステータス列に順番に表示されます。
    • ノードプールリストのノードプールのステータスが [スケールアウト中] と表示されている場合、システムはノードプールをスケールアウトしています。ノードプールのステータスが [アクティブ] に変わると、ノードプールはスケールアウトされています。

      重要

      クラスタのセキュリティグループが 100.64.0.0/10 へのアクセスを拒否している場合、新しいノードをクラスタに追加できません。

    • ノードプールリストのノードプールのステータスが [削除中] と表示されている場合、システムはノードプールをスケールインしています。ノードプールのステータスが [アクティブ] に変わると、ノードプールはスケールインされています。

推奨されない操作とソリューション

ノードの予想数は、ノードプールに保持されるノードの数です。推奨されない操作を実行すると、ノードプールのスケーリングに失敗し、ビジネス損失が発生する可能性があります。次の表に、推奨されない操作と、これらの操作によって発生した問題を修正するための提案を示します。

重要

次の表に示す推奨されない操作は実行しないでください。

推奨されない操作

ノードプールの動作

提案

kubectl delete node コマンドを実行してノードを削除します。

ACK は、ノードの予想数をスケーリンググループの ECS インスタンスの数とだけ比較します。ノードの予想数をクラスタ内の実際のノード数と比較しません。

API サーバーを使用してノードを削除する場合、ノードをホストする ECS インスタンスは解放されません。その結果、ノードプール内の実際のノード数は変更されません。ただし、クラスタから削除されたノードのステータスは [不明] に変わります。

  • この操作を実行した場合は、ノードプールの名前をクリックし、[ノード] タブでノードを削除して、ノードプールからノードを削除できます。

    説明

    ノードはすでにクラスタから削除されているため、[ノードのドレイン] を選択する必要はありません。ビジネス要件に基づいて、[ECS インスタンスの解放] を選択できます。

  • 上記の操作を実行した後、次のノードの ECS インスタンスは解放されません。ECS コンソール にログインし、これらの ECS インスタンスを手動で解放する必要があります。

    • クラスタに手動で追加されたノード。

    • サブスクリプションノード。

ECS コンソール で、または API を呼び出すことによって、ECS インスタンスを手動で解放します。

ノードプールは ECS インスタンスの解放を認識しており、ノードの予想数に達するように ECS インスタンスを自動的に作成できます。

  • ACK は、ノードの予想数をノードプール内の実際のノード数と比較して、ECS インスタンスの解放を検出し、新しい ECS インスタンスを作成します。これは、ビジネス損失を回避するのに役立ちます。ACK コンソールを使用してノードを削除することをお勧めします。詳細については、「ノードを削除する」をご参照ください。

  • 上記の操作を実行した後、次のノードの ECS インスタンスは解放されません。ECS コンソール にログインし、これらの ECS インスタンスを手動で解放する必要があります。

    • クラスタに手動で追加されたノード。

    • サブスクリプションノード。

インスタンスの予想数を変更せずに、Auto Scaling コンソールでスケーリンググループから ECS インスタンスを削除します。

ノードプールは ECS インスタンスの解放を認識しており、ノードの予想数に達するように ECS インスタンスを自動的に作成できます。

ノードプールが正常に機能しなくなる可能性があるため、ノードプールが使用するスケーリンググループを変更しないでください。

サブスクリプションの有効期限が切れると、ECS インスタンスは自動的に解放されます。

ノードプールは ECS インスタンスの解放を認識しており、ノードの予想数に達するように ECS インスタンスを自動的に作成できます。

ACK は、ノードの予想数をノードプール内の実際のノード数と比較して、ECS インスタンスの解放を検出し、新しい ECS インスタンスを作成します。これは、ビジネス損失を回避するのに役立ちます。有効期限が切れそうなサブスクリプション ECS インスタンスをできるだけ早く削除または更新することをお勧めします。

Auto Scaling コンソール または API を使用して、スケーリンググループのヘルスチェックを有効にします。

スケーリンググループのヘルスチェックを有効にすると、一時停止された ECS インスタンスなど、異常な ECS インスタンスが識別されたときに、システムは自動的に新しい ECS インスタンスを作成します。

デフォルトでは、ACK が使用するスケーリンググループのヘルスチェックは無効になっています。ノードが解放された場合にのみ、ECS インスタンスが ACK クラスタに追加されます。ノードプールが正常に機能しなくなる可能性があるため、ノードプールが使用するスケーリンググループを変更しないでください。

スケーリングエラーのエラーコードとソリューション

在庫不足などの理由により、ノードプールのスケーリングが失敗する可能性があります。ACK コンソールの [クラスタ] ページで ACK クラスタの名前をクリックし、[クラスタタスク] タブをクリックし、[原因を表示] をクリックして、ノードプールのスケーリングエラーの原因を表示できます。

次の表に、一般的なノードプールのスケーリングエラーのエラーコードを示します。

エラーコード

原因

ソリューション

RecommendEmpty.InstanceTypeNoStock

現在のゾーンの ECS インスタンスの在庫が不足しています。

異なるゾーンの vSwitch を追加し、複数の ECS インスタンスタイプを構成して ノードプールを変更 することで、ノード作成の成功率を向上させます。

ノードプールリストには、スケーラビリティの低いプールが表示され、インスタンスの在庫の充足度と構成済みのノードプールの可用性を評価できます。詳細については、「ノードプールのスケーラビリティを確認する」をご参照ください。

NodepoolScaleFailed.FailedJoinCluster

ノードが ACK クラスタに追加されません。

いずれかのノードにログインし、grep cloud-init /var/log/messages コマンドを実行して操作ログを表示し、エラーメッセージを確認します。

InvalidAccountStatus.NotEnoughBalance(残高不足)

アカウントの残高が不足しています。

最初にアカウントをチャージしてください。

InvalidParameter.NotMatch

Image bootMode BIOS does not match instanceType bootMode エラーメッセージは、指定されたインスタンスタイプが指定された OS イメージのブートモードをサポートしていないことを示します。

別のインスタンスタイプを選択してください。

  • ノードプール ページで管理するノードプールの操作列にある [詳細] をクリックし、[概要] タブをクリックして、OS やイメージ ID など、ノードプールの基本情報を表示できます。

  • DescribeImageSupportInstanceTypes 操作を呼び出して、ACK で使用されている OS イメージでサポートされているインスタンスタイプをクエリできます。

  • ACK でサポートされている OS イメージの詳細については、「OS イメージ」をご参照ください。

QuotaExceed.ElasticQuota

現在のリージョンで指定されたインスタンスタイプに基づいて作成された ECS インスタンスの数が、クォータ制限を超えています。

次の操作を実行できます。

  • 別のインスタンスタイプを選択します。

  • 既存の ECS インスタンスの数を減らします。

  • クォータセンター に移動し、クォータの増加をリクエストします。

InvalidResourceType.NotSupported

指定されたインスタンスタイプは、現在のゾーンではサポートされていないか、在庫切れです。

DescribeAvailableResource 操作を呼び出して、現在のゾーンでサポートされているインスタンスタイプをクエリし、ノードプールで使用されているインスタンスタイプを変更します。

WordPress の使用方法については、WordPress サポートをご覧ください。

The specified image does not support vSGX instance. エラーメッセージは、ノードプールの OS イメージがセキュリティ強化インスタンスをサポートしていないことを示しています。

別のインスタンスタイプを選択します。

  • [詳細] 列の [ノードプール] ページで管理するノードプールをクリックし、[概要] タブをクリックして、OS やイメージ ID などのノードプールに関する基本情報を表示できます。

  • DescribeImageSupportInstanceTypes 操作を呼び出して、ACK で使用されている OS イメージでサポートされているインスタンスタイプをクエリできます。

  • セキュリティ強化インスタンスでサポートされている OS イメージの詳細については、「ECS コンソールで信頼済みインスタンスを作成する」をご参照ください。

InvalidParameter.NotMatch(無効なパラメータ。一致しません)

The specified instanceType only support vTPM image. エラーメッセージは、指定された OS イメージがセキュリティ強化インスタンスをサポートしていないことを示しています。

別のインスタンスタイプを選択します。

  • [詳細] 列の、管理するノードプールの [ノードプール] ページで [詳細] をクリックし、[概要] タブをクリックして、OS やイメージ ID などのノードプールに関する基本情報を表示できます。

  • DescribeImageSupportInstanceTypes 操作を呼び出して、ACK で使用されている OS イメージでサポートされているインスタンスタイプをクエリできます。

  • セキュリティ強化インスタンスでサポートされている OS イメージの詳細については、「ECS コンソールで信頼済みインスタンスを作成する」をご参照ください。

QuotaExceeded.PrivateIpAddress

現在の vSwitch によって提供されるアイドル状態のプライベート IP アドレスが不足しています。

ノードプールにより多くの vSwitch を指定して、再試行してください。

InvalidParameter.KmsNotEnabled

指定された Key Management Service (KMS) キーが無効になっています。

KMS コンソール にログインして、キーを有効にしてください。

InvalidInstanceType.NotSupported

The specified instanceType is not supported by the image architecture. エラーメッセージは、現在のインスタンスタイプが指定された OS イメージをサポートしていないことを示しています。

別のインスタンスタイプを選択します。

  • 管理するノードプールの [詳細] 列の [概要] タブをクリックすると、ノードプールの基本情報 (OS やイメージ ID など) を表示できます。

  • DescribeImageSupportInstanceTypes 操作を呼び出して、ACK で使用されている OS イメージでサポートされているインスタンスタイプをクエリできます。

  • ACK でサポートされている OS イメージの詳細については、「OS イメージ」をご参照ください。

InsufficientBalance.CreditPay

アカウントの残高が不足しています。

最初にアカウントをチャージしてください。

ApiServer.InternalError

an error on the server (\"Get \\\"https://192.168.xxx.xxx:xxx/api/v1/nodes\\\": dial tcp 192.168.xxx.xxx:xxx: connect: connection refused\") has prevented the request from succeeding エラーメッセージは、ACK クラスターの API サーバー へのアクセスに失敗したことを示します。

API サーバー がアクセス可能または利用可能かどうかを確認します。詳細については、「ACK コンソールでクラスターアクセスに関する問題のトラブルシューティングを行う」をご参照ください。

RecommendEmpty.InstanceTypeNotAuthorized

指定されたインスタンスタイプを使用する権限がありません。

Submit a ticketを送信して、ECS で必要な権限を取得してください。

Account.Arrearage

アカウントの残高が不足しています。

最初にアカウントをチャージしてください。

Err.QueryEndpoints

ACK クラスタの API サーバー へのアクセスに失敗しました。

API サーバー がアクセス可能または利用可能かどうかを確認します。詳細については、「ACK コンソールでクラスタアクセスに関する問題のトラブルシューティングを行う」をご参照ください。

RecommendEmpty.DiskTypeNoStock

指定されたゾーンにディスクの在庫が不足しています。

ノードプールに vSwitch を追加するか、別のディスクタイプを選択してください。

InvalidParameter.KMSKeyId.KMSUnauthorized

KMS にアクセスする権限がありません。

ECS コンソール にログインし、AliyunECSDiskEncryptDefaultRole ロールを ECS に割り当てます。詳細については、「暗号化関連の権限」をご参照ください。

InvalidParameter.Conflict

The specified disk category (xxxx) is not support the specified instance type. というエラーメッセージは、現在のインスタンスタイプが指定されたディスクタイプをサポートしていないことを示しています。

別のインスタンスタイプまたはディスクタイプを選択してください。

NotSupportSnapshotEncrypted.DiskCategory

システム ディスクの暗号化は、拡張 SSD(ESSD)のみをサポートしています。

別のディスク タイプを選択してください。ディスク タイプとディスクの暗号化の詳細については、「ノード プールの作成と管理」をご参照ください。

ScalingActivityInProgress

ノードプールはスケーリング中のため、後でもう一度お試しください。

スケーリングの競合を避けるため、Auto Scaling コンソールでノードプールをスケーリングしないでください。

Instance.StartInstanceFailed

ECS インスタンスが起動に失敗しました。

後で再試行してください。この問題のトラブルシューティングを行うには、チケットを送信する ECS チームに送信してください。

OperationDenied.NoStock

指定されたゾーンで現在の ECS インスタンスタイプの在庫がありません。

別のインスタンスタイプを選択してください。

ノードプールのスケーラビリティは、ECS インスタンスの在庫状況に基づいて動的に変化するため、ノードプールのスケーリングの成功率に影響します。詳細については、「ノードプールのスケーラビリティを確認する」をご参照ください。

NodepoolScaleFailed.WaitForDesiredSizeTimeout

スケールアウト タスクがタイムアウトしました。

タスクの詳細を表示するには、次の手順を実行します。

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

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

  3. 管理するノードプールの名前をクリックし、[スケーリングアクティビティ] タブをクリックして、スケールアウト タスクの詳細を表示します。

ApiServer.TooManyRequests

タスクは、クラスタの Kubernetes API サーバー によってスロットルされています。

リクエストの頻度を減らすか、後で再試行してください。

ノードプールスケーリングの失敗。部分的な成功

在庫不足のため、一部のノードの作成に失敗しました。

ノードプールで使用されているインスタンスタイプを変更してから、もう一度やり直してください。

ノードプールのスケーラビリティは、ECS インスタンスの在庫状況に基づいて動的に変化するため、ノードプールのスケーリングの成功率に影響します。詳細については、「ノードプールのスケーラビリティを確認する」をご参照ください。

参考資料

  • ノードプールからノードを削除する際の操作と注意事項の詳細については、「ノードの削除」をご参照ください。

  • ノードプールのアップグレード、自動修復、ノードプールの OS CVE 脆弱性へのパッチ適用など、ノードプールの O&M タスクの詳細については、「ノードプール O&M」をご参照ください。

  • デプロイメントセットを使用して ECS インスタンスを異なる物理サーバに分散して高可用性を確保する、プリエンプティブルインスタンスベースのノードプールなど、ノードプールに関するベストプラクティスの詳細については、「ノードとノードプールのベストプラクティス」をご参照ください。