DevOps teams choosing to deploy Kubernetes today have a variety of distributions to choose from. They all provide the same core platform, Kubernetes, but differ significantly in how they implement Kubernetes, as well as the additional features or offerings they bundle together with Kubernetes. Depending on your team’s priorities, one distribution may be more suitable than others.
To provide guidance for deciding which Kubernetes distribution is best for different use cases, this article compares the main features of the top six Kubernetes distributions starting in 2021.
What is a Kubernetes distribution?
Teams that decide to run Kubernetes usually don’t go out and build Kubernetes from source code and then configure it themselves. Instead, they choose a Kubernetes distribution to deploy.
Kubernetes distributions simplify deployment and management by providing prepackaged versions of the Kubernetes platform that are easy to install. Most distributions also offer built-in management tools to provide administrative functionality that is absent from Kubernetes.
The concept of Kubernetes distributions is analogous to Linux distributions. Just as virtually no one installs Linux by compiling the kernel and hundreds of applications from source, almost no one installs Kubernetes from source. They use a distribution that groups binaries with administrative tools, which makes deployment and ongoing management much easier.
Comparison of Kubernetes distributions
Arguably the six most influential Kubernetes distributions available today include (in no particular order) Red Hat OpenShift, Rancher, Amazon EKS, Google GKS, Azure AKS, and DigitalOcean Kubernetes
.
The following is a comparison of the salient features of each distribution and the notable differences.
OpenShift
Red Hat (which was acquired by IBM in 2018) released the first version of OpenShift in 2011, though the company didn’t start integrating Docker containers into OpenShift until 2014. Therefore, in its early years, OpenShift was a separate platform that had nothing to do with Kubernetes.
Today, OpenShift relies closely on Kubernetes, but its roots as a different kind of platform still show up sometimes. For example, OpenShift provides its own administrative tool, oc, which is similar but not identical to Kubernetes’ native kubectl tool. That’s one way OpenShift is different from other distributions.
OpenShift is also a highly “stubborn” Kubernetes distribution in the sense that it expects DevOps teams to take certain approaches to how they manage clusters. For example, while Kubernetes can work with a variety of logging tools, OpenShift uses a specific logging stack based on Kibana, Fluentd, and Elasticsearch, or alternatively allows administrators to add and manage records using a tool like Mezmo, formerly known as LogDNA.
OpenShift also runs only on Red Hat’s own operating systems, Red Hat Enterprise Linux, or Container Linux. This is another important difference between OpenShift and other distributions, most of which are compatible with any Linux-based operating system (and which can also run worker nodes on Windows).
On the other hand, OpenShift provides great flexibility regarding where clusters run. OpenShift can be deployed in any major public cloud or on-premises. Red Hat also offers its own hosted SaaS version of OpenShift, which is called OpenShift Online.
All in all, OpenShift is a good choice for teams that want a battle-proven enterprise-class Kubernetes distribution that doesn’t lock them into a specific hosting model. But they will face some degree of lock-in from the specific tools Red Hat incorporates into OpenShift.
Despite
being acquired by SUSE in 2020, Rancher remains perhaps the most flexible of all Kubernetes distributions regarding where and how it can be deployed. It works with any conventional Linux-based operating system and can be deployed in any public or on-premises cloud. There’s no sign yet that SUSE has plans to make Rancher more restrictive in this regard.
Rancher also stands out for its strong support for multi-cluster management, which became a major focus of distribution before other distributions paid so much attention to use cases that required multiple clusters. Rancher can even manage multiple clusters that span across multiple clouds, making it a great choice for teams with multi-cloud architectures.
Amazon
EKS
Amazon Elastic Kubernetes
Services, or EKS, is a Kubernetes service managed on AWS, Amazon’s cloud. It offers quick and easy deployment of Kubernetes clusters on Amazon-hosted infrastructure. EKS also integrates with most of Amazon’s cloud-native monitoring and management tools.
A major limitation of EKS is that, for now, it only runs in the EKS cloud. In late 2020, Amazon introduced a variant (called EKS Anywhere) that can also deploy and manage Kubernetes clusters hosted on on-premises infrastructure, but the information available to date does not suggest that EKS Anywhere works with third-party clouds. For teams with multi-cloud architectures, or teams that are worried about being locked into the EKS ecosystem, this could be a challenge.
Google GKE Google Kubernetes Engine, or
GKE,
is Google Cloud’s managed Kubernetes service. It is similar to Amazon EKS and Azure AKS in most ways, including the fact that it can be used to deploy and manage clusters on Google Cloud’s own infrastructure.
That said, GKE
can also be used to deploy and manage clusters running on-premises or in other clouds when combined with Anthos, a hybrid cloud and multi-cloud platform based on GKE. This makes GKE a good solution for teams that want the ability to leverage multiple public clouds at once while enjoying the simplicity of a fully managed, cloud-based Kubernetes environment.
Azure AKS
Azure
Kubernetes Service, or AKS, is Microsoft’s answer to GKE and EKS. It is similar to these Kubernetes managed services in most ways.
However, like GKE, AKS can be extended to accommodate a hybrid or multi-cloud architecture. In the case of AKS, teams would do this using Azure Arc, which allows you to use AKS to manage Kubernetes clusters running in non-Azure public clouds (as well as on-premises). From this perspective, AKS provides a level of deployment flexibility similar to Anthos, but is currently absent from EKS.
For
teams looking for a managed Kubernetes
platform but don’t want to rely on one of the “Big Three” cloud providers (Amazon, Azure, and Google), DigitalOcean, which is a smaller cloud provider, offers a compelling alternative
.
Like GKE, EKS, and AKS, DigitalOcean provides infrastructure to host Kubernetes and management tools through the DigitalOcean console to deploy and manage clusters. Although DigitalOcean Kubernetes doesn’t integrate with any hybrid or multi-cloud framework the way many other Kubernetes distributions do, it offers ease of deployment and management.
Conclusion
Factors to consider when selecting a Kubernetes distribution include what deployment models it supports, whether it can run across multiple clouds, what types of tools it does or does not require, and how easy it is to deploy. With so many options on the market, it’s easy for DevOps teams to find a Kubernetes distribution that suits their particular needs.