Nomad: When Kubernetes Is Too Much
HashiCorp Nomad is a workload orchestrator that deploys containers, VMs, binaries, and Java apps. Simpler than Kubernetes, easier to operate, runs anywhere.
Why Nomad Over Kubernetes
- Single binary — no 20-component control plane
- Multi-workload — containers, VMs, raw exec, Java
- Simpler ops — no etcd, no kubelet, no CRI
- Federation — multi-region built-in
- Integrates with Consul + Vault natively
The Free API
# Submit a job
curl -X POST http://localhost:4646/v1/jobs \
-d @job.json
# List all jobs
curl http://localhost:4646/v1/jobs
# Get job status
curl http://localhost:4646/v1/job/my-app
# Stop a job
curl -X DELETE http://localhost:4646/v1/job/my-app
# List allocations
curl http://localhost:4646/v1/job/my-app/allocations
# Node status
curl http://localhost:4646/v1/nodes
Job File (HCL)
job "web" {
datacenters = ["dc1"]
type = "service"
group "app" {
count = 3
network {
port "http" { to = 8080 }
}
service {
name = "web"
port = "http"
provider = "consul"
check {
type = "http"
path = "/health"
interval = "10s"
timeout = "2s"
}
}
task "server" {
driver = "docker"
config {
image = "my-app:v1"
ports = ["http"]
}
resources {
cpu = 500
memory = 256
}
}
}
update {
max_parallel = 1
canary = 1
min_healthy_time = "30s"
auto_revert = true
}
}
Real-World Use Case
A small team of 3 needed container orchestration but Kubernetes was overkill — too many components, too much ops overhead. Nomad: single binary, 10-minute setup, runs containers + cron jobs + batch processing. Same team, zero K8s complexity.
Quick Start
brew install nomad
nomad agent -dev
# UI at http://localhost:4646
Resources
Need orchestration automation? Check out my tools on Apify or email spinov001@gmail.com.
Top comments (0)