Scheduling preemptible and non-preemptible workloads in a single ClusterQueue #6123
jenny-yang-ai
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
This makes sense to me. I think you can go ahead and open up an update on the KEP. There may be design discussions on there but that is to be expected. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Followup discussion on #6041
I'd like to extend Kueue by permitting scheduling preemptible and non-preemptible workloads in a single ClusterQueue. I have the following requirements for my use case:
I thought the idea extending WorkloadPriorityClass proposed by @mimowo was great. Fleshing it out further, here are the changes needed:
WorkloadPriorityClass
calledPreemptionPolicy
that isAlways
orNever
(can be extended later)clusterqueue_snapshot.go
, trackNonPreemptibleUsage
which calculates the current usage by non-preemptible workloads for the given FlavorResource.flavorassigner.go/fitsResourceQuota
, if a workload is nonpreemptible, check non-preemptible quota constraintpreemption.go/findCandidates
, skip the nonpreemptible workloadsIsNonpreemptible
is defined asgetWorkloadPriorityClass(w).preemptionPolicy == Never
I'm making this post to both sanity check that this approach would satisfy my requirements and that this is the right design. In my deployment, I plan to create 2
WorkloadPriorityClass
with the same value so that the current BestFIFO ordering I have isn't affected. Since Kueue will track the non-preemptible usage, req 2 should be satisfied because there wont be a non-preemptible workload borrowing from another CQ.If this looks good, is the next step to open a PR with the change + edits to KEP-973?
Beta Was this translation helpful? Give feedback.
All reactions