-
Notifications
You must be signed in to change notification settings - Fork 797
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updates to user-scheduler's coupling to the kube-scheduler binary #1778
Updates to user-scheduler's coupling to the kube-scheduler binary #1778
Conversation
c581968
to
e131f07
Compare
e131f07
to
e487e22
Compare
8149bec
to
902fbd6
Compare
I have the time to test this both on k8s 1.15 and on k8s 1.17 today if I merge this now, so I'll go ahead and do it. |
I've now reviewed this PR in a k8s 1.17 cluster, where it works but not yet good enough. It tends to schedule on one node over another, but I need to disable one more plugin that skews it back from only scheduling on the most resource intensive node. Example scheduling logic - a pod is scoredHere is the scoring as indicated by the logs from the
To debug this like me yourself, I suggest:
SelectorSpread - disabling itAs we can see, the ImageLocality - disabling itFor BinderHubs, it could potentially be nice to have ImageLocality - to schedule on nodes with a image available already, but that comes at the price of spreading out... I would argue its not worth it for BinderHubs either as it would block downscaling. I'll disable it also by default. Note that in the old kube-scheduler binary configuration, ImageLocality was not given priority over what was the equivalent of PodTopologySpread - leaving it enabledThis is a new feature of k8s 1.18, and I think if anyone use that it should be respected. See https://kubernetes.io/blog/2020/05/introducing-podtopologyspread/. |
Closes #1773 which also contains the findings that made me do what I summarize having done below.
Important review
Summary of changes
More detailed summary of changes
plugins
configurable for the advanced user wanting to try another scheduling policy.system:kube-scheduler
andsystem:volume-scheduler
ClusterRole's as doing this felt easier to maintain.