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

Container Service for Kubernetes:kube-scheduler パラメーターのカスタマイズ

最終更新日:Nov 29, 2025

kube-scheduler のカスタムパラメーターを変更して、その動作をカスタマイズできます。これにより、Binpack ポリシーや負荷認識スケジューリングなどを有効にして、ニーズに合わせて Pod スケジューリングを制御できます。

前提条件

バージョン 1.20 以降の ACK Managed Cluster ProACK Edge Cluster ProACK LINGJUN Cluster、または ACK Serverless Cluster Pro を作成済みであること。クラスターをアップグレードするには、「クラスターの手動アップグレード」をご参照ください。

制限事項

ACK Pro マネージドクラスターおよび ACK Pro エッジクラスターの場合、スケジューラがカスタムパラメーターをサポートするには、次のバージョン要件を満たす必要があります。

説明

すべての ACK Pro サーバーレスクラスターおよび kube-scheduler がインストールされている LINGJUN クラスターは、カスタムパラメーターをサポートしています。

クラスターバージョン

カスタムパラメーターをサポートするスケジューラバージョン

1.28 以降

すべてのバージョンがサポートされています

1.26

v1.26.3-aliyun-6.8.7.5a563072 以降

1.24

v1.24.6-ack-3.1 以降

1.22

v1.22.15-ack-2.0 以降

1.20

v1.20.11-9.0-bcaa6001-aliyun 以降

操作手順

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

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

  3. [コアコンポーネント] タブで、kube-scheduler コンポーネントを見つけ、カードの右下隅にある [設定] をクリックします。表示されたダイアログボックスで、パラメーターを設定します。

    サポートされる機能とカスタムパラメーターは、スケジューラのバージョンによって異なります。さまざまなスケジューラバージョンでサポートされる機能の詳細については、「kube-scheduler」をご参照ください。次の表に、カスタムパラメーターとその使用方法を示します。

    設定項目

    説明

    タイプ

    値 (有効値)

    デフォルト値

    [仮想ノードスケジューリングの有効化]

    有効にすると、仮想ノードでの Pod スケジューリングは、ノードアフィニティやアンチアフィニティなどのセマンティクスに従います。

    bool

    • true

    • false

    true

    podMaxBackoffSeconds

    スケジュールに失敗した Pod の最大バックオフ期間 (秒)。

    int

    [1,100000]

    10

    Pod スケジューリングの Binpack ポリシー有効化

    Binpack ポリシーを有効または無効にします。

    設定例については、後述の「Binpack カスタムパラメーター」セクションをご参照ください。

    bool

    • false

    • true

    false

    binpackPluginWeight

    他のスコアリングプラグインに対する Binpack プラグインの重み。このパラメーターを設定するには、[Pod スケジューリングのための Binpack ポリシーの有効化] を選択する必要があります。

    int

    [1,100000]

    100

    ビンパックリソースの重み

    Binpack プラグインのスコアリングにおける各リソースタイプの重み。このパラメーターを設定するには、[Pod スケジューリングのための Binpack ポリシーの有効化] を選択する必要があります。

    • resourceName: string

    • resourceWeight: int

    • resourceName はスキーマによって検証されます。文字、数字、ピリオド (.)、スラッシュ (/)、ハイフン (-) のみを含めることができます。

    • resourceWeight は 1 から 10000 までの整数です。

    • cpu:1

    • memory:1

    scorePluginWeights

    スコアリング時の各プラグインの重み。

    説明

    NodeResourceFit プラグインの重みは、Binpack プラグインの重みと競合します。[Pod スケジューリングのための Binpack ポリシーの有効化] を選択した場合は、この設定で NodeResourceFit プラグインの重みを設定しないでください。

    • plugin: string

    • weight: int

    • plugin:パブリックリストのプラグインのみがサポートされています。

    • weight:1 から 10000 までの整数。

    • plugin: NodeAffinity

    • weight: 100

    [percentageOfNodesToScore]

    スケジューリング中にスコアリングする実行可能ノードの割合。

    デフォルト値は 0 です。これは、スケジューラがデフォルトの割合のノードをスコアリングすることを意味します。このデフォルトの割合は、クラスターのサイズによって決まり、5% から 50% の範囲です。

    int

    [0,100]

    0

    [共有 GPU プラグインのスコアリングの有効化]

    共有 GPU 機能 (共有 GPU スケジューリングには AI スイートが必要です) を使用する場合、スケジューラは GPU Pod をスケジューリングする際に、要求された GPU メモリと計算能力が高い GPU を優先します。

    bool

    • false

    • true

    true

    Pod スケジューリングの負荷認識スコアリングを有効にする (loadAwareResourceWeight)

    負荷認識スケジューリングを有効にします。これには、ack-koordinator コンポーネントがインストールされている必要があります。

    bool

    • false

    • true

    false

    loadAwareThreshold

    このパラメーターは、ノードフィルタリングのしきい値を指定します。

    この値は、[resourceName] フィールドと [resourceWeight] フィールドで構成されます。

    • [resourceName]:有効な値は [cpu][memory] です。

    • [threshold]:有効な値は 0 から 100 の範囲です。

    デフォルトでは、このパラメーターは空のままになっており、ノードフィルタリングは無効になっています。

    • resourceName: cpu

    • threshold: 80

    負荷認識リソースの重み

    この値は、[resourceName] フィールドと [resourceWeight] フィールドで構成されます。

    • [resourceName]:resourceName パラメーターのスキーマが検証されます。値は cpu または memory のみです。

    • [resourceWeight]:有効な値は 1 から 100 までの整数です。

    • cpu=1

    • memory=1

    loadAwareAggregatedUsageAggregationType

    enum

    • [avg]

    • p50

    • [p90]

    • p95

    • p99

    avg

    プリエンプションアルゴリズム

    ACK スケジューラはリソースシミュレーションを使用して、低優先度 Pod を排除して高優先度タスクの迅速な起動を保証するかどうかを決定します。サポートされているポリシーは次のとおりです:

    • Default:Kubernetes のデフォルトのプリエンプションメカニズム。

    • ElasticQuota:ElasticQuotaTree に基づくプリエンプション。

    • Auto:クラスターの構成に基づいてプリエンプションポリシーを調整します。

    • None:無効。

    詳細については、「プリエンプションの有効化」をご参照ください。

    enum

    • Default

    • ElasticQuota

    • Auto

    • None

    Auto

    予約の有効化

    リソース予約機能を有効にします。

    boolean

    • true

    • false

    false

    フィーチャーゲート

    スケジューラで有効になっているフィーチャーゲート。各バージョンでサポートされているフィーチャーゲートについては、kube-scheduler の公式 Kubernetes ドキュメントをご参照ください。

    string

    該当なし。

    Kubernetes コミュニティのフィーチャーゲートと同じです。

次の例では、カスタムパラメーターの使用方法を示します。

Binpack カスタムパラメーター

Binpack ポリシーと Spread ポリシーの比較

ディメンション

Binpack ポリシー

Spread ポリシー

スケジューリングポリシー

  • リソース消費量が多いノードへの Pod のスケジューリングを優先します。

  • 複数の Pod は優先的に同じノードにスケジュールされます。

  • リソース消費量が最も少ないノードへの Pod のスケジューリングを優先します。

  • 複数の Pod は異なるノードに分散されます。

特徴

ノード上のリソースの断片化を減らします。

  • Spread ポリシーは Kubernetes のデフォルトのリソーススケジューリングポリシーです。

  • クラスターリソースをすべてのノードに均等に分散します。

  • これにより、個々のノードでより多くのリソースの断片化が発生する可能性があります。

利用シーン

高いノード使用率が要求される利用シーン。

高いノードの可用性が要求される利用シーン。

Binpack カスタムパラメーターの使用

[Pod スケジューリングのための Binpack ポリシーの有効化] を有効にすることで、Pod スケジューリングに Binpack ポリシーを適用できます。また、他のプラグインに対する Binpack スコアリングプラグインの重みを設定することもできます。重みが大きいほど、Pod が同じノードにスケジュールされる可能性が高くなります。さらに、Binpack プラグインがスコアリングに使用するリソース名と重みを設定できます。リソースの重みが大きいほど、そのリソースがスケジューリングの決定に与える影響が大きくなります。

[コンポーネント管理] ページで、[コアコンポーネント] タブに移動します。kube-scheduler コンポーネントを見つけ、[設定] をクリックします。ダイアログボックスで、Binpack 関連のカスタムパラメーターを設定します。

設定項目

設定例の説明

Pod スケジューリング用の Binpack ポリシーの有効化

スイッチをオンにします。

[binpackPluginWeight]

Binpack の重みを設定します。通常、これを変更する必要はありません。Binpack ポリシーを有効にしても効果がない場合は、重みを増やすことができます (例:200)。詳細については、「binpack の重み」をご参照ください。

異なるリソースに対する Binpack ポリシー

詳細な設定例については、「MostAllocated 戦略を使用したビンパッキングの有効化」をご参照ください。

  • scoringStrategy:resources では、nameweight は Binpack プロセスにおける異なるリソースの相対的な重要性を表します。

  • scoringStrategy:resourcesnameweight は、コンソールの [resourceName][resourceWeight] に対応します。

[Pod スケジューリングのための Binpack ポリシーの有効化] を有効にしても、[binpackResourceWeight][resourceName][resourceWeight] を設定しない場合、システムは CPU とメモリにデフォルトの Binpack 設定を使用します。これは、次の設定と同等です。

cpu

関連ドキュメント

負荷認識スケジューリング機能を使用すると、要求リソースではなく、実際のリソース使用量に基づいて Pod をノードにスケジュールできます。詳細については、「負荷認識スケジューリングの使用」をご参照ください。