Choose the Right Manage Cloud Service for Kubernetes

June 17, 2021
Mai Anh
kubernetes management cloud service

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.

AutoscalingGoogle Kubernetes Engine – GKEAmazon Elastic Kubernetes Service – EKSAzure Kubernetes Service-AKSIBM Cloud Kubernetes Service – IKS
Cluster AutoscalingYesYesYesAdditional scripts
Autoscaling ProfileBalanced and Optimize UtilizationBalanced and Optimize UtilizationBalanced and Optimize Utilization
Vertical Pod AutoscalingYesYesNo
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.

SecurityGoogle Kubernetes Engine – GKEAmazon Elastic Kubernetes Service – EKSAzure Kubernetes Service-AKSIBM Cloud Kubernetes Service – IKS
EncryptionAWS KMSAzure KMS (KeyVault)Azure KMS (KeyVault)IBM Key Protect
Key for encryptionConfigurableManaged by EKSManaged by AKSConfigurable
Network policy supportYes (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.

AvailabilityGoogle Kubernetes Engine – GKEAmazon Elastic Kubernetes Service – EKSAzure Kubernetes Service-AKSIBM Cloud Kubernetes Service – IKS
SLAs99.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 SLAYesYesOpt-in
Multizone ClustersYesNeeds helpYes

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.

NodesGoogle Kubernetes Engine – GKEAmazon Elastic Kubernetes Service – EKSAzure Kubernetes Service-AKSIBM Cloud Kubernetes Service – IKS
Container runtimeDocker, containerdDockerDockercontainerd
Container NetworkingCilium , Native GKE CNIAmazon VPC CNIKubernetes Azure CNICalico
Bare metal nodes supportNoYesNoYes
GPU nodesYesYesYesYes
TPU nodesYesNoNoAdditional work
Node Auto-repairYesNoYesAdditional 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 ServiceGoogle Kubernetes Engine – GKEAmazon Elastic Kubernetes Service – EKSAzure Kubernetes Service-AKSIBM Cloud Kubernetes Service – IKS
Container RegistryYesYesYesNo
Service MeshBeta versionYesNeeds script No
Knative YesNoNoNo

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 managed cloud service Kubernetes

1) Integration with additional services: Managed cloud provider 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 services 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.

Leave a comment