As container-based deployment has become a need today, not to mention, Docker and Kubernetes have gained unparalleled success in this regard. Interestingly 63% of Kubernetes workloads run on AWS, i.e., Amazon EKS. So, why Kubernetes is so popular among AWS customer? There are multiple reasons for working behind it.
Here are few of them –
1 . It provides cloud agnostic design which means the design is the same on AWS and on-premises data center.
2 . It is stable, and applications once created are kept alive even if they failed.
3 . It is flexible and fast as the containerized applications can be deployed within seconds in any hardware.
4. Easy to integrate for monitoring, to log or to alert.
5 . Highly scalable.
[Most of us are well acquainted with this term. However, if you are unfamiliar with it, then the answer for what is Kubernetes is –Kubernetes is one of the highest velocity cloud project dedicated by Google that has received extreme popularity within a short time due to its portability, open-source, extensible platform and for managing containerized workloads as well services. ]
Kubernetes too has some limitations
The following limitations arise from user perspectives, which are mainly configurations related to managing Kubernetes clusters on AWS.
- Users need to install and configure Kubernetes master and workers.
- For the high availability of Kubernetes clusters, at least three Kubernetes master must be run and configured to share among each other’s load balancing and failover.
- Timely upgrades and patch applications for the masters' and workers' software need a good amount of effort and expertise. This is also overhead for the users.
Amazon has addressed the above issues in a very diligent way. Also, here comes the debate relates to amazon EKS vs. ECS.
And the answer is Amazon Elastic Container Service for Kubernetes (EKS)
Amazon released Amazon EKS, which is another significant contribution to the cloud community. This opens up the platform for enterprises to run production-grade workloads.
Related post - Is Serverless computing the future of Cloud computing?
Benefits of Amazon EKS -
- EKS is a platform for enterprises for running production-grade workloads.
- It is a fully managed service for using Kubernetes on AWS.
- It provides native and upstream experience.
- Users can add additional AWS services as the integration is seamless.
- Migrating the Kubernetes application to Amazon EKS is easy, and the user can do that without zero code change. The reason behind this is Amazon EKS is fully compatible with applications running on a standard Kubernetes environment. It could be either on-premises data centers or public clouds.
- EKS can automatically detect unhealthy masters and replaces them.
- With EKS, version and patch up gradation for the Kubernetes masters are fully automated.
- With Amazon EKS, there is no security concern as EKS integrates IAM with Kubernetes. This enables to register of IAM entities with the native authentication system in Kubernetes. Thus it eliminates the need to manually setting up credentials for authenticating Kubernetes masters.
- Using Amazon VPC, you can use PrivateLink to access Kubernetes masters directly. It works as a private IP address and eliminates the possibility of using public IP addresses or traversing through the internet.
Apart from the benefits mentioned above, many other AWS key features are integrated with Amazon EKS. Some of those are Elastic Load Balancing, AWS CloudTrail for logging, etc.
-AWS provides continuous support for Kubernetes with its strong technical community.
The architecture of a typical EKS cluster –
Amazon EKS cluster consists of two main components-
1. The Control Plane
2. EKS Worker Nodes.
Each of the above runs on its own VPC.
Control Plane – It consists of three Kubernetes Master nodes that run in three different AZs for high availability. Control Plane runs on the Amazon-controlled VPC, which Amazon fully manages, and the users cannot alter it.
Worker Nodes – It runs on usual Amazon EC2 instances and is user controlled. Any AWS instance type can be used as a worker node.
Related post - What is Edge Computing - Know the basics
How does Amazon EKS work?
To configure Amazon EKS, there are some pre-requisites –
1. Create IAM role for Kubernetes - This is required to create AWS resources. Also, this is a one time job.
2. Create VPC and security group for EKS cluster.
Once the above pre-requisites are fulfilled below steps need to be followed:
3. First, using AWS Management Console create an Amazon EKS cluster. The same can also be performed using the AWS CLI or AWS SDKs.
4. Then, launch the Amazon EKS cluster registered worker nodes. Using AWS CloudFormation template user can automatically configure the nodes.
5. Once the cluster is ready, required Kubernetes tools can be configured to communicate with the cluster.
6. Finally, deploy and manage Kubernetes applications on Amazon EKS cluster.
When should you use Amazon EKS and when not?
AWS EKS provides the benefits of container-based deployment of applications instead of setting up a Kubernetes cluster and managing them from scratch. However, does that mean Amazon EKS is always suitable for any applications? Here are some of the recommended scenarios in support and against the use of Amazon EKS.
Do use EKS when
1. It is suitable for running scalable stateless apps like REST APIs
2. Running Kubernetes applications which are resource-aggressive and having auto-scaled capabilities.
3. Running Kubernetes supported Databases and queue server clusters.
Do not use EKS when
1. Deployment of stateful Big data clusters like Hadoop or Cassandra is not recommended into Amazon EKS.
2. Products which are not designed for Docker should not be deployed in Amazon EKS.
3. An application that does not support more than one replica.
To conclude, AWS EKS has optimized the Kubernetes platform and enables it to better run on AWS. Furthermore, it has also improved Kubernetes as a platform that is an achievable contribution to the cloud community.
Please share your valuable inputs in comment area to make the article more informative.
.