Managed Kubernetes Services Compared: GKE vs. EKS vs. AKS
By: Bharat Arimilli
Tags: Programming, Kubernetes, Azure, AWS, Google Cloud Platform

Summary

Google Kubernetes Engine (GKE)

By far the easiest-to-use and most feature-rich managed Kubernetes solution. If you have no particular allegiance to any cloud platform and you just want the best Kubernetes experience, look no further.

GKE workloads view in the Google Cloud Console.

The fact that GKE sets the bar for managed Kubernetes is no surprise considering Kubernetes was designed by Google. GKE also had a nearly three-year head-start on its competitors — ample time to mature and gain features.

GKE offers a rich out-of-the-box experience that that gives you integrated logging and monitoring, with Google’s excellent Stackdriver ops tool and full visibility into your workloads and resource usage from the GCP web console. GKE’s CLI experience also offers you full control over your cluster configuration, making cluster creation and management remarkably simple. Simply put, GKE clusters are production-ready out-of-the-box with everything you need to immediately start deploying workloads.

With Google managing so much for you, you lose a little bit of control if you wish to fully customize your cluster. Still, beyond this, GKE is hard to fault. It’s the best managed Kubernetes experience, bar none.

Azure Kubernetes Service (AKS)

A great out-of-the-box experience with powerful development tools and quick Kubernetes updates. It’s the obvious choice for those already in the Microsoft/Azure ecosystem and a strong alternative to GKE for everyone else.

AKS cluster insights view in the Azure Portal.

Although it doesn’t quite reach the heights of GKE, AKS has a great out-of-the-box experience with features like logging, monitoring, and metrics. A new Azure portal feature now gives you full visibility into your cluster workloads, although GKE still offers more comprehensive metrics and functionality. After a series of redesigns, Azure’s portal has gone from being a cluttered and confusing mess to a genuinely pleasant experience. Beyond the much-improved portal, AKS also has a strong CLI experience that gives you comprehensive control over your cluster. Clusters are easy to create and manage and are production-ready.

A downside with Azure as a platform is that it’s the least reliable of the three primary cloud providers. In terms of percentage uptime and sheer number of outages, Azure lags behind AWS and GCP. This doesn’t mean its unusable — plenty of big companies continue to rely on Azure — but it is something to keep in mind.

Besides some potential downsides, AKS remains a fantastic managed Kubernetes service. Although GKE is the better option for most, Azure has a few primary benefits. If you have an existing presence on Azure or use existing Microsoft tools like 365 or Active Directory, AKS is a natural fit. For everyone else, cheaper pricing with free control planes, fast Kubernetes updates, useful development tooling with VS Code and a seamless serverless compute option all mean that AKS is a strong offering worth considering.

Amazon Elastic Kubernetes Service (EKS)

The weakest Kubernetes offering in terms of feature support, ease-of-use and out-of-the-box experience. Pick it if you must be on AWS or if you want the ability to fully control your Kubernetes cluster.

EKS cluster view in AWS Management Console.

In contrast to the easy-to-use very managed approach GKE and AKS take, Amazon Elastic Kubernetes Service (EKS) leaves you to manage a lot of configuration yourself. You’ll spend a lot of time manually configuring IAM roles and policies, as well as installing various pieces of functionality yourself. You don’t get any visibility into your cluster or workloads by default. The EKS web interface as well as CLI are sparse and extremely limited to a handful of operations.

Third-party tools like the terraform-aws-eks Terraform module and the eksctl command-line tool fill in a lot of the frustrating gaps with EKS’s management experience. Both automate and abstract a fair bit of cluster creation and management complexity. eksctl , specifically, provides the fully-featured CLI experience that AWS does not give you. However, even these tools can only go so far. Because this functionality isn’t native to EKS, even if these tools abstract some complexity, you’re still ultimately responsible for maintaining it.

EKS does work very well if you want more control over your cluster. By being relatively hands-off on the management front, you also get a clean slate to fully customize whatever you need to, if you’re so inclined. EKS is also the only service here with bare metal node support and support for bringing your own machine images.

Ultimately, EKS’s greatest strength is that it’s an AWS service. It lives within one of the strongest and most mature cloud platforms with rock-solid reliability, a wide range of very popular services and a massive developer community.