Simpler (but younger) alternative to kubernetes, from the great hashicorp team
This post will provide you a quick setup, in order to have a feel of the power of nomad, with the following:
- A nomad cluster (1 server + 2 clients) on centos hosts
- A full docker container app (lb -> app -> db) deployed, running as nomad jobs
- Service discovery mechanism and how to test it
Like its predecessors (mesos, kubernetes, swarm), Nomad is a solution for managing containers. As a newcomer, it still lack few features but is progressing quickly to become a complete competitor.
It already makes a first good impression on scalability, ease of use, and by the hashicorp strong and successful team behind (vagrant, consul, terraform, packer).
However the competition is strong with projects like kubernetes, with soo many daily contributions and side project from google, enterprises, and passionates.
Few comparisons of the two products:
2. Architecture of the stack
We can describe few components:
- Master/client nomad host: master will take care of electing cluster leader, planning and rescheduling nomad jobs. While client will report node status to the master and look for jobs to run, and then run container
- Consul: service discovery. Nomad will record nodes, services in this database. Consul is replicated and present on all nodes so nomad agents always have access to this data locally
- dnsmasq: a kind of proxy for dns resolution, route *.consul query to consul, and other query to localhost then internet
- Ansible: recipe will provide easy deployment of the solution
3. Just clone and deploy
Please get the code here and follow the steps to deploy your first containers on nomad.