DevOps teams that choose to deploy Kubernetes today have a variety of distributions to choose from. All of them provide the same core platform – Kubernetes – but they differ significantly in the way they implement Kubernetes, as well as in the add-on features or offerings that they bundle alongside Kubernetes itself. Depending on your team's priorities, one distribution may be a better fit than others.
To provide guidance in deciding which Kubernetes distribution is best for different use cases, this article compares the main features of the top six Kubernetes distributions as of 2021.
Teams that decide to run Kubernetes typically don't go out and build Kubernetes from source code and then set it up themselves. Instead, they choose a Kubernetes distribution to deploy.
Kubernetes distributions simplify deployment and management by providing pre-packaged 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 itself.
The concept of Kubernetes distributions is analogous to Linux distributions. Just as virtually no one installs Linux by compiling the kernel and hundreds of apps from source, almost no one installs Kubernetes from source. They use a distribution that bundles binaries with administrative tools, making deployment and ongoing management much easier.
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 each distribution's standout features and notable differences.
Red Hat (which was acquired by IBM in 2018) released the first version of OpenShift all the way back in 2011, although the company didn't begin integrating Docker containers into OpenShift until 2014. Thus, in its early years, OpenShift was a separate platform that had nothing to do with Kubernetes.
Today, OpenShift is based closely on Kubernetes, but its roots as a different type of platform still show through at times. For example, OpenShift provides its own administrative tool, oc, which is similar but not identical to Kubernetes's native kubectl tool. That's one way in which OpenShift is different from other distributions.
OpenShift is also a highly "opinionated" Kubernetes distribution in the sense that it expects DevOps teams to take certain approaches to the way they administer clusters. For example, while Kubernetes itself can work with a variety of logging tools, OpenShift uses a specific logging stack based on Kibana, Fluentd, and Elasticsearch, or, alternatively, allows admins to aggregate and manage logs using a tool like 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 run worker nodes on Windows, too).
On the other hand, OpenShift provides a great deal of flexibility with regard to 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-tested, enterprise-class Kubernetes distribution that doesn't lock them into a specific hosting model. But they will face some degree of lock-in to the specific tooling that Red Hat builds into OpenShift.
Despite being acquired by SUSE in 2020, Rancher remains perhaps the most flexible of all Kubernetes distributions with regard to where and how it can be deployed. It works with any mainstream Linux-based operating system, and it can be deployed in any public cloud or on-premises. There is no sign yet that SUSE has any plans to make Rancher more restrictive in this sense.
Rancher also stands out for its robust support for multi-cluster management, which became an important focus of the distribution before other distributions were paying as much attention to use cases requiring multiple clusters. Rancher can even manage multiple clusters that are spread across multiple clouds, which makes it a great choice for teams with multi-cloud architectures.
Amazon Elastic Kubernetes Services, or EKS, is a managed Kubernetes service in AWS, the Amazon cloud. It offers fast and easy deployment of Kubernetes clusters to infrastructure that is hosted by Amazon. EKS also integrates with most of Amazon's native cloud monitoring and management tools.
One major limitation of EKS is that, for now, it runs only in the EKS cloud. In late 2020, Amazon introduced a variant (called EKS Anywhere) that can deploy and manage Kubernetes clusters hosted on on-premises infrastructure as well, but the information available to date does not suggest that EKS Anywhere will work 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 Kubernetes Engine, or GKE, is Google Cloud's managed Kubernetes service. It's 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 paired 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 still enjoying the simplicity of a fully managed, cloud-based Kubernetes environment.
Azure Kubernetes Service, or AKS, is Microsoft's answer to GKE and EKS. It's similar to these managed Kubernetes services in most respects.
Like GKE, however, AKS can be extended to fit a hybrid or multi-cloud architecture. In the case of AKS, teams would do this by using Azure Arc, which makes it possible to use AKS to manage Kubernetes clusters running on public clouds other than Azure (as well as on-premises). From this perspective, AKS provides a level of deployment flexibility that is similar to that of Anthos, but is currently absent from EKS.
For teams that are looking for a managed Kubernetes platform but don’t want to depend on one of the “Big Three” cloud providers (Amazon, Azure, and Google), DigitalOcean, which is a smaller cloud vendor, offers a compelling alternative.
Like GKE, EKS, and AKS, DigitalOcean provides both infrastructure for hosting Kubernetes and management tooling via the DigitalOcean console for deploying and administering clusters. Although DigitalOcean Kubernetes doesn’t integrate with any hybrid or multi-cloud frameworks in the way that many other Kubernetes distributions do, it does offer ease of deployment and management.
Factors to consider when selecting a Kubernetes distribution include which deployment models it supports, whether it can run in multiple clouds, which types of tools it does or doesn't 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 fits their particular needs.