Google Kubernetes Engine (GKE) vs. Azure Kubernetes Service (AKS)
Microsoft’s Azure Kubernetes Service (AKS) is the second most popular managed Kubernetes offering after Amazon’s Elastic Kubernetes Service (EKS), according to The State of Kubernetes and Container Security Survey Winter 2020. Lately, AKS has been facing stiff competition from Google Kubernetes Engine (GKE).
GKE is growing faster than any competing managed Kubernetes service. The battle for the second position is heating up. Most industry experts expect GKE to overtake AKS anytime soon.
GKE is gaining huge grounds at the expense of EC2 and self-hosted Kubernetes. For organizations invested in Microsoft’s technologies and tools, no doubt, AKS offers the most natural route to their application modernization efforts. But the feature gap between AKS and GKE is substantial, and AKS has a lot of catchups to do. GKE is perhaps the most advanced offering in the market and is the obvious choice for organizations moving to managed Kubernetes.
Google Kubernetes Engine (GKE) vs. Azure Kubernetes Service (AKS)
According to the same report mentioned above, AKS increased by 31% while GKE grew a whopping 75% compared to Spring 2019. They both capture 21% of the market share behind Amazon Elastic Kubernetes service, which has 37% of it. GKE growth can be attributed to a superior feature set and Google’s credibility with Kubernetes as the creator. AKS is more common among Microsoft partners and Azure developers.
Let’s see how AKS and GKE compare against each other and which is a better choice.
If you want to run your application on the latest version of Kubernetes, then you will be a little out of luck as both AKS and GKE still run v1.16 (also v1.15 & v 1.14) as the stable version of Kubernetes. While GKE allows users to preview Kubernetes v1.7, AKS is little ahead in its offering, allowing users to preview both Kubernetes v1.17 and v1.18.
Managed Kubernetes service providers are a little slower rolling out the latest version of Kubernetes. Microsoft is perhaps the only major cloud vendor that is allowing users to test their applications on Kubernetes v1.18.
Google, no doubt, presents a better offering when it comes to allowed quotas on its managed Kubernetes service GKE. With GKE, you can run up to 50 clusters /zones in addition to 50 regional clusters. AKS also allows you to run 100 clusters/regions.
If you go through Kubernetes architecture, each cluster has a number of nodes. These nodes are distributed in a node pool, and each node has a number of pods.
GKE allows 5000 nodes per cluster and 1000 nodes per node pools. GKE doesn’t document how many node pools it allows. However, you are restricted to 110 pods/ nodes.
Comparatively, AKS quota limits are a little conservative. It allows just 1000 nodes per cluster and 100 nodes per node pool. It allows up to 10 node pools. However, it has a larger pod limit; AKS users can run 250 pods/ nodes.
AKS doesn’t charge anything for the control plane, while GKE bills you per hour for each control plane in use. As of writing the article, it was 10 cents/hour/control plane. EKS also charges at the same rate.
If cost is your top priority, perhaps you should consider AKS at the moment.
Upgrades and Maintenance
GKE has the upper hand over AKS when it comes to upgrades. GKE is a lot less hassle as it allows automatic upgrades to its control plane and worker nodes. If you’re on AKS, you probably have to manually upgrade the control plane and worker nodes every time, which slows the process down.
This may be hard to digest, but Microsoft’s AKS does support open source Ubuntu in addition to Windows Server. When it comes to operating system support, GKE supports Container Optimised OS in addition to Ubuntu and Windows Server.
According to experts, Container Optimized OS is a unique offering from Google Cloud and is tailor-made for containerized environments.
Container Runtime and Networking
While Docker is a standard container runtime nowadays that every managed Kubernetes service provider supports, including GKE and AKS, GKE has the added support for Containerd.
While Containerd support is a welcome move from Google, it won’t be a deal-breaker for most users.
For container networking, GKE has native GKE CNI while AKS has Azure CNI. If you’re looking for extra options, GKE supports Kubenet too. I wonder how many people prefer Kubenet in a managed environment.
Unlike EKS, none of the offerings has a builtin support for bare metal nodes. If you are a GKE user and want to user baremetal, you can consider taking a look at what Anthos offer.
GPU nodes are available on both GKE and AKS, while TPU nodes are only present in GKE.
Cluster auto-scaling and node auto-repair are present in both GKE and AKS.
When it comes to security, both GKE and AKS encrypt data at rest with Cloud KMS and Azure KMS, respectively. Encryption keys are configurable in Google Kubernetes Engine. Azure Kubernetes Service, on the other hand, manages the encryption keys for users.
For network policies, both use Calico. In addition, AKS also allows network policy support through Azure.
When it comes to service level agreements (SLAs), GKE commits to the uptime of 99.5% and 99.95% for zonal and regional settings. AKS commits to 99.95% uptime with az and 99.9 without it.
Without saying, both Microsoft Azure and Google Cloud are quite reliable cloud vendors and seldom go down.
Infrastructure as Code
Terraform support is available on GKE and AKS. Users would choose Terraform over built-in GCP and AKS provisioning processes most of the time. Terraform’s additional benefits, such as unified workflow, full lifecycle management, and graph of relationships, are hard to ignore.
Compliance and Standards
When it comes to compliance and standards, GKE and AKS hardly leave any stone unturned. There is support for HIPAA, SOC, ISO, and PCI DSS.
AKS and GKE are two of the most compelling options when making a move to Managed Kubernetes. GKE may have an edge with the number of added features over AKS. But at the end of the day, the choice comes down to the specific needs of your development team.
AKS, losing ground to GCE, has a lot of features to add to stay relevant in the field.
Nevertheless, the CloudPlex platform supports both these managed Kubernetes offerings from Google and Microsoft.
Get similar stories in your inbox weekly, for free
Share this story:
The improved AWS feature allows users to trigger Lambda functions from an SQS queue.
United States Defense Department Asks Amazon, Google, Microsoft, and Oracle to Bid on the JWCC Program
DoD looking to entrust cloud security to multiple vendors.
Google makes fuzzing easier and faster with ClusterFuzzLite
HTTP-based autoscaling and scale to zero capability on a serverless platform