Edit 06/03/2020: Updated to include new GKE pricing.
As Kubernetes popularity has grown, more businesses have based their platform on the technology leading to Public Cloud vendors creating their own managed service offerings. Last week Amazon announced they have reduced their Elastic Kubernetes Service by 50% to $0.1 per hour. We thought it would be a great time to compare each of the main public cloud providers managed Kubernetes services.
Kubernetes Managed Services
Whilst Kubernetes offers an excellent platform to run containerised based applications on, it does become tricky to manage clusters at scale. This is primarily down to the frequency of change and the steep learning curve needed to administer a cluster whilst maintaining a strong security posture.
Public Cloud vendors saw an opportunity in the market to alleviate a lot of the administration issues associated with Kubernetes by managing the control plane and master nodes. This means that administrators no longer need to worry about installing Kubernetes or upgrading the cluster themselves. The Cloud Providers managed service also provide other benefits such as:
- Tightly integrated services – allowing the cluster to easily use other services
- Improved Networking & Security
- Logfile integration
- Autoscaling
These managed services do not customise the Kubernetes installation – allowing businesses the opportunity to move their platforms from one Public Cloud provider to another with limited migration work.
Amazon Web Services – Elastic Kubernetes Service
“Amazon Elastic Kubernetes Service (Amazon EKS) makes it easy to deploy, manage, and scale containerized applications using Kubernetes on AWS. EKS manages worker nodes for your cluster using latest EKS-optimized AMIs in your AWS account while node updates and terminations gracefully drain nodes to ensure your applications stay available.”
Amazons EKS is relatively new, having been launched in 2018 and slowly rolled out across regions. Due to its lack of maturity, it doesn’t quite have the features or development that its competitors have – but it is quickly catching up.
Google Cloud Platform – Google Kubernetes Engine
“Google Kubernetes Engine (GKE) is a managed, production-ready environment for deploying containerized applications. It brings our latest innovations in developer productivity, resource efficiency, automated operations, and open-source flexibility to accelerate your time to market.”
Launched in 2015, Google was the first major public cloud provider to offer a Kubernetes managed service. As such it has arguably the most mature set of features available including the ability to automatically install additional services such as Istio’s service mesh.
Microsoft Azure – Azure Kubernetes Service
“The fully managed Azure Kubernetes Service (AKS) makes deploying and managing containerised applications easy. It offers serverless Kubernetes, an integrated continuous integration and continuous delivery (CI/CD) experience, and enterprise-grade security and governance. Unite your development and operations teams on a single platform to rapidly build, deliver and scale applications with confidence.”
Since launching AKS in 2017, Microsoft has done a great job in developing the service to compete with Google’s GKE. AKS has an extensive list of mature features including Azure DNS integration and excellent SLAs.
Managed Service Comparison
EKS | AKS | GKE | |
Available Versions | 1.12, 1.13, 1.14 | 1.12, 1.13, 1.14 | 1.13, 1.14 |
Control Plane Costs | $0.1 per hour | Free | $0.1 per hour |
Kubernetes Upgrades | On Demand | On Demand | Automatic |
Regional Support | Partial Rollout | Global | Global |
Self Healing | No | No | Yes |
Managed Worker Nodes | Yes | Yes | Yes |
Node Auto Scaling | Yes | Yes | Yes |
Service Mesh Integration | App Mesh | No | Istio |
Documentation | Limited | Extensive | Limited |
SLA | 99.9% | 99.5% | 99.95% |
There isn’t an awful lot to distinguish these managed services from one another, and for that reason, it probably makes sense to stick with your current cloud provider, or if looking for a new managed service – compare the cloud provider‘s ecosystem (integration into your existing services).
Having said that if you’re looking for a winner, I believe that Google has a slight edge on their competition with features like self-healing, Istio service mesh integration. AKS offers no additional cost for managing the control plane whilst EKS & GKE charge $0.1 per hour (adding up to around $2.5 a day or $72 a month).