[ 
https://issues.apache.org/jira/browse/YUNIKORN-1928?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17757590#comment-17757590
 ] 

Craig Condit commented on YUNIKORN-1928:
----------------------------------------

I don't think there's any change required here as this logic is already handled 
properly in the core. We don't reject requests when queues are full, we simply 
keep the pod in a pending state (but not unschedulable). This prevents the 
autoscaler from scaling up. However, if the pod would fit in the queue but the 
cluster itself is full, then we mark it unschedulable to allow the autoscaler 
to work.

As for making other requests, this also happens - YK is a greedy scheduler and 
will attempt to fit smaller pods that are further back in the queue if there is 
room for them.


> Exceed queue quota requests should be skipped when cluster auto scaling.
> ------------------------------------------------------------------------
>
>                 Key: YUNIKORN-1928
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-1928
>             Project: Apache YuniKorn
>          Issue Type: Improvement
>          Components: core - scheduler
>            Reporter: Qi Zhu
>            Assignee: Qi Zhu
>            Priority: Major
>              Labels: pull-request-available
>
> In shim side we have skip autoscaling logic both for yunikorn mode and plugin 
> mode, we need to make that exceed queue quota requests should be skipped when 
> cluster auto scaling.
> {code:java}
> // code placeholder
> switch request.State {
> case si.UpdateContainerSchedulingStateRequest_SKIPPED:
>     // auto-scaler scans pods whose pod condition is PodScheduled=false && 
> reason=Unschedulable
>     // if the pod is skipped because the queue quota has been exceed, we do 
> not trigger the auto-scaling
>     task.SetTaskSchedulingState(interfaces.TaskSchedSkipped)
>     if ctx.updatePodCondition(task,
>        &v1.PodCondition{
>           Type:    v1.PodScheduled,
>           Status:  v1.ConditionFalse,
>           Reason:  "SchedulingSkipped",
>           Message: request.Reason,
>        }) {
>        events.GetRecorder().Eventf(task.pod.DeepCopy(), nil,
>           v1.EventTypeNormal, "PodUnschedulable", "PodUnschedulable",
>           "Task %s is skipped from scheduling because the queue quota has 
> been exceed", task.alias)
>     }{code}
> It will be over auto scaling.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to