Kubernetes is an open-source platform designed originally by Google but now maintained under the CNCF (Cloud Native Computing Foundation) for management, scaling, and deployment of applications using containers.
According to a survey by CNCF, among the giant cloud providers, AWS saw the largest increase in Kubernetes clusters in production deployments. The staggering numbers indicated that more than 69% of the survey respondents deploy their workloads using Kubernetes on the AWS cloud.
To meet customer demand, Amazon launched its Amazon Elastic Container Service (EKS) for Kubernetes that became generally available on June 2018.
So, we think it’s a great opportunity to review the Amazon EKS, as the service is present in the market for more than one year.
An overview of Amazon EKS
In laymen’s terms, EKS is Amazon’s “Kubernetes as a Service.” It simplifies the process of managing Kubernetes clusters deployed on the AWS cloud.
EKS cluster consists of two main components, i.e., Control Plane and Worker Nodes, each running on its VPC.
- Control Plane: It consists of three Kubernetes Master nodes running in three different Availability Zones (AZs), ensuring high availability. AWS Network Load Balancer (NLB) directs the incoming traffic to Kubernetes. The Control-plane runs on the AWS-controlled VPC that cannot be managed by the users and is the reason why it is managed by Amazon.
- Worker Nodes: It can be run on usual Amazon EC2 instances in the user-controlled VPC. Users can use any AWS instance type as a worker node. To simplify and secure the accessibility, user can access worker nodes via SSH or provision with any existing automation.
Amazon EKS provides you flexibility in terms of layout. Deploy one EKS (read ‘Kubernetes’) cluster per environment, system or application. The user can also leverage a single Amazon EKS cluster to run multiple applications by taking advantage of Kubernetes namespaces and IAM security policies.
Working of Amazon EKS
The below-mentioned illustration from AWS depicts how typical EKS cluster appears in AWS and how it works.
Top 5 FAQs regarding Amazon EKS
1. What are the instance types supported by EKS?
EKS supports various EC2 instances such as t2, m3, m4, m5, c4, c5, i3, r3, r4, x1, p2, p3, and a1 instances.
2. What versions of Kubernetes are supported by Amazon EKS?
As of this blog post, Amazon EKS supports 1.13.10, 1.12.10, and 1.11.10. AWS recently stopped supporting 1.10.3. So, if you are running Kubernetes version 1.10.3, then you have to upgrade it to the supported versions to keep deploying container clusters.
3. Can I automatically add/remove nodes on a per-workload basis?
Yes, you can launch an Auto Scaling group of worker nodes and register along with the EKS cluster. Amazon provides AWS CloudFormation templates for EKS with an autoscaling group that launches on-demand worker instances.
4. Is Amazon EKS right for you?
To affirm if EKS suits your Kubernetes needs, here are three significant benefits:
a. Less maintenance
Amazon EKS automates Kubernetes cluster spin-up and management operations, which allows customers to focus more on business and applications rather than Kubernetes cluster provisioning and maintenance.
b. Well-integrated AWS ecosystem with Kubernetes
EKS does not mandate migrating workloads to AWS. Using EKS, you can still spread your workload across multiple clouds. You can integrate the following services with EKS: VPC, NLBs, Route53, Autoscaling Groups, AWS CloudWatch, AWS IAM, AWS EBS, AWS databases (RDS, DynamoDB, Elastic cache, Redshift, and all other database services), Elastic Network Interfaces (ENI), AWS CloudTrail.
AWS continuously supports Kubernetes as well as several related products in the community. Additionally, you get a majority of the open-source solutions, built by the Kubernetes community, supported by EKS.
5. What are the customer reviews?
As per G2 crowd reviews, Amazon EKS has 4.3 stars out of 5. One of the customers who gave 4.5 stars wrote, “I really enjoy the level of integration that Amazon has done to make EKS such a great tool to the lineup of services already offered. The network connections make every pod feel like their own micro ec2 instance and can be managed as such. There are even tasks in the works to allow specific IAM roles assigned to each service/pod; which will narrow the level of attack to a minuscule level. Each pod then can only access what is needed, and the cluster as a whole becomes much safer.”
Amazon EKS is an easy to operate and automated service that fulfills all the Kubernetes’ management tasks. Whether you would want to use it or not largely depends on your requirements.
It would suit small teams where Kubernetes cluster is part of their solution, whereas, without EKS the Kubernetes deployment and management require a team of experts. AWS is still bringing regular updates to the EKS service.