kube-schedulerのカスタムパラメーターを変更して、ビジネス要件に基づいてスケジューラがどのように機能するかを定義できます。 たとえば、binpackアルゴリズムを使用するか、負荷認識スケジューリングを有効にするかを選択できます。
前提条件
Kubernetes 1.20以降を実行するACK Proクラスター、ACK Edge Proクラスター、ACK Lingjunクラスター、またはACK Serverless Proクラスターが作成されます。 クラスターを更新する方法の詳細については、「手動でACKクラスターをアップグレードする」をご参照ください。
制限事項
次の表に、異なるバージョンのKubernetesを実行するACK ProクラスターおよびACK Edge Proクラスターでカスタムパラメーターをサポートするkube-schedulerのバージョンを示します。
kube-schedulerがインストールされているすべてのACK Serverless ProクラスターとACK Lingjunクラスターは、カスタムパラメーターをサポートしています。
Kubernetesバージョン | kube-schedulerのバージョン |
≥ 1.28 | すべてのバージョン |
1.26 | ≥ v1.26.3-aliyun-4.1 |
1.24 | ≥ 1.24.6-ack-3.1 |
1.22 | ≥ 1.22.15-ack-2.0 |
1.20 | ≥ v1.20.11-9.0-bcaa6001-aliyun |
手順
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[コアコンポーネント] タブで、[Kube Scheduler] を見つけ、Kube Schedulerカードの右下隅にある [設定] をクリックし、プロンプトに従って [Kube Schedulerパラメーター] ダイアログボックスでパラメーターを設定します。
機能とカスタムパラメーターは、kube-schedulerのバージョンによって異なります。 異なるバージョンのkube-schedulerでサポートされている機能の詳細については、「kube-scheduler」をご参照ください。 次の表に、カスタムパラメーターを示します。
パラメーター
説明
タイプ
有効値
デフォルト値
podMaxBackoffSeconds
ポッドの再スケジューリングの最大バックオフ遅延 (秒単位) 。 ポッドのスケジュールに失敗した後、遅延が終了するまでポッドを再スケジュールできません。
INT
[1,100000]
10
ポッドスケジューリング中にビンパッキングを使用
binpackアルゴリズムに基づいてポッドをスケジュールするかどうかを指定します。
詳細については、「カスタムbinpackパラメーター」のサンプル設定をご参照ください。
BOOL
false
true
false
binpackPluginWeight
binpackプラグインによって計算されたノードスコアの重み。 [ポッドスケジューリング中にビンパッキングを使用] も選択する必要があります。
INT
[1,100000]
100
binpackResourceWeight
binpackプラグインがノードスコアを計算するときの各リソースの重み。 [ポッドスケジューリング中にビンパッキングを使用] も選択する必要があります。
resourceName: ストリング
resourceWeight: INT
スキーマ検証は、resourceNameパラメーターで実行されます。 resourceNameパラメーターの値には、英数字、ピリオド (.) 、スラッシュ (/) 、およびハイフン (-) のみを使用できます。
resourceWeightパラメーターの値は、1から10000までの整数である必要があります。
cpu:1
メモリ: 1
scorePluginWeights
ノードスコアの計算に使用される各プラグインの重み。
説明NodeResourceFitプラグインの重みとbinpackプラグインの重みが競合します。 したがって、[ポッドスケジューリング中にビンパッキングを使用する] ([選択しない場合、ポッドはノード間で均等に分散されます]) を選択した場合、このパラメーターにNodeResourceFitプラグインの重みを追加しないでください。
プラグイン: STRING
重量: INT
プラグインのドロップダウンリストに表示されているプラグインだけを選択できます。
weightパラメーターの値は、1から10000までの整数である必要があります。
プラグイン: NodeAffinity
重量: 100
connectionQPS
Kubernetes APIサーバーの1秒あたりの最大クエリ数 (QPS) 。
INT
[1,1000]
50
connectionBurst
Kubernetes APIサーバーの最大QPSに達したときのバーストQPS。
INT
[1,1000]
100
percentageOfNodesToScore
ポッドスケジューリングに適したノードの割合。
デフォルト値:0 デフォルト値を使用すると、クラスター内のノードの割合がスコアリングされます。 割合は、クラスターサイズに基づいて5% から50% の範囲です。
INT
[0,100]
0
GPU共有のノードスコアリングの有効化
GPU共有を使用するときに、より多くのメモリと計算能力を要求するGPUにGPU高速化ポッドをスケジュールするかどうかを指定します。 GPU共有を使用するには、クラウドネイティブAIスイートをインストールする必要があります。
BOOL
false
true
true
負荷対応スケジューリングの有効化 (デフォルトで選択されていない)
負荷対応スケジューリングを有効にするかどうかを指定します。 負荷認識スケジューリングを有効にするには、ack-koordinatorコンポーネントをインストールする必要があります。
bool
false
true
false
loadAwareThreshold
このパラメーターには、ノードフィルタリングのしきい値を指定します。 このパラメーターは、[負荷対応スケジューリングの有効化] を選択した後に使用できます。
値は、resourceNameフィールドとresourceWeightフィールドで構成されます。
resourceName: 有効な値はcpuとmemoryです。
threshold: 有効な値の範囲は0から100です。
デフォルトでは、このパラメータは空のままになり、ノードフィルタリングは無効になります。
resourceName: cpu
しきい値: 80
loadAwareResourceWeight
このパラメーターは、ノードソートのノードスコアの計算に使用するリソースの重みを指定します。 このパラメーターは、[負荷対応スケジューリングの有効化] を選択した後に使用できます。
値は、resourceNameフィールドとresourceWeightフィールドで構成されます。
resourceName: resourceNameパラメーターのスキーマが検証されました。 値は
cpu
またはmemory
のみです。resourceWeight: 有効値は1から100の範囲の整数です。
cpu=1
memory=1
loadAwareAggregatedUsageAggregationType
このパラメーターは、統計のデータ集計のタイプを指定します。 有効な値:
avg: 平均値を計算します。
p50: 統計の50% を計算します。
p90、p95、p99: 統計の90% を計算し、統計の95% を計算し、統計の99% を計算する。
ENUM
avg
p50
p90
p95
p99
avg
featureGates
スケジューラによって有効にされる機能ゲート。 さまざまなバージョンのスケジューラでサポートされているフィーチャゲートの詳細については、「kube-schedulerのドキュメント」をご参照ください。
String
非該当
ACKは、オープンソースKubernetesと同じ機能ゲートを使用します。
次のセクションでは、カスタムパラメーターの設定方法の例を示します。
カスタムbinpackパラメーター
binpackアルゴリズムとspreadアルゴリズムの比較
寸法 | binpack | スプレッド |
スケジューリングポリシー |
|
|
機能 | このアルゴリズムは、ノード上のリソースフラグメントを低減する。 |
|
シナリオ | このアルゴリズムは、ノードのリソース使用率を改善するシナリオに適用できます。 | このアルゴリズムは、ノードの高可用性を保証するシナリオに適用できます。 |
カスタムbinpackパラメーターの設定
[ポッドスケジューリング中にビンパッキングを使用する] を選択し、binpackプラグインによって計算されたノードスコアの重みを指定できます。 重みが大きいほど、ポッドが同じノードにスケジュールされる確率が高くなります。 リソース名を指定することもできます。これに基づいて、binpackプラグインがノードスコアを計算し、ノードスコアの計算で各リソースの重みを計算します。 値が大きいほど、ノードスコアへの影響が大きいことを示す。
[アドオン] ページの [コアコンポーネント] タブで、[Kube Scheduler] を見つけ、[設定] をクリックし、プロンプトに従ってダイアログボックスでbinpackパラメーターを設定します。
パラメーター | 説明 |
ポッドスケジューリング中にビンパッキングを使用 | このパラメーターは、binpackアルゴリズムを有効にします。 |
binpackPluginWeight | このパラメーターには、binpackプラグインによって計算されたノードスコアの重みを指定します。 ほとんどの場合、デフォルト設定を使用できます。 binpackを有効にした後にポッドが期待どおりにスケジュールされない場合は、重みを200などのより大きな値に設定できます。 詳細は、「binpackの重み」をご参照ください。 |
binpackプラグインがノードスコアと各リソースの重みを計算するためのリソース名を指定します。 | 詳細については、「MostAllocated戦略を使用したビンパッキングの有効化」をご参照ください。
|
resourceNameおよびresourceWeightパラメーターを設定せずに [ポッドスケジューリング中にビンパッキングを使用する] を選択した場合、次の図のデフォルトのCPUおよびメモリ設定がノードスコアの計算に使用されます。
関連ドキュメント
要求されたリソースの量ではなく、実際のリソース使用量に基づいてノードをスケジュールする負荷認識スケジューリングを有効にすることを推奨します。 詳細については、「負荷対応スケジューリングの使用」をご参照ください。