Kubernetes is a FOSS (free and open-source software) container orchestration tool originally developed in 2014 by Google, to manage its own infrastructure. Now under the auspices of the Cloud Native Computing Foundation (CNCF), it has overtaken other contenders, such as Apache Mesos and Docker Swarm, to become the de facto choice for container orchestration. Although K8s (as it is often referred to) is available to download and run manually, there is a great deal of overhead (in time and expertise) in having to manage this yourself. As such, managed instances of K8s have exploded in popularity, particularly for the big three Cloud Service Providers (CSPs) - AWS, AZ, and GCP. All such offerings will manage the back end (control plane and nodes), allowing the customer to concentrate on the application or service they wish to deploy. Having said all that, there are differences between the services the CSPs provide.
These are some of the general strengths and weaknesses of the three CSPs with their managed Kubernetes offerings:
|AWS is well-established, and technologies like Terraform work well with it.
|While setting up an EKS cluster is straightforward, adding and configuring node pools is more difficult.
|EKS nodes allow for further customization. This enables you to customize your operating system and configure servers to meet your specific requirements.
|In comparison to Google's GKE auto-updates, node updates are not automated.
|AWS is the most popular cloud platform and provides a wide range of extra services.
|In comparison to GKE auto-recovery, nodes do not automatically recover from kubelet failures.
|If you're a .NET or Microsoft shop, AKS offers first-rate Windows assistance.
|In comparison to GKE and EKS, AKS is a relatively new technology. As a result, a large number of features are still in alpha or beta.
|Integration with Visual Studio.
|Node updates are not automatic, compared to GKE auto-updates.
|Azure Active Directory integration for cluster authentication.
|Nodes do not automatically recover from kubelet failures, compared to GKE auto-recovery.
|Google Cloud Platform Pros
|Google Cloud Platform Cons
|The command line tool and online UI in GKE make deploying a Kubernetes cluster a breeze.
|GKE does not allow for deeper customization of your underlying hardware.
|The cluster version and node pools may be updated with a single click.
|GKE uses managed cluster addons (kube-dns, ip-masq-agent) that aren't extremely customizable by end users.
|When the underlying kubelet has difficulties, node pools may be set to self-heal, avoiding manual intervention.
To get a detailed breakdown of the various features each CSP offers, you can use Txture’s Cloud Insider (the Cloud Freelancer tier has some restrictions, but is free to sign up for) to compare the offerings in detail. While some features are similar, such as role-based access control, container runtime and supported containers, there are some differentiators:
AWS does not support many of the more advanced features, but is the only offering that supports bare metal nodes. It is also, unfortunately, the only one of the three to charge for the control plane.
Azure has many of the advanced features, but not as many as GCP, and it doesn’t offer fully managed K8s, which both AWS and GCP do. But it does offer the largest nodes per cluster (5000), and is the only one to offer deep Azure Active Directory integration.
GCP offers the most features, and is the only CSP to offer automatic version upgrades, as well as monthly free credits. The only things it doesn’t support is bare metal and app secret encryption.Snippet of the cloud service feature comparison table within Cloud Insider
For each Amazon EKS cluster you build, you pay $0.10 per hour. On AWS, you may use Amazon Elastic Compute Cloud (Amazon EC2) or AWS Fargate to operate EKS, and on-premises, you can use AWS Outposts. You pay for the AWS resources you allocate to run your Kubernetes worker nodes if you use Amazon EC2. If you utilize AWS Fargate, price is dependent on the amount of vCPU and RAM consumed from the time you start downloading your container image until the Amazon EKS pod finishes, rounded up to the closest second. The cost for Amazon EKS on AWS Outposts is straightforward and identical to that of the cloud: you pay $0.10 per hour.
AKS seems to be the most efficient and cost-effective container service on the market since it charges only for the virtual machines and associated storage and networking resources used.
Autopilot clusters are charged a fixed rate of $0.10 per hour, plus the CPU, memory, and ephemeral storage resources used by your presently scheduled Pods. There is no minimum duration for Autopilot resources; they are charged in 1 second increments.
Clusters formed in Standard mode incur a maintenance cost of $0.10 per cluster per hour. GKE employs Compute Engine instances as worker nodes in the cluster in Standard mode. The cost of Compute Engine resources is calculated per second, with a one-minute minimum use fee.
The $0.10 per cluster per hour (paid in 1 second increments) cluster administration cost applies to all GKE clusters.
You can look at a detailed price breakdown in Cloud Insider by creating a project and selecting varying solutions to compare. Further comparisons can be made between on-demand and spot pricing, as well as multi-year commitments.
Ultimately, the best CSP K8s platform will depend on the needs of the project or company, which is why a detailed examination of each offering is the only way to reach an informed decision. In general, one can summon up the three as follows:
For more cloud product feature comparisons take a look at the Cloud Insider. It contains detailed information of over 1,000 cloud products from 10 different providers and serves as the knowledge base for the cloud target architecture proposal in Txture Cloud Transformation.
Do you already want to know more about Txture's Cloud Transformation Platform and want to discuss how Txture can facilitate the cloud journey of your organization? Feel free to get in touch and book your own demo session!