Gangスケジューリング

FEATURE STATE: Kubernetes v1.35 [alpha](disabled by default)

Gangスケジューリングは、Podのグループを「全か無か」の原則でスケジュールすることを保証します。 クラスターがグループ全体(または、定義された最小数のPod)を収容できない場合、どのPodもノードにバインドされません。

この機能はWorkload APIに依存しています。 クラスターでGenericWorkloadフィーチャーゲートとscheduling.k8s.io/v1alpha1 APIグループが有効になっていることを確認してください。

動作の仕組み

GangSchedulingプラグインが有効な場合、スケジューラーはWorkload内のgang Podグループポリシーに属するPodのライフサイクルを変更します。 このプロセスは、各Podグループとそのレプリカキーごとに独立して実行されます:

  1. スケジューラーは、以下の条件をすべて満たすまで、PodをPreEnqueueフェーズで保持します:

    • 参照先のWorkloadオブジェクトが作成されている
    • 参照先のPodグループがWorkload内に存在する
    • 特定のグループに対して作成されたPodの数が、少なくともminCount以上である

    これらの条件がすべて満たされるまで、Podはアクティブなスケジューリングキューに入りません。

  2. 必要数が満たされると、スケジューラーはグループ内のすべてのPodの配置先を見つけようとします。 この処理中、割り当てられたすべてのPodはWaitOnPermitゲートで待機します。 なお、この機能のAlphaフェーズでは、配置先の検索は単一サイクル方式ではなく、Pod単位のスケジューリングに基づいています。

  3. スケジューラーが少なくともminCount個のPodに対して有効な配置先を見つけた場合、それらすべてを割り当てられたノードにバインドすることを許可します。 5分間の固定タイムアウト内にグループ全体の配置先を見つけられない場合、どのPodもスケジュールされません。 代わりに、クラスターのリソースが空くのを待つため、スケジュール不可能キューに移動され、その間に他のワークロードをスケジュールできるようにします。

次の項目

最終更新 January 04, 2026 at 9:39 PM PST: update docs (fcedd2cfe5)