DEV Community

Alex Spinov
Alex Spinov

Posted on

Nomad Has a Free API — Simple Workload Orchestrator Beyond Kubernetes

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
Enter fullscreen mode Exit fullscreen mode

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
  }
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Resources


Need orchestration automation? Check out my tools on Apify or email spinov001@gmail.com.

Top comments (0)