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

Container Service for Kubernetes:ノードの自動スケーリングの有効化

最終更新日:Mar 05, 2026

クラスターの容量計画がアプリケーション Pod のスケジューリング要件を満たせない場合、ノードの自動スケーリングを使用してノードを自動的にスケーリングします。ノードの自動スケーリングは、小規模なスケーリング (20 未満の伸縮性ノードプール、または伸縮性ノードプールあたり 100 未満のノードなど)、安定したトラフィック変動、予測可能または定期的なリソース需要、および単一バッチのリソーススケーリングで満たせるビジネスニーズのシナリオに最適です。

事前準備

ノードの自動スケーリングを効果的に使用するには、まず「ノードスケーリング」をご参照いただき、以下を理解してください。

对ノードの自動スケーリング:仕組みと特徴

对ノードの自動スケーリングがサポートするビジネスシナリオ

对ノードの自動スケーリングを使用する前の重要な考慮事項

对スケールイン時、サブスクリプションインスタンスはクラスターから削除されますが、リリースされません。追加コストを回避するため、この機能を有効にする際は従量課金インスタンスを使用してください。

重要な注意事項

  • 開始する前に、Auto Scaling (ESS) を有効にしていることを確認してください。

  • ノードスケーリングのクォータと制限については、「重要な注意事項」をご参照ください。

  • ノードの自動スケーリングには、特定のスケジューリングポリシーで既知の制限事項があり、スケーリング結果が期待と異なる場合があります。ワークロードまたはコンポーネントがサポートされていないスケジューリングポリシーを使用している場合は、次のように調整してください。

    • ソリューション 1:インスタントノード弾力性に切り替えます。

    • ソリューション 2:ノードスケーリングが無効になっているノードプールに、影響を受けるワークロードまたはコンポーネントをデプロイします。

      例えば、ack-node-local-dns-admission-controller コンポーネントをノードスケーリングが無効になっているノードプールにデプロイし、コンポーネント構成で次のノードアフィニティ要件を宣言します。

      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
          - matchExpressions:
            - key: "k8s.aliyun.com"
              operator: "NotIn"
              values: ["true"]
  • cluster-autoscaler コンポーネントは、更新またはデプロイメント中にノードリソースを必要とします。リソースが不足している場合、更新またはデプロイメントが失敗し、スケーリングエラーが発生する可能性があります。十分なノードリソースを確保してください。

この機能には、次のステップが含まれます。

  1. ステップ 1: クラスターのノードの自動スケーリングの有効化:ノードプールに設定された自動スケーリングポリシーは、クラスターレベルでノードの自動スケーリング機能を有効にした後にのみ有効になります。

  2. ステップ 2: 伸縮性ノードプールの構成ノードの自動スケーリングは、Auto Scaling 用に構成されたノードプールにのみ適用されます。そのため、ターゲットノードプールのスケーリングモードを [自動] に設定してください。

ステップ 1: クラスターのノードの自動スケーリングの有効化

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

  2. [クラスターリスト] ページで、クラスターの名前をクリックします。左側のナビゲーションウィンドウで、ノード > ノードプール をクリックします。

  3. [ノードプール] ページで、[ノードスケーリング] の横にある [設定] をクリックします。

    1.jpg

  4. ノードの自動スケーリングを初めて使用する場合は、画面の指示に従って ESS を有効にし、権限付与を完了してください。ESS がすでに有効で権限付与が完了している場合は、このステップをスキップしてください。

    • [ノードスケーリング設定] ページで、[ノードスケーリング方法] を [Auto Scaling] に設定します。スケーリング設定を構成し、[OK] をクリックします。

      ノードスケーリング方法は後で変更できます。切り替えるには、インスタントノード弾力性を選択し、画面の指示を注意深く読み、それに従ってください。

      設定

      説明

      ノードプール スケールアウト 順序ポリシー

      • ランダムポリシー: 複数のノードプールがスケールアウトの対象となる場合、ランダムに 1 つを選択します。

      • デフォルトポリシー: 複数のノードプールがスケールアウトの対象となる場合、リソースの無駄が最も少ないノードプールを選択します。

      • 優先度ポリシー: 複数のノードプールがスケールアウトの対象となる場合、最も優先度の高いノードプールを選択します。

        ノードプールの優先順位は、[ノードプール スケールアウト優先順位] パラメーターを使用して設定します。

      ノードプール スケールアウト優先度

      ノードプールのスケールアウト優先度を設定します。この設定は、[ノードプール スケールアウト順序ポリシー][優先度ポリシー] に設定されている場合にのみ有効になります。

      有効な値:1 から 100 までの整数。数値が大きいほど優先度が高くなります。

      [追加] をパラメーターの右側でクリックします。自動スケーリングが有効になっているノードプールを選択し、優先度を割り当てます。

      Auto Scaling が有効になっているノードプールが利用できない場合は、この設定をスキップしてください。優先度は「ステップ 2: 伸縮性ノードプールの構成」の完了後に設定してください。

      スケーリング感度

      スケーリングが必要かどうかをシステムがチェックする頻度を調整します。デフォルト値:60 秒。

      スケーリング中、弾力性コンポーネントはスケジューリングステータスに基づいて自動的にスケールアウトをトリガーします。

      重要
      • ECSノード:弾力性コンポーネントは、以下の3つの条件がすべて満たされた場合にのみ、ノードをスケールインできます。[スケールインしきい値][スケールイン開始遅延]、および[サイレント時間]

      • GPU ノード: 弾力性コンポーネントは、次の3つの条件がすべて満たされた場合にのみ、GPU ノードをスケールインできます。GPU スケールインしきい値スケールイン トリガー遅延、およびサイレント時間

      スケールインを許可

      ノードのスケールインを許可するかどうか。無効にすると、スケールイン設定は有効になりません。慎重に設定してください。

      スケールインしきい値

      ノードの自動スケーリングが有効になっているノードプールの場合、これはリクエストされたリソース (Request) とノードあたりの合計リソース容量の比率です。

      ノードは、この比率がしきい値を下回った場合、つまりノードの CPU およびメモリ使用量がともに [スケールインのしきい値] を下回った場合にのみ、スケールインできます。

      GPU スケールインしきい値

      GPU インスタンスのスケールインしきい値。

      GPU ノードは、ノード上の CPU、メモリ、GPU の使用率がすべて [GPU スケールインのしきい値] を下回った場合にのみ、スケールインの対象となります。

      スケールインのトリガー遅延

      スケールインの必要性を検出してから実際にスケールインを実行するまでの時間。単位:分。デフォルト値:10 分。

      重要

      エラスティシティ コンポーネントは、[スケールインしきい値]が満たされ、かつ[スケールイン トリガー遅延]が経過した後にのみ、ノードをスケールインする場合があります。

      サイレンス時間

      最新のスケールアウト後、弾力性コンポーネントがスケールインを実行しない時間。

      サイレンス時間中、弾力性コンポーネントはノードをスケールインしませんが、ノードがスケールインの条件を満たしているかどうかはチェックします。サイレンス時間が終了した後、ノードがスケールインしきい値を満たし、少なくとも 5 分間待機した場合、弾力性コンポーネントは通常どおりスケールインを実行します。例えば、サイレンス時間が 10 分で、スケールイン遅延時間が 5 分の場合、弾力性コンポーネントは最後のスケールアウト後 10 分間はノードをスケールインしません。しかし、その 10 分間以内に、ノードがスケールイン条件を満たしているかどうかをチェックします。サイレンス時間が終了し、ノードがスケールインしきい値を満たし、少なくとも 5 分間待機した場合、弾力性コンポーネントはスケールインに進みます。

      高度な設定

    ステップ 2: 伸縮性ノードプールの構成

    既存のノードプールの[スケーリングモード][自動]に変更して構成するか、オートスケーリングを有効にして新しいノードプールを作成できます。

    詳細については、「ノードプールの作成と管理」をご参照ください。主な設定は次のとおりです。

    設定

    説明

    スケーリングモード

    • 手動: ACK は、設定された 想定ノード数 に基づいてノードプールのノード数を調整し、ノード数を 想定ノード数 に維持します。詳細については、「ノードプールを手動でスケーリングする」をご参照ください。

    • 自動: クラスターの容量計画がアプリケーション Pod のスケジューリング要件を満たせない場合、ACK は設定された最小および最大インスタンス数に基づいてノードリソースを自動的にスケーリングします。Kubernetes 1.24 以降を実行しているクラスターはデフォルトでインスタントノードエラスティシティを使用します。それより前のバージョンを実行しているクラスターはデフォルトでノードの自動スケーリングを使用します。詳細については、「ノードのスケーリング」をご参照ください。

    インスタンス数

    ノードプールでのスケーリング用の[最小インスタンス数]および[最大インスタンス数]。これには既存のインスタンスは含まれません。

    説明
    • 最小インスタンス数がゼロでない場合、スケーリンググループはアクティベーション後に指定された数の ECS インスタンスを自動的に作成します。

    • 最大インスタンス数は、ノードプール内の現在のノード数以上を設定することを推奨します。そうしないと、アクティベーション後にスケーリングによってノード数がすぐに減少する可能性があります。

    インスタンス関連の設定

    スケールアウト時に、ノードは設定されたECS インスタンスファミリーから割り当てられます。スケールアウトの成功率を向上させるには、利用不可や在庫不足を回避するために、複数のゾーンにわたって複数のインスタンスタイプを選択してください。スケーリングに使用される具体的なインスタンスタイプは、設定されたスケーリングポリシーによって決定されます。

    ビジネスの安定性と正確なリソーススケジューリングを確保するため、同じノードプールで GPU インスタンスタイプと非 GPU インスタンスタイプを混在させないでください。

    スケーリングのインスタンスタイプは、次の 2 つの方法のいずれかで構成します。

    • 特定のタイプ:vCPU、メモリ、ファミリー、アーキテクチャ、その他のディメンションに基づいて、正確なインスタンスタイプを指定します。

    • 一般化された構成:属性 (vCPU、メモリなど) に基づいて使用または除外するインスタンスタイプを選択し、スケールアウトの成功率をさらに向上させます。詳細については、「指定されたインスタンス属性を使用してノードプールを構成する」をご参照ください。

    構成についてはコンソールの弾力性強度推奨事項をご参照いただくか、作成後にノードプールの弾力性強度を表示することができます。

    ACK でサポートされていないインスタンスタイプとノード構成の推奨事項については、「ECS インスタンスタイプ構成推奨事項」をご参照ください。

    クラウドのリソースと課金情報:imageECS インスタンスimageGPU インスタンス

    オペレーティングシステム

    Auto Scaling を有効にする際、Alibaba Cloud Linux、Windows イメージ、または Windows Core イメージを選択できます。

    Windows または Windows Core イメージを選択すると、システムは自動的に Taint { effect: 'NoSchedule', key: 'os', value: 'windows' } を追加します。

    ノードラベル (Labels)

    クラスターに追加されたラベルは、Auto Scaling によって作成されたノードに自動的に適用されます。

    重要

    Auto Scaling は、ラベルと Taint がノードプールタグにマッピングされている場合にのみ認識します。ノードプールタグには制限があります。伸縮性ノードプールの ECS タグ、Taint、およびノードラベルの合計数を 12 未満に保ってください。

    [スケーリングポリシー]

    ノードプールがスケーリング中にインスタンスを選択する方法を構成します。

    • 優先度に基づくポリシー: クラスターで設定された vSwitch の優先度に基づいてスケールします (vSwitch は、上から下の順序で優先度が低くなります)。優先度の高いゾーンでインスタンスを作成できない場合、次の優先度の vSwitch が自動的に使用されます。

    • コスト最適化ポリシー: vCPU 単価が最も低いものから最も高いものまでスケールします。

      ノードプールが プリエンプティブルインスタンス を使用する場合、スポットインスタンスが優先されます。スポットインスタンスが在庫不足などの理由で作成できない場合に、[従量課金インスタンスの割合 (%)] を設定することで、自動的に従量課金インスタンスで補完できます。

    • 分散バランスポリシー: ECS インスタンスを複数のゾーンに均等に分散しますが、これはマルチゾーンシナリオでのみ適用されます。在庫不足によりゾーン間の分散が不均衡になった場合は、再バランス調整できます。

    従量課金インスタンスを使用してプリエンプティブル容量を補充する

    課金方法としてスポットインスタンスを選択する必要があります。

    有効にすると、価格や在庫の理由で十分なスポットインスタンスを作成できない場合、ACK は自動的に従量課金インスタンスを補足として作成しようとします。

    クラウドのリソースと課金情報:imageECS インスタンス

    プリエンプティブルインスタンス補完の有効化

    課金方法としてスポットインスタンスを選択する必要があります。

    有効にすると、スポットインスタンスが回収されるというシステム通知 (回収の 5 分前) を受信した際、ACK は補償のために新しいインスタンスをスケールアウトしようとします。

    • 補償が成功した場合:ACK は古いノードをドレインし、クラスターから削除します。

    • 補償が失敗した場合:ACK は古いノードをドレインせず、インスタンスは 5 分後に回収されます。在庫が回復するか、価格条件が満たされた場合、ACK は目的のノード数を維持するためにインスタンスを自動的に購入します。詳細については、「スポットインスタンスノードプールのベストプラクティス」をご参照ください。

    スポットインスタンスがアクティブに解放されると、業務が中断される可能性があります。補償の成功率を向上させるために、従量課金インスタンスを使用してプリエンプティブル容量を補充する も有効にすることをお勧めします。

    クラウドのリソースと課金情報:imageECS インスタンス

    ノードプールで 自動スケーリング を有効にし、スケーリングモード自動 に設定する必要があります。
    • スタンダード: ECS インスタンスの作成とリリースによってスケーリングします。

    • スウィフト:ECS インスタンスを作成、停止、再起動することでスケーリングします。再度スケーリングが必要になった場合、停止したインスタンスが直接再起動されるため、スケーリング速度が向上します。

      停止された ECS インスタンスは、計算リソース料金は発生せず、ストレージ料金のみが発生します (ビッグデータやローカル SSD タイプなど、ローカルストレージ機能を備えたインスタンスファミリーを除く)。ECS インスタンス停止モードの課金の詳細と考慮事項については、「エコノミーモード」をご参照ください。

    汚染 (Taints)

    Taint を追加すると、クラスターはそのノードに Pod をスケジューリングしません。

    ステップ 3: (オプション) 結果の検証

    上記のステップを完了すると、ノードの自動スケーリングを使用できます。ノードプールには Auto Scaling が開始されたことが表示され、クラスターには cluster-autoscaler コンポーネントが自動的にインストールされます。

    ノードプールで Auto Scaling が有効化されていることを確認

    ノードプール」ページでは、ノードプールのリストにオートスケーリングが有効なノードプールが表示されます。

    image

    cluster-autoscaler コンポーネントがインストールされている

    1. クラスター管理ページの左側のナビゲーションウィンドウで、ワークロード > 展開 を選択します。

    2. kube-system 名前空間を選択して、cluster-autoscaler コンポーネントを表示します。

      image

    よくある質問

    カテゴリ

    サブカテゴリ

    リンク

    ノードの自動スケーリングの動作

    既知の制限事項

    スケールアウトの動作

    スケールインの動作

    拡張サポート

    cluster-autoscaler は CustomResourceDefinitions (CRD) をサポートしていますか?

    カスタムスケーリング動作

    Pod ベースのスケーリング動作制御

    ノードベースのスケーリング動作制御

    cluster-autoscaler アドオン関連