Kubernetes is the right answer when you have a platform team, a long-term cloud-native bet, and a service mesh in the future. Nomad is the right answer when you want a scheduler today, prefer one binary to twenty, and run mixed workloads (containers and not-containers).
Kubernetes
The industry default for container orchestration. Vast feature surface.
Both schedule workloads onto a fleet. Kubernetes is a platform — APIs, controllers, CRDs, RBAC, mesh, gateway, ingress, observability — all assumed. Nomad is a scheduler — Raft-backed, multi-driver, multi-region, deliberately small. The right pick depends on whether you want the ecosystem that comes with Kubernetes, or to skip it.
Quick takes
If you're…
You have a platform team or are planning one→KubernetesKubernetes is what platforms get built on. The skills and tools assume it.
You want to run a scheduler today with no platform team→NomadNomad is one binary. A small team can operate it without dedicated SREs.
You need to schedule both containers AND non-container workloads (Java jars, raw binaries, QEMU VMs)→NomadNomad drivers cover all of these natively. Kubernetes is container-first.
You want a service mesh, GitOps, autoscaling, gateway API — all assumed→KubernetesThe K8s ecosystem ships all of these as opinionated patterns.
You're running at edge or in resource-constrained environments→NomadNomad uses way less RAM than even k3s; runs comfortably on small nodes.
You're hiring SREs / platform engineers→KubernetesK8s experience is universal; Nomad expertise is rarer.
You're running 3-30 nodes and the complexity feels disproportionate→NomadNomad scales down well. K8s scales down with effort.
You need CRDs, operators, and a control-plane API to build platform features on→KubernetesCRD + controller is the standard K8s extensibility story. Nomad has plugins, not a control-plane API.
A platform. Scheduler + control plane + CRDs + RBAC + networking + storage + ingress + secrets + jobs + cronjobs + ConfigMaps. Almost everything platform teams build on top of.
Nomad
A scheduler. Multi-driver, Raft-backed, multi-region. Networking, secrets, service discovery, mesh are separate HashiCorp products (Consul, Vault) or third-party.
ops
Install and operate
edge: Nomad
Kubernetes
Many moving parts: api-server, scheduler, controller-manager, etcd, kubelets, kube-proxy, CNI, CSI. Managed offerings (EKS, GKE, AKS) hide most of this — for a fee.
Nomad
One binary. Runs as server (Raft) and client (worker). Same binary, different flags. Production cluster: 3-5 servers + N clients. No CNI, no CSI, no kube-proxy.
features
Workload types
edge: Nomad
Kubernetes
Containers (Docker, containerd, CRI-O). VMs via KubeVirt with extra setup. Raw binaries via privileged Pods or hostPath tricks. Container-first by design.
Nomad
Drivers: Docker, containerd, exec (raw binaries), Java (jars), QEMU (VMs). All first-class. Mixed workloads on the same cluster work cleanly.
ecosystem
Ecosystem and integrations
edge: Kubernetes
Kubernetes
The largest in infrastructure software. Every CNCF project targets K8s first. Operators for every database, every observability tool, every secret manager. Backstage and dozens of IDPs assume it.
Nomad
Smaller. Strong integrations with the HashiCorp suite (Consul, Vault, Boundary). Limited operator ecosystem. Cloud-native projects rarely have first-class Nomad support.
features
Autoscaling
edge: Kubernetes
Kubernetes
HPA (horizontal pod autoscaler), VPA (vertical), KEDA (event-driven), Cluster Autoscaler. Mature, well-documented, broadly understood.
Nomad
Nomad Autoscaler + horizontal app autoscaling, plus cluster autoscaler. Capable, but less mature than what Kubernetes has.
core
Networking model
edge: Kubernetes
Kubernetes
Every pod gets an IP. CNI plugin (Cilium, Calico, Flannel, AWS VPC CNI) handles routing. Services + kube-proxy handle in-cluster discovery and load balancing.
Nomad
Bridge or host networking by default. Consul Connect adds service mesh and mTLS. Networking is simpler but less feature-rich out of the box.
ops
Resource overhead
edge: Nomad
Kubernetes
Control plane is heavy: 4-8 GB RAM minimum on a real cluster. k3s shaves this down for the edge case.
Nomad
Tiny. Servers run on 1 GB nodes. Clients add a few hundred MB. Great fit for edge or constrained environments.
ecosystem
License
edge: Kubernetes
Kubernetes
Apache 2.0. CNCF-governed. No license drama, no fork risk.
Nomad
Business Source License 1.1 since August 2023. Source-available for most uses, but the BSL change provoked the OpenTofu-style discussion. OpenBao (Vault fork) exists; no Nomad fork has gained traction.
Benchmark
Scheduling decision time, 1000 jobs
Internal HashiCorp benchmark on a 3-server cluster scheduling 1000 jobs with realistic constraints (affinity, anti-affinity, port reservations) on a 100-node fleet. Numbers from Mitchell Hashimoto's 2017 talk + community retests. Kubernetes equivalent measured on a 3-control-plane EKS cluster.
Metric
Kubernetes
Nomad
Better
Scheduling latency p50 (1000 jobs)
Nomad's C-implemented scheduler is single-purpose and faster.