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

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

最終更新日:Jun 21, 2026

クラスターに Pod をスケジュールするためのリソースが不足している場合、ノードの自動スケーリングを使用してノードを自動的に追加または削除できます。ノードの自動スケーリングは、自動スケーリング対象のノードプールが 20 個未満、各ノードプールのノード数が 100 個未満など、スケーリング要件が厳しくないシナリオに適しています。また、トラフィックが安定しており、リソース需要が予測可能で、単一のスケーリング操作で対応できるワークロードにも適しています。

始める前に

ノードの自動スケーリング機能を効果的に使用するために、まず「ノードスケーリング」をお読みいただき、以下の内容を理解することを推奨します。

对ノードの自動スケーリングの仕組みと機能

对ノードの自動スケーリングに適したユースケース

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

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

注意事項

  • 始める前に、Auto Scaling サービスが有効化されていることを確認してください。

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

  • ノードの自動スケーリングには、特定のスケジューリングポリシーに関する既知の制限があり、予期しないスケーリング動作が発生する可能性があります。ワークロードまたはコンポーネントがサポートされていないスケジューリングポリシーを使用している場合は、次のいずれかの解決策を推奨します。

    • 解決策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:自動スケーリングノードプールを構成するノードの自動スケーリング機能は、有効になっているノードプールにのみ影響します。したがって、特定のノードプールのスケーリングモードを「自動」に設定する必要があります。

ステップ1:ノードの自動スケーリングを有効にする

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

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

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

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

    • ACK マネージドクラスター: AliyunCSManagedAutoScalerRole ロールを承認します。

    • ACK 専用クラスター: KubernetesWorkerRole ロールを承認し、AliyunCSManagedAutoScalerRolePolicy をアタッチします。

      ノードのスケーリング設定 ダイアログボックスで、事前チェックに合格した後、RAM ロールのリンク (KubernetesWorkerRole-xxxx など) をクリックして、RAM コンソールで承認を完了します。

  5. ノードのスケーリング設定 ページで、ノードスケーリングプラン自動スケーリング に設定し、パラメーターを構成してから、OK をクリックします。

    スケーリングソリューションは、選択後に切り替えることができます。切り替えるには、選択を「ノードの即時スケーリング」に変更し、画面のプロンプトを注意深く読み、指示に従って操作を完了してください。

    パラメータ

    説明

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

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

    • [デフォルトポリシー]:スケールアウトに適格な複数のノードプールがある場合、リソースの無駄が最も少ないものが選択されます。

    • [優先度に基づくポリシー]:スケールアウトに適格な複数のノードプールがある場合、優先度が最も高いものが選択されます。

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

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

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

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

    パラメーターの横にある追加をクリックし、オートスケールされたノードプールを選択して、その優先度を設定する必要があります。

    自動スケーリングノードプールが利用できない場合は、このパラメータをこの時点では無視し、「ステップ2:自動スケーリングノードプールを構成する」の完了後に優先度を設定してください。

    [スケーリング感度]

    システムがスケーリングを実行するかどうかをチェックする間隔です。デフォルト値は 60 秒です。

    自動スケーリング中、スケーリングコンポーネントはスケジューリング状態に基づいてスケールアウトイベントを自動的にトリガーします。

    重要
    • ECS ノード: スケーリングコンポーネントは、スケールインしきい値スケールイン開始遅延時間、および クールダウン時間 の条件がすべて満たされた場合にのみ、ノードをスケールインできます。

    • GPU ノード: スケーリングコンポーネントは、GPU スケールインしきい値スケールイン開始遅延時間、および クールダウン時間 の条件がすべて満たされた場合にのみ、GPU ノードをスケールインできます。

    [スケールインを許可]

    ノードのスケールインを許可するかどうかを指定します。これをオフにすると、スケールイン関連の構成は適用されません。この設定は慎重に使用してください。

    [スケールインしきい値]

    「ノードの自動スケーリング」が有効なノードプール内のノードにおける、リソース要求と総リソース容量の比率です。

    ノードは、その CPU およびメモリリソース使用率の両方が スケールインしきい値 を下回る場合にのみ、スケールインの対象となります。

    [GPU スケールインしきい値]

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

    GPU インスタンスは、その CPU、メモリ、および GPU の使用率がすべて、設定されたGPU スケールインしきい値を下回った場合にのみ、スケールインの対象となります。

    [スケールイン開始遅延時間]

    ノードがスケールインの対象となってから、スケールイン操作が実行されるまでの遅延時間です。単位:分。デフォルト値:10 分。

    重要

    スケーリングコンポーネントは、スケールインしきい値 条件が満たされ、スケールイン開始遅延時間 期間が経過した後でのみ、ノードのスケールインを実行できます。

    [クールダウン時間]

    最新のスケールアウトイベントの後、スケーリングコンポーネントがスケールインを実行しない期間です。

    クールダウン期間中、スケールインアクションは一時停止されますが、システムはノードの適格性を引き続き評価します。クールダウンが終了すると、スケールイン条件(しきい値と遅延時間)を満たしているノードはスケールインされます。例えば、10 分のクールダウンと 5 分のトリガー遅延がある場合、スケールアウト後 10 分間はノードが削除されません。ノードが 2 分目に適格になった場合、10 分目に削除されます。この場合、ノードは 8 分間適格な状態にあり、5 分のトリガー遅延を超えているためです。

    詳細パラメータ

    パラメーター

    説明

    [Pod 終了タイムアウト]

    スケールイン中の Pod 停止の最大待機時間です。単位は秒です。

    タイムアウト前に Pod が退去されない場合、ノードは解放されません。

    [Pod の最小レプリカ数]

    スケールイン保護のしきい値です。ReplicationController または ReplicaSet の Pod を持つノードは、レプリカ数がこの値を下回る場合、スケールインされません。

    ReplicationController および ReplicaSet の Pod にのみ適用され、StatefulSet または DaemonSet には適用されません。

    [DaemonSet Pod のドレインを有効にする]

    有効にすると、ノードがスケールインされるときに DaemonSet Pod が退去されます。

    kube-system 名前空間に Pod があるノードをスキップ

    有効にすると、kube-system 名前空間の Pod を持つノードはスケールインから除外されます。

    説明

    これは DaemonSet Pod またはミラー Pod には適用されません。

ステップ2:自動スケーリングノードプールを構成する

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

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

パラメータ

説明

[スケーリングモード]

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

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

[インスタンス数]

ノードプールにおけるスケーリングの 最小インスタンス数最大インスタンス数 には、既存のインスタンスは含まれません。

説明
  • 最小インスタンス数が 0 より大きい場合、スケーリンググループが有効になると、対応する数の ECS インスタンスが自動的に作成されます。

  • 最大インスタンス数を、ノードプール内の現在のノード数以上の値に設定することを推奨します。そうしないと、自動スケーリング機能を有効にした直後に、ノードプール内のノードがスケールインされることがあります。

インスタンス関連パラメータ

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

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

スケールアウトのためのインスタンスタイプを構成する方法は、以下の 2 通りです。

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

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

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

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

クラウドリソースおよび課金情報:imageECS インスタンスimageGPU インスタンス

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

自動スケーリングノードの場合、Alibaba Cloud Linux、Windows、Windows Core のイメージがサポートされています。

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

[ノードラベル (Labels)]

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

重要

ノードの自動スケーリングは、ノードラベルと Taint をノードプールタグにマッピングした後にのみそれらを認識します。また、ノードプールタグの数には制限があります。したがって、自動スケーリングノードプールの場合、構成された ECS タグ、Taint、ノードラベルの合計数が 12 を超えないようにしてください。

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

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

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

  • コスト最適化ポリシー:vCPU 単価が低い順にスケーリングします。

    ノードプールで プリエンプティブルインスタンス を使用する場合、スポットインスタンスが優先されます。従量課金インスタンスの割合 (%) を構成して、在庫やその他の理由でスポットインスタンスを作成できない場合に、従量課金インスタンスを自動的に補完できます。

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

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

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

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

クラウドリソースおよび課金情報:imageECS インスタンス

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

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

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

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

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

スポットインスタンスの積極的なリリースは、ビジネスの中断を引き起こす可能性があります。補償の成功率を向上させるために、従量課金インスタンスを使用してプリエンプティブル容量を補充する も併せて有効化することを推奨します。

クラウドリソースおよび課金情報:imageECS インスタンス

スケーリングモード

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

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

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

[汚染 (Taints)]

Pod がノードにスケジュールされるのを防ぎます。

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

これらの手順を完了すると、ノードの自動スケーリング機能が使用可能になります。ノードプールには自動スケーリングがアクティブであると表示され、システムは自動的に cluster-autoscaler コンポーネントをインストールします。

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

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

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

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

  2. kube-system 名前空間を選択します。リストに cluster-autoscaler コンポーネントが表示されます。

よくある質問

カテゴリ

サブカテゴリ

リンク

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

既知の制限事項

スケールアウトの動作

スケールインの動作

拡張機能のサポート

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

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

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

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

cluster-autoscaler アドオン関連