Due to the success of our Kubernetes vs Docker Swarm blog post, and the increasing popularity of Kubernetes as one of the most powerful container orchestration tools, today we are going to review the managed Kubernetes services offered by the leading Public Cloud Providers: Amazon Web services, Azure and google cloud

 

Amazon Web Services (EKS)

 

Made generally available in June 2018, Amazon EKS is an Amazon solution for hosting Kubernetes. AWS tried to encourage users to use its cluster orchestrator platform Amazon Container Services before launch Kubernetes Managed Services.

 

Azure (AKS)

AKS was also made generally available in June 2018, similar to what Microsoft did with its legacy orchestration service. Microsoft already has some experience with cluster orchestrators through its older Azure Container Service, which supported Kubernetes, Apache Mesos, and Docker Swarm.

 

Do you want to talk to us now?

Google Cloud (GKE)

Google is the original creator of Kubernetes, so naturally, GKE was the first managed Kubernetes service on the market – and is one of the most advanced solutions currently available.

Feature Comparison

In this section, we compare the key features of the three providers. Following this table, we’ll provide a deeper analysis of each feature.

  Amazon EKS Microsoft AKS Google GKE
Supported Kubernetes version(s) 1.18
1.17
1.16
1.15
1.20
1.19
1.18
1.17
1.17
1.16
1.15
1.14
Service Launch Date June 2018 June 2018 August 2015
CNCF Kubernetes Conformance Yes Yes Yes
Control-plane Upgrade Manual
User must also manually update the system services that run on nodes (e.g., kube-proxy, coredns, AWS VPC CNI)
Manual
All system components update with cluster upgraded
Automatic (default) or Manual
Node Upgrade Manual
EKS will drain and replace nodes
Automatic or manual
AKS will drain and replace nodes
Automatic (default)
GKE drains and replaces nodes
Node OS Linux:
Amazon Linux 2 (default)
Ubuntu (Partner AMI)
Bottlerocket
Windows:
Windows Server 2019
Linux:
Ubuntu
Windows:
Windows Server 2019
Linux:
Container-Optimized OS (COS) (default)
Ubuntu
Windows:
Windows Server 2019
Windows Server version 1909
Container Runtime Docker (default)
Containers (through Bottlerocket)
Docker (default)
Containerd
Docker (default)
Containerd
GVisor
High Availability Cluster Control plane is deployed across multiple Availability Zones (default) Control plane components will be spread between the number of zones defined by the Admin Zonal Clusters:
Single Control Plane
Regional Clusters:
Three Kubernetes control planes quorum
Control Plane SLA 99.95% 99.95% 99.95%
Pricing $0.10/hour (USD) per cluster + standard costs of EC2 instances and other resources Pay-as-you-go: Standard costs of node VMs and other resources $0.10/hour (USD) per cluster + standard costs of GCE machines and other resources
GPU support Yes (NVIDIA) Yes (NVIDIA) Yes (NVIDIA)
Required install device plugin Required install device plugin Required install device plugin
Compute Engine A2 VMs
RBAC Yes Yes Yes
Control Plane: Log Collection Optional
Default: Off
Logs are sent to AWS CloudWatch
Optional
Default: Off
Logs are sent to Azure Monitor
Optional
Default: Off
Logs are sent to Stackdriver
Container Performance Metrics Optional
Default: Off
Metrics are sent to AWS CloudWatch Container Insights
Optional
Default: Off
Metrics are sent to Azure Monitor
Optional
Default: Off
Metrics are sent to Stackdriver
Node Health Monitoring No Kubernetes-aware support; if node instance fails, the AWS autoscaling group of the node pool will replace it Auto repair is now available. Node status monitoring is available. Use autoscaling rules to shift workloads. Node auto-repair enabled by default
Serverless Compute AWS Fargate Azure Container Instances Cloud Run for Anthos
On-Prem Services Via AWS Outposts Yes Via Anthos GKE On Prem through Google’s Connect service for multicluster management, in a vSphere 6.5 or 6.7 environment

Note: The Cloud services evolve very quickly, so some of these details may be out of date.

Conclusion

As you can see, all the Managed Kubernetes Services offered by the three big public cloud providers cover the main features for Kubernetes cluster management such as cluster management, scalability, fault tolerance, automation, monitoring and services integration with third-party solutions.

As Google is the Pioneer of Kubernetes technology, GKE has greater integration and it is the first one to launch with agility new features and compatibilities. For EKS, the main advantage is having the backup of the best Cloud computing platform. Users usually choose AWS due to the efficient support they get from the platform. And last but not least Azure AKS, is very close to AWS EKS and GOOGLE GKE, they have more or less the same functionalities and characteristics, so choosing this solution will depend mainly on where applications are hosted, most of the big corporates opt for AKS because the Core of their business uses Windows or is hosted in Azure.

 

Get to Know how we can help you to implement and manage your Kubernetes Cluster.

 

Are you running a managed Kubernetes service now? Which is your favorite?