Custom scheduler documentation

Hi. I was reading nomad documentation and I saw in this document that Nomad has a custom scheduler (see the second image in the documentation). I tried to search but there are no other references to this custom scheduler.
The reason why I need a custom scheduler is that we are working on a project where we need cooperative scheduling and it’ll be great to have our own scheduler and be able to plug this to nomad.

Hi @hayk99 and thanks for raising this question. I believe this is an error with the diagram and the use of the word custom and something that I will raise internally.

In the meantime I would be curious to understand your cooperative scheduling use case if you able to share further details?

jrasell and the Nomad team


Thanks for the answer!
At this moment I can’t provide more information about the scheduler. This scheduler is part of my bachelor’s degree thesis and we still had to work on the idea.
As soon I have more details I will share them with you.
For now, we are going to work on the idea and try to make our own adjustments over Nomad schedulers.

I have this requirement. I need to plugin into the scheduling mechanism. We need to have minute and detailed level of access for our task scheduling. We use Mesos(Apache Cluster manager) and would like to adopt Nomad.
Nomad has all the features we require, but custom scheduling logic does not seems to appear anywhere. There are Task Drivers but they are at the agent level(or node), we need a Driver at the Scheduling centralized level.

Use case:

  1. Custom resource selection based on internal logic or dynamic signals.
  2. Stats capture and record for change in state of task
  3. Re-run failed tasks based on internal parameters
  4. Start-Stop-Resume logic and Start-Fail-Restart logic customization.

Its not an exclusive list, but you get the point I believe.

The best I could find till now is Task Drivers | Nomad by HashiCorp, but these afaik is at the agent/worker level. I need something at the centralized level.

I had the same question as OP, since if Nomad is as flexible then I must be able to fit in my use case into this system.

In Mesos we could write a custom scheduler Apache Mesos - Scheduler HTTP API along with a python tool GitHub - douban/pymesos: A pure python implementation of Mesos scheduler and executor

I also need a way to plug into scheduling. Facing all the above issues because I need intelligent GPU-aware scheduling, similar to the one mentioned here: Writing a task driver won’t do because it’s at the node level.
Does anybody know if something has changed in regards to this?