https://www.nomadproject.io/docs/nomad-vs-kubernetes Oct 19-21 The countdown to HashiConf Global is on. View the full schedule now. View Schedule Dismiss alert * Browse ProductsOpen this menu[svg] + Infrastructure o terraform o packer o vagrant + Networking o consul + Security o vault o boundary + Applications o nomad o waypoint + HashiCorp Cloud Platform o consul o terraform o vault + Partner Services o HashiCorp Consul Service (HCS) on Azure * Overview * Use Cases + Simple Container Orchestration + Non-Containerized Application Orchestration + Automated Service Networking with Consul * Enterprise * * Tutorials * Docs * API * Community GitHub--Stars on GitHub Download Documentation Menu x[ ] * Installing Nomad + Overview + Quickstart + Production o Overview o Requirements o Reference Architecture o Deployment Guide + Windows Service * Upgrading + Overview + Specific Version Details * Integrations + Overview + Consul + Consul Connect + Vault Integration ----------------------------------------------------------------- * Internals + Overview + Architecture + Plugins o Overview o Base o Task Drivers o Devices o Storage + Scheduling o Overview o Internals o Preemption + Consensus Protocol + Filesystem + Gossip Protocol + Security Model * Configuration + Overview + acl + audit + autopilot + client + consul + plugin + sentinel + search + server + server_join + telemetry + tls + vault * Commands (CLI) + Overview + acl o Overview o bootstrap o policy apply o policy delete o policy info o policy list o token create o token delete o token info o token list o token self o token update + agent + agent-info + alloc o Overview o exec o fs o logs o restart o signal o status o stop + deployment o Overview o fail o list o pause o promote o resume o status o unblock + eval status + job o Overview o allocs o deployments o dispatch o eval o history o init o inspect o plan o periodic force o promote o revert o run o scale o scaling-events o status o stop o validate + license o Overview o get + monitor + namespace o Overview o apply o delete o inspect o list o status + node o Overview o config o drain o eligibility o status + operator o Overview o autopilot get-config o autopilot set-config o debug o keygen o keyring o metrics o raft list-peers o raft remove-peer o snapshot agent o snapshot inspect o snapshot restore o snapshot save + plugin o Overview o status + quota o Overview o apply o delete o init o inspect o list o status + recommendation o Overview o apply o dismiss o info o list + scaling o Overview o policy info o policy list + sentinel o Overview o apply o delete o list o read + server o Overview o force-leave o join o members + status + system o Overview o gc o reconcile summaries + ui + version + volume o Overview o create o delete o deregister o detach o init o register o snapshot create o snapshot delete o snapshot list o status ----------------------------------------------------------------- * Job Specification + Overview + HCL2 o Overview o Expressions o Functions # Overview # Collection Functions @ chunklist @ coalesce @ coalescelist @ compact @ concat @ contains @ distinct @ element @ flatten @ index @ keys @ length @ lookup @ merge @ range @ reverse @ setintersection @ setproduct @ setunion @ slice @ sort @ values @ zipmap # Type Conversion Functions @ can @ convert @ try # Hash and Crypto Functions @ bcrypt @ md5 @ rsadecrypt @ sha1 @ sha256 @ sha512 # Date and Time Functions @ formatdate @ timeadd # Encoding Functions @ base64decode @ base64encode @ csvdecode @ jsondecode @ jsonencode @ urlencode @ yamldecode @ yamlencode # Filesystem Functions @ abspath @ basename @ dirname @ file @ fileexists @ fileset @ pathexpand # IP Network Functions @ cidrhost @ cidrnetmask @ cidrsubnet @ cidrsubnets # Numeric Functions @ abs @ ceil @ floor @ log @ max @ min @ parseint @ pow @ signum # String Functions @ chomp @ format @ formatlist @ indent @ join @ lower @ regex_replace @ replace @ split @ strrev @ substr @ title @ trim @ trimprefix @ trimspace @ trimsuffix @ upper # UUID Functions @ uuidv4 @ uuidv5 o Locals o Syntax o Variables + artifact + affinity + check_restart + connect + constraint + csi_plugin ^Beta + device + dispatch_payload + env + ephemeral_disk + expose + gateway + group + job + lifecycle + logs + meta + migrate + multiregion + network + parameterized + periodic + proxy + reschedule + resources + restart + scaling + service + sidecar_service + sidecar_task + spread + task + template + update + upstreams + vault + volume + volume_mount * Task Drivers + Overview + Docker + Isolated Fork/Exec + Java + Podman + QEMU + Raw Fork/Exec + Community o Overview o containerd o Firecracker driver o Jailtask driver o Lightrun o LXC o Pot o Rkt ^Deprecated o Rookout o Singularity o systemd-nspawn o Windows IIS + Remote o Overview o ECS * Device Plugins + Overview + External o Overview o Nvidia o USB ^Beta * Schedulers * Runtime + Overview + Runtime Environment + Variable Interpolation * Autoscaling + Overview + Agent o Overview o apm o dynamic_application_sizing o http o nomad o policy o policy_eval o strategy o target o telemetry + API + CLI + Policy + Telemetry + Plugins o Overview o APM # Overview # Datadog # Nomad API # Prometheus o Strategy # Overview # Dynamic Application Sizing Average # Dynamic Application Sizing Max # Dynamic Application Sizing Percentile # Fixed Value # Pass-Through # Target Value # Threshold o Target # Overview # Amazon Web Services Autoscaling Group # Azure Virtual Machine Scale Set # Dynamic Application Sizing # Google Cloud Engine Managed Instance Group # Nomad Task Group o Community + Internals o Overview o Checks o Node Selector Strategy o Plugins # Overview # Base # APM # Strategy # Target * Operations + Overview + Operating Nomad Agents + Telemetry + Metrics + Cluster Management + Transport Security + Access Control ----------------------------------------------------------------- * Nomad vs. Kubernetes + Overview + Alternative to Kubernetes + Supplement to Kubernetes * Nomad Ecosystem * Nomad Partnerships * Who Uses Nomad * Nomad Enterprise + Overview + License o Overview o FAQ * FAQ Search Nomad documentation [ ] >>Nomad vs. Kubernetes Kubernetes is an orchestration system for containers originally designed by Google, now governed by the Cloud Native Computing Foundation (CNCF) and developed by Google, Red Hat, and many others. Kubernetes and Nomad support similar core use cases for application deployment and management, but they differ in a few key ways. Kubernetes aims to provide all the features needed to run Linux container-based applications including cluster management, scheduling, service discovery, monitoring, secrets management and more. Nomad only aims to focus on cluster management and scheduling and is designed with the Unix philosophy of having a small scope while composing with tools like Consul for service discovery/service mesh and Vault for secret management. The following characteristics generally differentiate Nomad from Kubernetes: >>Simplicity Kubernetes is designed as a collection of more than a half-dozen interoperating services which together provide the full functionality. Coordination and storage is provided by etcd at the core. The state is wrapped by API controllers which are consumed by other services that provide higher level APIs for features like scheduling. Kubernetes supports running in a highly available configuration but is operationally complex to setup. Nomad is architecturally much simpler. Nomad is a single binary, both for clients and servers, and requires no external services for coordination or storage. Nomad combines a lightweight resource manager and a sophisticated scheduler into a single system. By default, Nomad is distributed, highly available, and operationally simple. >>Flexible Workload Support While Kubernetes is specifically focused on Linux containers, Nomad is more general purpose. Nomad supports virtualized, containerized and standalone applications, including Docker, Java, IIS on Windows, Qemu, etc. Nomad is designed with extensible drivers and support will be extended to all common drivers. >>Consistent Deployment A full Kubernetes installation for a production environment is time consuming, operationally complex, and resource intensive. An increasing number of implementations are created by the Kubernetes community to mitigate these challenges, such as minikube, kubeadm, k3s, and more. These trimmed versions of Kubernetes offer easier adoption for development and testing, but lead to inconsistency in capabilities, configuration, and management when moving into production. In contrast to Kubernetes' fragmented distributions, Nomad as a single lightweight binary can be deployed in local dev, production, on-prem, at the edge, and in the cloud in a consistent manner, and provides the same operational ease-of-use across all environments. >>Scalability Kubernetes documentation states that they support clusters up to 5,000 nodes and 300,000 total containers. As the environment grows, the interoperating components with different constraints compound the operational complexity. Even operators at Google revealed the significant challenges of managing the system at scale. The lack of maturity in the Federation project and the additional overhead of managing a centralized management plane also make it a hard experience to deploy a distributed system that spans multiple clusters. Nomad has been proven to scale to cluster sizes that exceed 10,000 nodes in real-world production environments. It can be deployed across multiple availability zones, regions, and data centers with a single cluster or multiple clusters. Nomad is designed to natively handle multi-cluster deployments without the overhead of running clusters on clusters. This makes it easier to scale the application deployment across multiple datacenters, regions, and clouds with no additional complexity. Nomad has performed strenuous benchmark on scalability with 1 million container challenge in 2016 and 2 million container challenge in 2020. These tests are aimed to validate Nomad's architectural design and ensure that Nomad performs under the most extreme requirements. github logoEdit this page DocsAPIResourcesPrivacySecurityPress KitConsent Manager