Skip to content
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

Document Spread scheduling algorithm #7999

Open
schmichael opened this issue May 18, 2020 · 1 comment
Open

Document Spread scheduling algorithm #7999

schmichael opened this issue May 18, 2020 · 1 comment
Labels
theme/docs Documentation issues and enhancements theme/scheduling

Comments

@schmichael
Copy link
Member

schmichael commented May 18, 2020

Cluster-wide spread scheduling was added in #7810 but is only briefly referenced in API docs.

We should ensure it's documented in relevant places as well as explain when it should be used. Some ideas:

[ ] Internals: Scheduling

https://www.nomadproject.io/docs/internals/scheduling/

This page is a brief overview, and a 2-3 sentence description of the 2 cluster scheduling algorithms may be appropriate/useful:

As of Nomad v0.11.2 two cluster scheduling algorithms are supported: binpack and spread. The default is binpack and minimizes the number of servers needed to run services. The spread algorithm evenly places services across all servers and is best for static clusters, such as on-premises bare metal. See Scheduling Internals or the Scheduler Configuration API for details.

[ ] Internals: Scheduling: Internals

(Wow we need to update our information infrastructure too, huh?)

This is going to take more work than above to update as there's not a clear place to drop in a mention of spread. Probably split up this paragraph or add a new paragraph after:

The second phase is ranking, where the scheduler scores feasible nodes to find the best fit. Scoring is primarily based on bin packing...

[ ] Installing Nomad: Production: Reference Architecture

Should mention spread somewhere near "bare metal." A new section might be appropriate.

[x] API: Operator - Complete in #7994

This could be its own ticket, but we should really link to the Scheduler Defaults page from the Scheduler Config API.

Probably even be a little prescriptive and suggest people try to bake the desired scheduling configuration into their Nomad server images to avoid runtime configuration mutability.

@schmichael schmichael added the theme/docs Documentation issues and enhancements label May 18, 2020
@angrycub
Copy link
Contributor

angrycub commented May 18, 2020

@schmichael, @shantanugadgil started a PR for the scheduler defaults page (#7994), and we have been talking over part 3 (API: Operator). It seems like the API page is the canonical documentation from a long-term usability perspective. (also not having to document the defaults in a place far removed from the API that becomes authoritative immediately after bootstrapping). I'm sure we could add an interlinkage to the default_scheduler_config setting from the API docs page tho.

@angrycub angrycub linked a pull request May 19, 2020 that will close this issue
@tgross tgross added this to Needs Roadmapping in Nomad - Community Issues Triage Feb 12, 2021
@tgross tgross removed this from Needs Roadmapping in Nomad - Community Issues Triage Mar 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
theme/docs Documentation issues and enhancements theme/scheduling
Projects
None yet
Development

No branches or pull requests

3 participants