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 lacks 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 so many daily contributions and side projects from Google, enterprises, and DevOps enthusiasts.
Few comparisons of the two products:
2. Architecture of the stack
We can describe few components:
- Master/client nomad host: the master will take care of electing cluster leader, planning and rescheduling nomad jobs. While a client will report node status to the master and look for jobs to run, and then run the containers
- Consul: service discovery. Nomad will record nodes, services in this database. Consul is installed and get replicated 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.
Thank you for reading :-) See you in the next post! Greg