What Kubernetes provides (and what you must run)
Kubernetes separates decision-making and state storage across multiple control-plane components. These pieces collectively store the “desired state” of the cluster and expose the APIs that operators, controllers, and clients use to drive that state. Core control-plane components:- etcd — a dedicated, distributed key-value store that persistently holds the cluster’s desired state.
- kube-apiserver — the single front door for every component, tool, and human interacting with the cluster.
- kube-scheduler — decides which node should run each pod or workload.
- controller manager — a set of controllers (reconciliation loops) that continuously compare desired state to actual state and reconcile differences.
- kubelet — the agent that actually starts and monitors containers.
- A CNI plugin of your choice — Kubernetes delegates pod networking to an externally installed Container Network Interface provider.
How Nomad differs
Nomad implements the same scheduling goals using a far smaller set of components. Nomad’s servers hold cluster state and make decisions; clients run the work. Consensus (Raft) is built into the Nomad binary, so there is no separate etcd-like database to install and operate. Upgrades can be as simple as replacing the single Nomad binary on servers.
Ecosystem and operational considerations
Kubernetes is the industry standard:- Large operator community and many tutorials.
- Vast ecosystem of add-ons, operators, and tools.
- Managed control planes offered by every major cloud provider, allowing teams to avoid operating control plane components themselves.
Workload model differences
Kubernetes treats containers as the primary scheduling abstraction. Running a plain binary on Kubernetes typically means packaging it into a container image first. Nomad treats containers and non-containerized binaries more uniformly: you can schedule a simple binary alongside containers under the same job rules, without mandatory containerization. This makes Nomad appealing when you must manage mixed workloads (containers plus legacy binaries) with minimal friction.
Quick comparison
How to decide
Consider team size, team expertise, and workload mix:-
Choose Kubernetes when:
- You have a platform team or many engineers experienced with Kubernetes.
- You need specific ecosystem pieces (an operator, a managed control plane, or a pre-built service mesh).
- You want the broadest amount of community support and integrations.
-
Choose Nomad when:
- Your team is small and developers double as operators.
- You run a mix of containers and plain binaries or other non-containerized processes.
- You prefer a minimal operational surface and simpler upgrades.
Choose Kubernetes when you need the ecosystem and managed services it provides. Choose Nomad when you want minimal operational complexity and you must run mixed workload types (containers and non-containers) without heavy infrastructure.
Further reading
- Kubernetes Basics — https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
- Nomad Documentation — https://www.nomadproject.io/docs/