[
https://issues.apache.org/jira/browse/YUNIKORN-830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17406994#comment-17406994
]
Craig Condit commented on YUNIKORN-830:
---------------------------------------
YUNIKORN-807 has now been merged. To make dealing with the sorted node list
easier, we could make NodeCollection's GetNodeIterator() method return a slice
instead (and probably rename it to GetSortedNodes or something). We already
create a new slice in that method, so the change would be pretty trivial, and
NodeIterator can go away as this is the only use of it remaining.
Once that happens, if we have preferred nodes, we can make a first pass through
the sorted node list that NodeCollection returns and schedule with the first
match that happens to be on a preferred node. If we get through the whole list,
go back around and ignore the preferred node preference the second time.
> Node sorting 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:
> Maintain a preferred node list for certain labelled pods (configurable, e.g.
> spark driver pod in this case).
> * 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]