binpack プラグインは、ノードのリソース使用率に基づいてスコアを算出し、最も高いスコアを持つノードに Pod を優先的にスケジュールします。スコアが高いほど、後続の Pod が同一ノードに配置される確率が高まり、ワークロードが集約され、アイドルノードが削減されます。この方式は、GPU 推論クラスターなど、高いリソース使用率がメリットとなるワークロードに適しています。一方、フォールトトレランスを最優先する場合は、bin packing を無効化しておき、Pod がノード間で均等に分散されるようにしてください。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
Kubernetes 1.20 以降を実行中の ACK Lingjun クラスター。詳細については、「ACK Lingjun クラスターの作成」をご参照ください。
カスタム binpack パラメーターをサポートするスケジューラのバージョン:
ACK Lingjun クラスターのバージョン 最低限必要なスケジューラのバージョン 1.22 v1.22.15-ack-2.0 1.20 v1.20.11-9.0-bcaa6001-aliyun
binpack パラメーターの設定
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理対象のクラスター名をクリックします。左側のナビゲーションウィンドウで、[アドオン] をクリックします。
[コアコンポーネント] タブで、Kube Scheduler を見つけ、カードの右下隅にある [構成] をクリックします。
[Kube Scheduler パラメーター] ダイアログボックスで、以下の表に示すパラメーターを設定し、[OK] をクリックします。
パラメーター 説明 型 有効な値 デフォルト [Pod スケジューリング時に Bin Packing を優先的に使用(未選択時はノード間で均等に分散)] binpack アルゴリズムを使用して Pod をスケジュールします。未選択の場合は、Pod がノード間で均等に分散されます。 bool true/falsetruebinpackPluginWeight binpack プラグインによって計算されたノードスコアの重みです。重みを高くすると、スケジューリングの決定に対する binpack スコアの影響が大きくなります。ほとんどの場合、デフォルト設定を使用できます。bin packing が有効になっているにもかかわらず、Pod が期待どおりに統合されない場合は、この値を増やしてください (たとえば、 200に)。詳細については、「binpack weight」をご参照ください。Preferably Use Bin Packing During Pod Scheduling が選択されている場合にのみ有効になります。int 1~100000 100binpackResourceWeight binpack プラグインがノードスコアを算出する際に各リソースタイプに適用される重みです。重みが大きいリソースほど、選択されるノードへの影響が大きくなります。Kubernetes スケジューラの構成における scoringStrategy:resourcesに対応します。「Pod スケジューリング時に Bin Packing を優先的に使用」が選択されている場合のみ有効です。resourceName: 文字列;resourceWeight: intresourceWeight: 1~10000cpu:1、memory:1binpackResourceWeightの各エントリには、Kubernetes のscoringStrategy:resources配列に対応する 2 つのフィールドがあります。resourceName(コンソール) → YAML 内のname。英字、数字、ピリオド (.)、スラッシュ (/)、ハイフン (-) を使用できます。resourceWeight(コンソール) → YAML 内のweight。正の整数である必要があります。
リソース スコアリング戦略の詳細については、「MostAllocated 戦略を使用したビンパッキングの有効化」をご参照ください。