There is a continuous growth of Kubernetes since its first release 6 years ago. Kubernetes is a rapidly developing open source project, is targeted to resolve the problems of Microservices applications that use containers or Dockers. Various cloud companies are providing Kubernetes implementation over their infrastructure. To ensure the safety and consistency over the Kubernetes offerings, CNCF notes the 90 offerings for Kubernetes. CNFC has 3 core tenets to focus on,

1) Consistency: It ensures consistent user interaction.

2) Timely updates: Regular updates from Kubernetes vendors to make sure the clients get the latest features of Kubernetes.

3) Confirmability: Verifying the conformability by ensuring by running the running Sonobuoy an open-source conformance application.

These are the basic guidelines for the cloud providers but the cloud providers have a large ecosystem supporting many features of Kubernetes.

In this article DevSamurai Vietnam will compare the fastest-growing and managing cloud providers:

  1. Amazon’s Elastic Kubernetes Service (EKS)
  2. Microsoft’s Azure Kubernetes Service (AKS)
  3. Google’s Kubernetes Engine (GKE)
  4. IBM Cloud Kubernetes services.

Starting from supported versions, to the security and Add-ons we will compare all the information for all these Kubernetes providers side-by-side.

1. Supported Version:  

All the cloud provides support for the latest versions, and update them regularly, but AKS is quicker to new versions along with the support of patches. AKS’s well-planned move to migrate customers from existing versions to the latest versions helps clients for smoother migrations. GKE supports the 1.17 to 1.14 along with 4 minor versions, where EKS supports 1.15 as default Kubernetes versions.

2. Upgrade and maintenance:

While you select the cloud providers, one concern is of upgrading the control plane and worker nodes. GKE automatically updates the worker nodes and control planes along with detecting and fixing unhealthy nodes. But EKS and AKS are fully manual. This increases the burden on the developers. IKS gives both the option, manual and automated to update the plane.  

3. Autoscaling:

Autoscaling enables the application to scale-up and scale-down as required.

EKS, GKE enables the cluster auto-scaling and vertical pod autoscaling whereas AKS fails to provide vertical pod autoscaling. IKS requires external scripts to automate the scaling process.

Autoscaling Google Kubernetes Engine – GKE Amazon Elastic Kubernetes Service – EKS Azure Kubernetes Service-AKS IBM Cloud Kubernetes Service – IKS
Cluster Autoscaling Yes Yes Yes Additional scripts
Autoscaling Profile Balanced and Optimize Utilization Balanced and Optimize Utilization Balanced and Optimize Utilization  
Vertical Pod Autoscaling Yes Yes No  
Kubernetes auto scaling
Image credit : sdtimes

4. Security:

 Encryption secrets provided by GKS, AKS, IKS, etc are used their Keyvalue or key pair provided by a particular cloud provider. The key for encryption is configurable, and all provide the network policy support. By default, all the Kubernetes service provides are providing the network policy support, whereas it can be enabled when the clusters are created and cannot enable network policy on existing AKS clusters.

Security Google Kubernetes Engine – GKE Amazon Elastic Kubernetes Service – EKS Azure Kubernetes Service-AKS IBM Cloud Kubernetes Service – IKS
Encryption AWS KMS Azure KMS (KeyVault) Azure KMS (KeyVault) IBM Key Protect
Key for encryption Configurable Managed by EKS Managed by AKS Configurable
Network policy support Yes (Calico) Yes ( Calico) Yes (Azure, Calico) Yes (Calico)

5. Service Level Agreement:  

It’s good to check the SLA’s before deciding on the Kubernetes provider. GKE and EKS go very similar to support financially backed SLA, whereas for AKS you need to opt-in. SLA’s provided by EKS, AKS is 99.95%, and 99.5% zonal and regional respectively.

Availability Google Kubernetes Engine – GKE Amazon Elastic Kubernetes Service – EKS Azure Kubernetes Service-AKS IBM Cloud Kubernetes Service – IKS
SLAs 99.5% (zonal), 99.95% (regional) 99.95%  99.95% (with azure), 99.9% (without azure) 99.9% (single-zone region), 99.99% (multi-zone region)
Financially backed SLA Yes Yes Opt-in  
Multizone Clusters Yes Needs help Yes  

6. Nodes:

Ubuntu / Linux is mostly the preferred OS for developers but many work on windows servers. Here is the table which describes the preferred OS system for cloud provides.

Nodes Google Kubernetes Engine – GKE Amazon Elastic Kubernetes Service – EKS Azure Kubernetes Service-AKS IBM Cloud Kubernetes Service – IKS
Container runtime Docker, containerd Docker Docker containerd
Container Networking Cilium , Native GKE CNI Amazon VPC CNI Kubernetes Azure CNI Calico
Bare metal nodes support No Yes No Yes
GPU nodes Yes Yes Yes Yes
TPU nodes Yes No No Additional work
Node Auto-repair Yes No Yes Additional work

Since Docker is mostly expected as a container runtime, we are very eager to know the action of these provides as Kubernetes will deprecate the Docker.

7. Relative service:

It’s good to know if they provide support relative services like container registry, service mesh, Knatives, etc. Having these supportive features with Kubernetes enables the faster development of projects.

Related Service Google Kubernetes Engine – GKE Amazon Elastic Kubernetes Service – EKS Azure Kubernetes Service-AKS IBM Cloud Kubernetes Service – IKS
Container Registry Yes Yes Yes No
Service Mesh Beta version Yes Needs script  No
Knative  Yes No No No

In comparison to all these 4 Kubernetes cloud providers, GKE and AKS are leading in providing preview and access to the new Kubernetes releases. All of the providers the recent features of Windows containers and GPUs.

Features of how to manage cloud service Kubernetes

1) Integration with additional services: the manage cloud providers needs to integrate with cloud services. Services like storage, networking, maintenance and monitoring, load-balancing, and traffic management.

2) Scalability: Automated scaling by providing the resources is vital for the success of Kubernetes applications.

3) Fault Tolerance: Kubernetes is highly fault-tolerant. Manage cloud service may have issues with fault tolerance.

4) Feature Support: Some Kubernetes features may not be supported in specific OS.

TakeAway:

The data in this article come from the official site of Kubernetes. While you select the provider, it’s good to compare the pricing as it could depend on regions, sample cluster size, and workload. Compare the performance difference between the providers, including the features like logging, private network, and container image scanning. Some of these features may include an additional cost.

To get accurate pricing, test the service features with the stack you would be working on. This will give you accurate pricing and performance data for your projects. Choose successfully achieve your goals, consider choosing the right manage cloud service for Kubernetes. Manage cloud service plays a key role in your technology life.

 

Menu