Another guest author and post today.
Kubernetes makes the management and deployment of containers much easier. However, maintaining the platform can be complicated and expensive so many companies opt to use managed Kubernetes services. This article provides an overview of Kubernetes as a Service (KaaS) and compares two of the top providers: Google Kubernetes Engine (GKE) and Amazon Elastic Kubernetes Service (EKS).
What Is Kubernetes?
Kubernetes is an open-source container management system. It enables you to automate the deployment, management, and scaling of containerized applications. Released by Google in 2015, it quickly became the standard for container orchestration. You can learn more about Kubernetes architecture and features by checking the Kubernetes documentation.
Some of the benefits of Kubernetes include:
You can deploy Kubernetes in almost any infrastructure. You can use it in the cloud, on-premises, with virtual machines, and with hybrid environments. Kubernetes is vendor agnostic, so you don’t have to worry about vendor lock-in.
Kubernetes enables you to scale workloads horizontally by simply adding more pods. Another useful feature is auto-scaling. You can set k8s to automatically change the number of pods to adapt to the CPU utilization.
The Kubernetes platform offers features such as self-healing to ensure high availability. Monitoring agents constantly check the health of pods and containers, removing and replacing unhealthy ones as needed. Load balancing features also help by distributing workloads across pods.
Why Run Kubernetes as a Service?
Kubernetes is relatively easy to work with in a development sandbox, but if you start working with it at enterprise scale you’ll hit a steep learning curve. You’ll need to master several non-trivial tasks:
- Provisioning━deploying machines and configuring them using configuration management tools like Chef or Ansible.
- Monitoring━identifying status of critical cluster components and troubleshooting issues.
- Security━integrating identity management for authentication, authorization and role management.
- Disaster recovery━while Kubernetes itself provides built-in fault tolerance, you may need to run a parallel cluster in a disaster recovery site for an added layer of high availability.
Each of these tasks are handled by Kubernetes management solutions, which eliminate the difficulty of installing and managing Kubernetes deployments. They provide built-in monitoring, automatic updates, and one-click deployments, even at very large scale. Kubernetes as a Service allows organizations to reduce the learning curve and get up and running much more quickly, even without specialized Kubernetes expertise on staff.
Comparison of EKS vs GKE
EKS and GKE are two of the top Kubernetes managed services providers. Many of their features are similar; features that are managed differently between both providers are highlighted below.
Amazon Elastic Kubernetes Service
Amazon EKS was first made available in June 2018. It runs control plane instances across AWS Availability Zones. EKS monitors plan instances, providing automatic upgrades and patching. Some of the features of EKS include:
AWS does not provide automatic updates, only on-demand. To update nodes you need to do so manually through the command line interface.
AWS relies on third-party providers to offer integrated monitoring solutions.
EKS is only available in the US, Europe, and Asia. It is not available in Latin America, Oceania or Africa.
High Availability Clusters
Your master nodes can be spread over more than one Availability Zone. This ensures the cluster remains available if a node fails. EKS provides full support for worker nodes.
AWS offers auto-scaling but requires some manual configuration.
Google Kubernetes Engine
Since Google is the creator of Kubernetes, it’s logical that GKE was the first KaaS available on the market. This service automates container management by scheduling them into a cluster according to pre-defined parameters. Some of the features of GKE include:
GKE provides automated updates for your clusters. It requires no command lines and no manual updating.
GKE has a built-in monitoring platform, called Stackdriver. You can use this tool for integrated logging as well.
GKE covers the US, Europe, Asia, Oceania, and Latin America. It is still not available in Africa.
High Availability Clusters
GKE offers master replication over more than one Availability Zone. Unlike AWS, GKE supports worker nodes.
GKE provides almost full automation of scaling. The user only needs to select the virtual machine size and the minimum-maximum range of nodes on the node pool. GKE then follows through with these specifications.
Bare Metal Clusters
You can use GKE on-premises via a vSphere cluster. You can find more information about how to install GKE on-prem in the GKE documentation.
Which Is Better?
Kubernetes is gaining popularity, as it becomes easier to deploy using managed solutions. Both Google Cloud and AWS are popular, robust services, while GKE is the more mature solution, because of Google’s deep experience as the developer of the Kubernetes platform.
However, according to a 2019 State of the Cloud Survey, there is a marked increase in interest of EKS, which has a 44% adoption. Other surveys show that for single option usage, GKE is the winner with 39% adoption vs EKS 35%.
Choose Amazon EKS if you need strong, easily configurable high availability options, or need to integrate with the huge ecosystem of AWS services. Prefer GKE if ease of use is important, and if you are running very large scale Kubernetes clusters.
Gilad David Maayan is a technology writer who has worked with over 150 technology companies including SAP, Samsung NEXT, NetApp and Imperva, producing technical and thought leadership content that elucidates technical solutions for developers and IT leadership.
2 thoughts on “Kubernetes as a Service: Amazon EKS vs Google Kubernetes Engine”
Note worker nodes are now supported with EKS, it’s quite recent though https://aws.amazon.com/about-aws/whats-new/2019/11/amazon-eks-adds-support-for-provisioning-and-managing-kubernetes-worker-nodes/ Would Cloudwatch Container Insights fit the need for “native monitoring” solution ? https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html EKS is available in Sao Paulo if that qualifies for Latin America, and Sydney (for Oceania). You can update an EKS cluster from the CLI and also from the GUI https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html Disclaimer: I’m an AWS employee
Wow, that’s a great update to EKS! I updated the article to reflect this change.
Thanks for letting me know