[ 
https://issues.apache.org/jira/browse/YUNIKORN-830?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chenya Zhang updated YUNIKORN-830:
----------------------------------
    Description: 
YuniKorn scheduler is able to allocate pods based on the node affinity policy 
"requiredDuringScheduling", but not "preferredDuringScheduling" yet.

YuniKorn currently does a full node sorting every time. After 
[https://github.com/apache/incubator-yunikorn-core/pull/307], we will do 
sorting incrementally with an ordered B-tree. It can make scheduling different 
pods to preferred nodes a bit complicated.

Discussed with [~cheersyang] [~yuchaoran2011] for a potential solution:
 * Parse node label’s from the shim and send that to the core over SI  (via 
node attributes).
 * Parse the pod node-affinity preference in the shim and send that to the core.
 * Implement something in GetSchedulableNodeIterator().. today we directly 
retrieve nodes from btree with asce order; we still loop the nodes once, but 
keep 2 list, one for preferred nodes; when we iterate nodes in the scheduling 
cycle, we iterate the preferred list first.

Adding [~wilfreds] [~kmarton] [~ccondit-target] for more discussion too.

Slack discussion: 
[https://yunikornworkspace.slack.com/archives/CL9CRJ1KM/p1630088069009500]

  was:
YuniKorn scheduler is able to allocate pods based on the node affinity policy 
"requiredDuringScheduling", but not "preferredDuringScheduling" yet.

YuniKorn currently does a full node sorting every time. After 
[https://github.com/apache/incubator-yunikorn-core/pull/307], we will do 
sorting incrementally with an ordered B-tree. It can make scheduling different 
pods to preferred nodes a bit complicated.

Discussed with [~cheersyang] [~yuchaoran2011] for a potential solution:
 * Parse node label’s from the shim and send that to the core over SI  (via 
node attributes).
 * Parse the pod node-affinity preference in the shim and send that to the core.
 * Implement something in GetSchedulableNodeIterator().. today we directly 
retrieve nodes from btree with asce order; we still loop the nodes once, but 
keep 2 list, one for preferred nodes; when we iterate nodes in the scheduling 
cycle, we iterate the preferred list first.

Adding [~wilfreds] [~kmarton] for more discussion too.

Slack discussion: 
[https://yunikornworkspace.slack.com/archives/CL9CRJ1KM/p1630088069009500]


> Node sorting need to support "preferredDuringScheduling" node affinity
> ----------------------------------------------------------------------
>
>                 Key: YUNIKORN-830
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-830
>             Project: Apache YuniKorn
>          Issue Type: New Feature
>          Components: core - scheduler
>            Reporter: Chenya Zhang
>            Assignee: Chenya Zhang
>            Priority: Major
>
> YuniKorn scheduler is able to allocate pods based on the node affinity policy 
> "requiredDuringScheduling", but not "preferredDuringScheduling" yet.
> YuniKorn currently does a full node sorting every time. After 
> [https://github.com/apache/incubator-yunikorn-core/pull/307], we will do 
> sorting incrementally with an ordered B-tree. It can make scheduling 
> different pods to preferred nodes a bit complicated.
> Discussed with [~cheersyang] [~yuchaoran2011] for a potential solution:
>  * Parse node label’s from the shim and send that to the core over SI  (via 
> node attributes).
>  * Parse the pod node-affinity preference in the shim and send that to the 
> core.
>  * Implement something in GetSchedulableNodeIterator().. today we directly 
> retrieve nodes from btree with asce order; we still loop the nodes once, but 
> keep 2 list, one for preferred nodes; when we iterate nodes in the scheduling 
> cycle, we iterate the preferred list first.
> Adding [~wilfreds] [~kmarton] [~ccondit-target] for more discussion too.
> Slack discussion: 
> [https://yunikornworkspace.slack.com/archives/CL9CRJ1KM/p1630088069009500]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to