Deploy a service on particular physical server

Looking for a orchestration tool for our docker services. Just starting to learn Nomad. We have a service must be installed in each physical server(PS). As far as I know, some orchestration tools are transparent to PS, they only manage the services according to CPU and memory. For example, if I want to run 2 instances of this service in a cluster with 2 PS, it may run 2 service instances in one PS, rather than running evenly.

Is this possible setup in nomad?

Hi @SteveNeo,

Welcome to our community! :wave:

Nomad supports a system Job scheduling type which sounds like what you are looking for.

This scheduler type is extremely useful for deploying and managing tasks that should be present on every node in the cluster.

Take a look at the docs I linked, and let me know if you have any additional questions.

Thanks for the quick reply!

Another question, I have another service will always running one instance in the cluster. However, I prefer they always running on a high profile PS first, only deploy it to another low profile PS when its original server is crashed or unhealthy, i.e, a failure over server for temporary traffic during we reboot that high profile PS. Is this possible?

failover (restart job if it fails) is automatic unless you specify not to. :slight_smile:

the preference that you are talking about (high profile machine, then low profile) would be the affinity section of the definition.

to limit jobs to certain machines, you should also checkout the constraint stanza