The widespread use of cloud-native applications, and therefore containers, has resulted in the development of numerous container orchestration tools, among which HashiCorp’s Nomad and Kubernetes stand out.
The use of these tools is crucial for the administration of the different elements that make up these clusters, as well as for the optimal use of available resources. This article will compare Kubernetes and Nomad in order to facilitate the choice of platform that best suits your use case.
#How Will Kubernetes and Nomad Be Compared?
There are many ways to compare Kubernetes and Nomad. However, for the purposes of this article, the following aspects will be taken into account:
- Market share
- Community size
- Value proposition
- Deployment complexity
- Available tooling and third-party integrations
- Speed of innovation
- Talent available for hire and training opportunities
These aspects were chosen because they offer an overview of what you can expect from each of these tools in terms of maturity and growth, and their ability to solve the problems that your organization wants to address.
Since its introduction in 2014, Kubernetes has quickly become the leading container orchestration platform. In the 2021 Cloud Native Computing Foundation (CNCF) annual survey, ninety-six percent of respondents said they were testing or using Kubernetes. The same survey showed that sixty-nine percent of respondents used Kubernetes in production.
The CNCF data is consistent with other sources, such as Statista, which in 2020 showed that the market share of container orchestration systems was led by Kubernetes with seventy-five percent, followed by OpenShift with fifteen percent, Docker Compose with 4.8 percent of the market, and Docker Swarm with 2.5 percent.
In the face of such overwhelming market dominance, you might ask why you should even consider Nomad if Kubernetes has already prevailed over promising alternatives such as Mesos or Docker Swarm. While there are no figures as precise as those of the CNCF, the current trend of embracing multi-cloud environments means that Nomad has won the favor of top-tier organizations, including PagerDuty, Target, Citadel, trivago, SAP, Pandora, Roblox, eBay, Deluxe Entertainment, Q2 Software, Cloudflare, and Bowery Farming.
In summary, while it’s true that Kubernetes is the most popular container orchestrator, it’s also true that Nomad is making its way as a solid alternative among medium and large companies.
Establishing the community size of a particular project is not an easy task. However, some elements can help determine the number of people who actively support and contribute to a specific project. To quantify the size of each community, we’ll take into account both social networks and major face-to-face events such as conferences, workshops, and meetups.
Starting with Kubernetes, given its popularity among developers, it’s not surprising that its online community is gigantic. At the time of writing this article, these are the follower and contributor figures:
- Twitter: 264.6K followers
- Linkedin group: 60,573 members
- GitHub repository: watch 3.3K, fork 32K, star 87.2K, contributors 3K+
Though incomparable to the scale of Kubernetes, Nomad does have an impressive number of followers in its own right:
- Twitter: 82K followers
- Linkedin page: 162K followers
- GitHub repository: watch 507, fork 1.5K, star 11K, contributors 519+
Regarding Nomad, it should be noted that the figures for both Twitter and LinkedIn refer to HashiCorp, not Nomad as a project. This may give an idea of the size of the Kubernetes community, whose social media presence is considerably larger than that of all the projects under the HashiCorp umbrella.
Considering the staggering number of online Kubernetes followers, it’s unsurprising that many events also focus on Kubernetes. The most notable gatherings are the KubeCons, which are held in different countries around the globe. However, other events such as Kubernetes Batch + HPC Day, KnativeCon, Kubernetes AI Day, and Kubernetes on Edge Day should also be highlighted.
On the other hand, Nomad does not have exclusive events, at least not like KubeCon. Instead, HashiCorp’s community strategy is to hold HashiTalks, in which the different solutions offered by the company, including Nomad, are discussed. In addition, HashiCorp holds Nomad Field Workshops and extensive documentation to help both instructors and students learn about this innovative platform.
All in all, in terms of community size and events, Kubernetes is way ahead of Nomad.
Before considering the remaining points of comparison, it’s essential to understand the value proposition of each platform, that is, what problems each tries to solve. Possibly the easiest way to do this is to review how each project defines itself.
This is what the Kubernetes documentation has to say on the question: What is Kubernetes?:
Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
This is what the official documentation has to say to the question: What is Nomad?
Nomad is a flexible workload orchestrator that enables an organization to easily deploy and manage any containerized or legacy application using a single, unified workflow. Nomad can run a diverse workload of Docker, non-containerized, microservice, and batch applications.
Nomad’s approach as a platform-agnostic workload orchestrator is reinforced in the following section of its documentation:
Nomad enables developers to use declarative infrastructure-as-code for deploying applications. Nomad uses bin packing to efficiently schedule jobs and optimize for resource utilization. Nomad is supported on macOS, Windows, and Linux.
Keeping the above in mind is key to choosing the right platform for your use case. Kubernetes is designed from the ground up to offer end-to-end container orchestration services, which makes it an ideal candidate for cloud-native applications. That said, Kubernetes is not intended to handle workloads other than containers. This is where Nomad excels, as it was created to orchestrate different workload types, including legacy applications running on Windows OS.
In other words, while Kubernetes and Nomad overlap in our comparison as container orchestration systems, it’s nevertheless crucial to keep in mind that they each approach the problem of managing workloads with a different vision.
As you’ll see, the difference between the value proposition of Kubernetes and Nomad sets the tone for many of the remaining comparison points. One such point is the level of complexity involved in deploying each platform.
Nomad is very easy to deploy since it’s available as a precompiled binary and as a package for various operating systems. This allows for consistent installations of Nomad both locally and remotely, which is an attractive feature for any development team.
The same cannot be said for deploying Kubernetes, which is notorious for how complex it can be to configure depending on the OS. This complexity is part of the price Kubernetes pays for being a flexible platform, adaptable to any environment, so whether it’s an advantage or disadvantage depends on the specific use case.
Having said that, there are also variations of Kubernetes like K3s built for IoT and edge computing that are very easy to deploy. Additionally, major cloud providers offer managed Kubernetes solutions that allow you to deploy clusters with a few clicks.
In a nutshell, when it comes to ease of deployment, Nomad is hands down superior to “vanilla” Kubernetes. However, keep in mind that there are lightweight Kubernetes distros and managed solutions that are on par with Nomad in terms of ease of installation.
#Available Tooling and Third-Party Integrations
Is it a positive or a negative to have a wide variety of third-party tools and integrations available? Well, having a rich ecosystem of tools is positive; however, you should be careful when considering this metric. Note that tools are developed to address different situations. Sometimes tools are created to mitigate platform deficiencies, while at other times, they’re created to expand or enhance their functionality.
Take the deployment complexity discussed in the previous point as an example. There are numerous tools such as kubeadm, kops, or Kubespray that aim to ease Kubernetes deployment. The reason you won’t find similar tools for Nomad is that they are not necessary.
On the other hand, there are tools such as Prometheus and Grafana that seek to improve the visibility and monitoring of your workloads. These tools are available for both Nomad and Kubernetes.
That said, there is no denying that the popularity of Kubernetes drives the development of powerful integration tools such as Loft, which takes the multi-tenancy and self-service capabilities of Kubernetes to the next level.
That said, according to Kubetools, there are more than two hundred tools available for Kubernetes, comprising categories as diverse as:
- Cluster management
- Cluster with core CLI tools
- Alert and monitoring
- Logging and tracing
- Development tools/kit
- Alternative tools for development
- CI/CD integration tools
- Security tools
- Network policies
- Testing tools
- Service mesh
- Machine learning/deep learning
- Compute edge tools
- Storage providers
- Multiple tools repo
- Cost management
On the other hand, Nomad has only about twenty tools available, most of which HashiCorp maintains itself. This can be an advantage as it ensures that the tools are mature enough to meet the challenges of a production environment. This contrasts with Kubernetes, where the level of maturity of the tools and integrations offered is variable.
Nevertheless, it’s undeniable that Kubernetes leads the way when it comes to tools and third-party integrations.
#Speed of Innovation
Determining speed of innovation can be tricky. However, a good indicator is the degree of activity in the repository of each project.
As you can see on the left, Kubernetes has released three updates in the last month, merged 320 pull requests, closed 248 issues, and opened 234 new pull requests. In the same period, Nomad released v1.3.0-beta.1, 182 pull requests were merged, fifty-eight issues were closed, and twenty-six new pull requests were opened.
If you add to this the difference in the number of contributors (over three thousand in Kubernetes and around five hundred in Nomad), it’s clear that Kubernetes is advancing at a significantly faster pace than Nomad.
In a previous point, the ease of deployment offered by each platform was mentioned. This aspect is closely linked to the complexity of one tool compared to the other.
Kubernetes is a more complex platform, largely because it includes all the moving parts necessary to run and manage containerized applications, including cluster management, load balancing, storage coordination, and service autodiscovery, among many other features that revolve around being the best solution for containerized loads.
On the other hand, Nomad doesn’t require as many components, since it only focuses on offering workload scheduling, whether the workloads are containerized or not. This is what allows for a simpler architecture, available in a single binary without the need for external services like Kubernetes.
In other words, the philosophy of the Nomad team is to provide a solution that is simple to deploy and operate. This contrasts with Kubernetes, which favors the flexibility to be adapted and customized for almost any use case, which inevitably increases its complexity.
#Talent Available for Hire and Training Opportunities
The availability of talent for your chosen platform is significantly affected by the existing training opportunities: more widespread availability and access to training mean a wider pool of talent from which you can recruit and greater opportunities for your current team members to gain the necessary expertise if required.
There are several options for people interested in learning more about Nomad. One of them is HashiCorp Training, an excellent source of courses and certified training both online and face-to-face in different cities around the world. Additionally, HashiCorp has partners facilitating private training tailored to the needs of any organization.
As expected, when it comes to training, Kubernetes has more options. You can build your cloud-native career by following different paths. Both free and paid online courses are available on platforms like edX or the Linux Foundation. If you prefer, you can also choose a course from endorsed Kubernetes Training Partners.
In terms of certifications, there are as many as you can imagine, from Kubernetes and Cloud Native Associate (KCNA), to Certified Kubernetes Security Specialist (CKS), to Certified Kubernetes Application Developer (CKAD), and Certified Kubernetes Administrator (CKA).
All in all, it’s safe to say that both platforms provide enough opportunities to train your team. That said, Kubernetes has a larger community that offers more options than Nomad.
In this article, a number of aspects that differentiate Nomad from Kubernetes have been addressed. But which of the two platforms should you choose? The answer will largely depend on your use case, so it’s a good idea to review the pros and cons of each platform.
Advantages of Kubernetes:
- Huge community
- Healthy tooling and third-party integration ecosystem
- Constant innovation through the continuous release of new versions
- Wide availability of talent and training opportunities
- Best if your organization needs an end-to-end container orchestration solution
Disadvantages of Kubernetes:
- Difficult to configure and deploy
- Limited to containerized workloads
- It’s a far more complex platform than Nomad
Advantages of Nomad:
- Easy to deploy, allowing consistent configurations regardless of OS
- Binaries and packages available for Linux and macOS
- In general, it’s a simpler platform than Kubernetes
- Ideal for managing virtualized, containerized, and standalone applications workloads under a single platform.
Disadvantages of Nomad:
- Smaller community
- Fewer tools and integrations available
- Due to more limited training opportunities, it can be more difficult to find talent specialized in Nomad compared to Kubernetes
As you’ve seen in the course of this comparison, deciding whether Nomad or Kubernetes is best for you will largely depend on your requirements. If your use case involves multiple types of workloads, then Nomad may be a better choice. However, if a comprehensive tooling and a third-party integration ecosystem is more important to you, perhaps you should favor Kubernetes.
Photo by Ian Taylor on Unsplash