Nomad and Kubernetes

At work, I spend most of my time wrangling EKS clusters in AWS. For a personal projects I don't want to rinse and repeat my day at home (or get accused of stealing code 🤣). My little todo and notes app has grown a few arms and legs so I wanted to explore something different when it comes to container orchestration. Enter HashiCorp Nomad.

The job file format is also familiar since I work with Terraform most of the time. A job file uses HCL to describe what you want:

Nomad jobs are specified in HCL, which aims to strike a balance between human readable and editable, and machine-friendly. — Nomad Job Specification docs

An interesting thing about Nomad is it isn't container-only. It has task drivers for raw exec, Java, QEMU, and more. Kubernetes is built around containers, but Nomad treats containers as just one type of workload. For my projects, where I'm deploying a mix of containers and some lightweight processes, this handy.

Nomad is neat, I like Consul as well so it's a nice change to play with a different system in the homelab. Kubernetes excels at large-scale container orchestration and there are tonnes of operators and CRDs to run all sorts of workloads. Nomad is easier for smaller deployments, mixed workloads, and situations where simplicity matters. For personal infrastructure, Nomad has a home in my lab, Kubernetes is the work horse.

As always, I appreciate any feedback or if you want to reach out, I'm @neuralsandwich on twitter and most other places.