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グループとそのレプリカキーごとに独立して実行されます:
スケジューラーは、以下の条件をすべて満たすまで、PodをPreEnqueueフェーズで保持します:
minCount以上であるこれらの条件がすべて満たされるまで、Podはアクティブなスケジューリングキューに入りません。
必要数が満たされると、スケジューラーはグループ内のすべてのPodの配置先を見つけようとします。
この処理中、割り当てられたすべてのPodはWaitOnPermitゲートで待機します。
なお、この機能のAlphaフェーズでは、配置先の検索は単一サイクル方式ではなく、Pod単位のスケジューリングに基づいています。
スケジューラーが少なくともminCount個のPodに対して有効な配置先を見つけた場合、それらすべてを割り当てられたノードにバインドすることを許可します。
5分間の固定タイムアウト内にグループ全体の配置先を見つけられない場合、どのPodもスケジュールされません。
代わりに、クラスターのリソースが空くのを待つため、スケジュール不可能キューに移動され、その間に他のワークロードをスケジュールできるようにします。