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

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

最終更新日:Jan 09, 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"]

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

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

  2. ステップ2:自動スケーリングのためのノードプールの設定ノードの自動スケーリング機能は、自動スケーリングが設定されているノードプールにのみ適用されます。したがって、目的のノードプールのスケーリングモードも自動に設定する必要があります。

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

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

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

    1.jpg

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

    • ACK マネージドクラスターAliyunCSManagedAutoScalerRole ロールに権限を付与します。

    • ACK 専用クラスター:KubernetesWorkerRole ロールと AliyunCSManagedAutoScalerRolePolicy システムポリシーに権限を付与します。次の図はエントリを示しています。

      image

  4. ノードスケーリング設定 パネルで、ノードスケーリング方法自動スケーリング に設定し、スケーリングパラメーターを設定してから OK をクリックします。

    選択後、ノードスケーリング方法を切り替えることができます。これを行うには、パネルで方法をノードのインスタントスケーリングに変更できます。画面の指示をよく読み、操作を完了してください。

    設定

    説明

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

    • ランダムポリシー:複数のスケーラブルなノードプールが存在する場合、ランダムに 1 つがスケールアウトに選択されます。

    • デフォルトポリシー:複数のスケーラブルなノードプールが存在する場合、リソースの浪費が最も少ないものがスケールアウトに選択されます。

    • 優先度ベースのポリシー:複数のスケーラブルなノードプールが存在する場合、優先度が最も高いものがスケールアウトに選択されます。

      ノードプールの優先度は、ノードプールのスケールアウト優先度 パラメーターによって定義されます。

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

    ノードプールのスケールアウト優先度を設定します。このパラメーターは、ノードプールのスケールアウトポリシー優先度ベースのポリシー に設定されている場合にのみ有効です。

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

    パラメーターの横にある 追加 をクリックし、自動スケーリングが有効になっているノードプールを選択して、その優先度を設定します。

    自動スケーリングが有効になっているノードプールがない場合は、このパラメーターを一旦無視し、ステップ2:自動スケーリングが有効なノードプールの設定 を完了した後にノードプールの優先度を設定できます。

    スケーリング感度

    システムがスケーリングの必要性をチェックする間隔です。デフォルト値は 60 秒です。

    エラスティックスケーリングが実装されると、エラスティックコンポーネントはスケジューリングステータスに基づいて自動的にスケールアウトをトリガーします。

    重要
    • ECS ノード: 弾性コンポーネントは、[スケールインのしきい値][スケールインのトリガー遅延]、および [クールダウン] の条件がすべて満たされた場合にのみ、ノードのスケールインを実行します。

    • GPU ノード:エラスティックコンポーネントは、GPU スケールインのしきい値スケールインのトリガー遅延、および クールダウン の条件がすべて満たされた場合にのみ、GPU ノードのスケールインを実行します。

    スケールインを許可

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

    スケールインのしきい値

    ノードの自動スケーリングが有効になっているノードプール内の単一ノードのリソースリクエストとリソース容量の比率です。

    ノードは、この比率が設定されたしきい値を下回った場合にのみスケールインできます。これは、ノードの CPU とメモリのリソース使用率が両方とも スケールインのしきい値 を下回っていることを意味します。

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

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

    GPU ノードは、この比率が設定されたしきい値を下回った場合にのみスケールインできます。これは、ノードの CPU、メモリ、および GPU のリソース使用率がすべて GPU スケールインのしきい値 を下回っていることを意味します。

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

    スケールインの必要性が検出されてからスケールイン操作が実行されるまでの時間間隔です。単位:分。デフォルト値:10 分。

    重要

    エラスティックコンポーネントは、スケールインのしきい値 の条件が満たされ、スケールインのトリガー遅延 が経過した後にのみ、ノードのスケールインを実行できます。

    クールダウン

    直近のスケールアウト後、エラスティックコンポーネントがスケールイン操作を実行しない時間間隔です。

    クールダウン期間中、エラスティックコンポーネントはノードをスケールインしませんが、ノードがスケールインの対象であるかどうかを引き続きチェックします。クールダウン期間が終了した後、ノードがスケールインのしきい値とスケールインのトリガー遅延の両方の条件を満たしている場合、エラスティックコンポーネントはスケールインを続行します。たとえば、クールダウンが 10 分で、スケールインのトリガー遅延が 5 分の場合、エラスティックコンポーネントはスケールアウト後 10 分間はどのノードもスケールインしません。ただし、この時間中もノードのスケールイン適格性を評価します。10 分のクールダウン後、ノードが 5 分の遅延を超えてスケールインのしきい値を満たしている場合、そのノードはスケールインされます。

    詳細設定パラメーターの表示

    設定項目

    説明

    Pod 終了タイムアウト

    ノードのスケールイン中に、ノード上の Pod が終了するのを待つ最大時間です。単位:秒。

    レプリケートされた Pod の最小数

    ノードのスケールイン前に各 ReplicaSet で許可される Pod の最小数です。Pod が属する ReplicaSet の実際のレプリカ数がこの値より小さい場合、ノードはスケールインされません。

    DaemonSet ポッドの排除

    この機能を有効にすると、ノードがスケールインされるときに、ノード上の DaemonSet Pod がエビクションされます。

    kube-system Pod をホストするノードをスキップ

    この機能を有効にすると、システムは自動ノードスケールイン中に kube-system 名前空間で Pod を実行しているノードを無視できます。これにより、これらのノードがスケールインの影響を受けないようにします。

    説明

    この機能は、DaemonSet Pod とミラー Pod には適用されません。

ステップ2:自動スケーリングのためのノードプールの設定

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

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

設定

説明

スケーリングモード

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

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

インスタンス数

ノードプールがスケーリングできる インスタンスの最小数インスタンスの最大数 です。これには既存のインスタンスは含まれません。

説明
  • インスタンスの最小数が 0 でない場合、スケーリンググループは有効になった後、指定された数の ECS インスタンスを自動的に作成します。

  • インスタンスの最大数を、ノードプール内の現在のノード数以上の値に設定してください。そうしないと、エラスティックスケーリング機能が有効になった直後にスケールインがトリガーされます。

インスタンス関連の設定

ノードプールがスケールアウトすると、選択された ECS インスタンスファミリー からノードが割り当てられます。より多くのゾーンでより多くのインスタンスタイプを選択すると、ノードのスケールアウトの成功率が向上し、利用できないインスタンスタイプや在庫不足による失敗を防ぐことができます。スケールアウトの具体的なインスタンスタイプは、スケーリングポリシー によって決定されます。

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

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

コンソールの弾力性強度の推奨事項を参照するか、作成後にノードプールの弾力性強度を表示できます。

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

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

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

自動スケーリングを有効にすると、Alibaba Cloud Linux、Windows、または Windows Core イメージを選択できます。

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

ノードラベル

クラスターで追加したノードラベルは、スケールアウト中に作成されるノードに自動的に追加されます。

重要

自動スケーリングは、ノードラベルと Taint がノードプールのタグにマッピングされた後にのみ認識できます。ノードプールにはタグの数に制限があります。したがって、自動スケーリングが有効になっているノードプールの ECS タグ、Taint、およびノードラベルの合計数は 12 以下である必要があります。

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

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

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

  • コスト最適化:vCPU 単価に基づいて、最低価格から最高価格の順にスケーリングします。

    ノードプールが スポットインスタンス を使用する場合、スポットインスタンスが優先されます。オンデマンドインスタンスの割合 (%) を設定することもできます。在庫やその他の理由でスポットインスタンスタイプを作成できない場合、オンデマンドインスタンスが自動的に補完として使用されます。

  • 分散バランシング:マルチゾーンシナリオでのみ、ECS インスタンスを複数のゾーンに均等に分散します。在庫不足やその他の理由でゾーンの分散が不均衡になった場合は、リバランス操作を実行できます。

オンデマンドインスタンスを使用してスポットキャパシティを補完

これは、課金方法がスポットインスタンスに設定されている場合に必要です。

この機能を有効にし、価格や在庫の問題で十分なスポットインスタンスを作成できない場合、ACK は自動的にオンデマンドインスタンスを補完として作成しようとします。

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

補足的なスポットインスタンスを有効化

スポットインスタンスの補償を有効化

これは、課金方法がスポットインスタンスに設定されている場合に必要です。

この機能を有効にすると、スポットインスタンスが回収される直前 (回収の 5 分前) にシステムメッセージを受信したときに、ACK は補償のために新しいインスタンスのスケールアウトを試みます。

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

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

スポットインスタンスの積極的なリリースは、ビジネス上の例外を引き起こす可能性があります。補償の成功率を向上させるために、オンデマンドインスタンスを使用してスポットキャパシティを補完も有効にすることを推奨します。

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

スケーリングモード

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

  • エコノミーモード:ECS インスタンスの作成、停止、再起動によってスケーリングします。これにより、再度スケーリングが必要な場合に停止したインスタンスを直接再起動でき、スケーリング速度が向上します。

    停止した ECS インスタンスのコンピューティングリソースには課金されません。ストレージ料金のみが課金されます (ビッグデータやローカル SSD タイプなど、ローカルストレージ機能を持つインスタンスファミリーを除く)。ECS インスタンス停止モードの課金と関連する注意事項の詳細については、「エコノミーモード」をご参照ください。

Taint

Taint を追加すると、クラスターは Pod をそのノードにスケジュールしなくなります。

ステップ3:(オプション) 結果の確認

上記の手順を完了すると、ノードの自動スケーリング機能が有効になります。ノードプールのステータスは、自動スケーリングが有効であることを示し、cluster-autoscaler コンポーネントがクラスターに自動的にインストールされます。

ノードプールで自動スケーリングが有効になっている

ノードプール ページでは、ノードプールリストにどのノードプールで自動スケーリングが有効になっているかが表示されます。

image

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

  1. 詳細ページの左側のナビゲーションウィンドウで、ワークロード > デプロイメント を選択します。

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

    image

よくある質問

カテゴリ

サブカテゴリ

リンク

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

既知の制限

スケールアウトの動作

スケールインの動作

拡張機能のサポート

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

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

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

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

cluster-autoscaler アドオン関連