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.
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?