-
Notifications
You must be signed in to change notification settings - Fork 526
Description
Hi Team,
Support for priority/weight-based cluster selection in MultiKueue, so that workloads
are preferentially dispatched to higher-priority worker clusters before falling back
to lower-priority ones.
Why is this needed?
Currently, MultiKueue uses a race model — workloads are dispatched to all worker
clusters listed in MultiKueueConfig.spec.clusters simultaneously, and the first
cluster to admit wins. There is no mechanism to express cluster preference or ordering.
Use case
We run 3 worker clusters across regions (e.g., JP, US, SG) for GPU workloads. We want
to prefer scheduling on our primary cluster (cheaper/closer), and only overflow to
secondary and tertiary clusters when the primary lacks resources.
Proposed solution
Add a priority or weight field to MultiKueueConfig.spec.clusters:
apiVersion: kueue.x-k8s.io/v1beta2
kind: MultiKueueConfig
metadata:
name: multikueue-default
spec:
clusters:
- name: "jp-osa"
priority: 1 # highest priority, try first
- name: "us-002"
priority: 2 # try if jp-osa is full
- name: "sg-001"
priority: 3 # last resortExpected behavior with ordered dispatch
- Submit workload to the highest-priority cluster only
- If that cluster's ClusterQueue cannot admit (quota full / pending) within a configurable timeout, try the next cluster
- Clean up remote workloads on clusters that lost
- Fall back to race-all if all clusters are above threshold
Environment
- Kueue version: v0.16.1
- Kubernetes version: 1.33
- MultiKueue with 3 worker clusters
If there are already workaround, please suggest.
Thank You,
Sanjay