Google Kubernetes Engine (GKE) vs. Amazon Elastic Kubernetes Service (EKS)
Managed Kubernetes offerings from cloud providers have seen massive growth in adoption.
Organizations, at large, are moving their self-managed Kubernetes clusters hosted on compute clouds like EC2 to one of these offerings. Microsoft, Google, and Amazon all have encountered double-digit growth with their managed Kubernetes service.
Amazon’s AWS is, expectedly, leading the charge controlling more than 60% of the container and Kubernetes market. Amazon seems to be converting many of its EC2 customers to Elastic Kubernetes Service or EKS lately—its managed Kubernetes service. A lot of these customers have also moved to Google Kubernetes Engine (GKE), which is growing the fastest of the three. Yet Google’s Kubernetes offering remains a distant three of the lot and number five overall after EKS, DIY Kubernetes, EC2, and AKS.
It looks like a majority of Kubernetes installations are either self-hosted or on AWS (EKS + EC2). Google created Kubernetes before donating it to CNFC. It, to this date, remains the biggest promoter and contributor to Kubernetes open source project. GKE is growing fast enough to push Microsoft Azure Kubernetes Services (AKS) to number 3 spot in the near future, although EKS remains a distant first.
For an organization making a move from either EC2 or DIY Kubernetes, EKS and GKE make up for serious contenders and a difficult choice. Let’s see how these two managed Kubernetes services from Google and Amazon compare against each other.
Google Kubernetes Engine vs. Elastic Kubernetes Service
Google Kubernetes Engine is probably the only managed Kubernetes service in the block that can give EKS a run for its money feature for feature. On paper, GKE provides more features than any competing service from any cloud vendor, and Amazon is no exception. Then again, EKS offers the most complacent set of features an organization needs. The extras Google offering for the same cost should woo more users. Amazon doesn’t seem to care that much. It is adding more features to EKS every day, and there aren’t many deal-breaking features it doesn’t offer already.
Both GKE and EKS are currently running on v1.6 of Kubernetes. Users who want to test the next version of Kubernetes; GKE is already previewing v1.7 of Kubernetes. Though v1.8 is around for more than six months now, none of these managed Kubernetes services from two major cloud vendors are offering the latest version.
GKE has a little edge here but nothing significant, and it shouldn’t be a deal-breaker for most of the users. With a larger base, Amazon is no doubt a little conservative about upgrading Kubernetes versions.
Cluster, nodes, pods, and pools
EKS allocates a larger quota to the number of clusters it allows per region and number of pods per node. EKS lets you run 100 clusters per region and 737 pods per node while GCE caps these quotas to 50 and 110, respectively.
If your application needs more nodes and a larger node pool, GKE allows up to 5000 nodes per cluster and 1000 nodes per node pool. EKS limits this quota to 3000 nodes per cluster and 100 nodes per cluster.
Both Amazon and Google charge the same for EKS and GKE. That is 10 cents/hours/control plane.
EKS, surprisingly, doesn’t allow automatic updates to control plane and worker nodes and users have to go through the pain of manual upgrades, which is time-consuming. GKE allows automatic upgrades to control plane and worker nodes in addition to manual updates.
Operating system support
EKS allows you to use virtually any operating system you wish to use with its bring-your-own-OS offering. Of course, it officially supports Amazon Linux and AMI. For starters, there is Ubuntu, Windows Server, and Bottlerocket OS, a Linux-based open-source operating system that is purpose-built by Amazon Web Services for running containers on virtual machines or bare metal hosts.
GKE’s operating system choices are a little restricted. It supports Container Optimized OS, Ubuntu, and Windows Server. GKE playing catch-up with EKS, should expand the number of operating systems it offers to its users.
Containers runtime and networking
When it comes to runtime, Docker is standard across the board while GKE has added support of Containerd. While the addition of Containerd is a step forward from Amazon, it will not influence many choices.
For networking, there is Native GKE CNI and Amazon VPC CNI.
Both GKE and EKS have GPU nodes. Google’s offering lacks Bare metal nodes, while TPU nodes are missing on EKS.
GKE allows sandboxing via gVisor and has Node auto-repair as a feature. These two features are apparently missing on EKS.
Both the offerings encrypt data at rest with Cloud KMS and AWS KMS on GKE and EKS, respectively, support network policies via Calico and allow users to configure encryption keys.
Both Google and Amazon commit to 99.95 uptime in their service level agreements (SLAs).
Infrastructure as Code
Terraform support is available on GKE and EKS. Users prefer Terraform to built-in GCP and EKS provisioning processes for GKE and EKS clusters because Terraform provides additional benefits such as unified workflow, full lifecycle management, and graph of relationships.
At a time when many firms are receiving fines for non-compliance. Whether it is the European Union or the United States, compliance and standards like HIPAA, SOC, ISO, and PCI DSS matter more than ever. These are too many standards to adhere to.
Fortunately, both GKE and EKS support compliance with these standards.
A major reason EKS is the market leader when it comes to managing Kubernetes services is because of the hold-over effect of EC2 as one of the pre-Kubernetes orchestration services. When Amazon came up with Elastic Kubernetes Service, the benefits over plain, vanilla EC2 instances were obvious. We all know the pain of Kubernetes day-2 operation. Amazon makes it quite easier to move from one web service to another.
Google Kubernetes Engine was a better offering, to begin with. It always had more features than any competitor in the market, including EKS. Those extra features are finally paying off, GKE grew a whopping 75% compared to Spring 2019. To give you an idea, in the same time period, EKS climbed 37%, and AKS increased 31%, according to the State of Kubernetes and Container Security Survey Winter 2020.
Regardless of the market share, GKE remains the most promising managed Kubernetes service of the bunch. It will continue to capture more markets and add more features to compete with EKS, which will remain a market leader for a long time.