Amazon Elastic Kubernetes Service(Amazon EKS) is a managed Kubernetes Service offered by Amazon Web Services. It makes it easy for you to run and scale Kubernetes on AWS Cloud or on-premises without having to manage the underlying Kubernetes infrastructure. Before diving deep into EKS let us first understand what is Kubernetes, Kubernetes Cluster , Pod and Node.
What is Kubernetes?
Kubernetes also known as K8s, is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications. It groups containers into units called pods which are managed by a control plane. The control plane is responsible for scheduling pods on nodes, monitoring them and ensuring they are running as expected.
What is Kubernetes Cluster?
A Kubernetes (K8s) Cluster is a group of computing nodes, or worker machines, that run containerized applications. Containerization is a software deployment and runtime process that bundles an application's code with all the files and libraries it needs to run on any infrastructure.
What is Pod?
A pod is the smallest deployable unit under Kubernetes. Pods can contain one or more containers and, within the pod, containers share the same system resources such as storage and networking. Each pod gets a unique IP address.
What is Node?
A node is a machine that runs pods. It can be a physical or virtual server such as an Amazon EC2 instance.
What is Amazon EKS?
Containerization has taken the tech world by storm, offering agility, scalability , and portability for modern applications. Amazon EKS takes care of managing the Kubernetes control plane , this means you don't have to worry about provisioning and maintaining the control plane nodes, scaling the control plane or patching the Kubernetes software. Thus making it easier to focus on building and deploying containerized applications.
Key Features of Amazon EKS
1.Managing Kubernetes Control Plane: Amazon EKS takes care of managing the Kubernetes Control Plane by running across multiple AWS Availability Zones for you so you can focus on your application.
2.Integration with AWS Services: Amazon EKS ensures seamless integration with other AWS Services such as Amazon Elastic Compute Cloud(EC2), Amazon Elastic Book Store(EBS) and Amazon CloudWatch. This makes it easier to build and deploy containerized applications on AWS.
3. Scalability and Elasticity: Amazon EKS allows you to easily scale Kubernetes clusters up or down to meet the application requirement. There is an autoscaling feature which can be used to automatically adjust the size of cluster based on metrics such as CPU utilization.
4. Security and Compliance: Amazon EKS offers a variety of security features, such as IAM authentication and authorization , encryption at rest and in transit and logging and monitoring. Thus it creates a secure platform for running containerized applications.
AWS EKS Components
Amazon EKS architecture consists of two main components:
Control Plane: is responsible for managing the Kubernetes cluster, including scheduling pods, monitoring their health and ensuring they run as intended. It's fully managed by AWS and runs across multiple Availability Zones (AZs) for high availability and fault tolerance. Control Plane components include:
API Server: acts as the main entry point for interacting with the Kubernetes cluster.
etcd: acts as data store to manage cluster state.
Scheduler:determines where to run pods based on resource availability and pod requirements.
Controller Manager: It runs various controllers that manage different aspects of the cluster , such as deployments, nodes, and services.
Worker Nodes: Runs containerized applications. Users manage and provision these nodes using EC2 instances, Fargate or other compatible container orchestration platforms. Worker Node components include:
kublet: An agent that runs on each node in the cluster. It makes sure that containers are running in a Pod. The kublet takes a set of PodSpecs that are provided through various mechanisms and ensures that the containers described in those PodSpecs are running and healthy.
kube-proxy: kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept. kube-proxy maintains network rules on nodes.
Container runtime: A fundamental component that empowers Kubernetes to run containers effectively. It is responsible for managing the execution and lifecycle of containers within the Kubernetes environment.
Container Networking Interface(CNI): This plugin bridges the gap between the Kubernetes network model and the underlying network infrastructure. Popular CNIs for EKS include AWS VPC CNI and Calico.
Logging and Monitoring Agents: These tools provide visibility into the health and performance of your applications and the worker nodes themselves.
Additional Components: Depending upon ones needs, you can install additional components on worker nodes such as:
Security scanners systems for enhanced security.
Configuration management tools like Ansible or Terraform for automated provisioning and management.
Resource agents for collecting specific resource metrics for billing or cost optimization.
This diagram explains EKS architecture for control plane and worker node communication
Benefits of using Amazon EKS:
Lets look at some of the benefits of using Amazon EKS for containerized applications:
1. Reduced Operational Overhead: Amazon EKS take care of managing the Kubernetes control plane, which reduces the operational overload associated with running Kubernetes.
2. Increased Agility and Scalability : By providing autoscaling feature Amazon EKS allows you to be more agile and responsive to changing application demands.
3. Highly Available and Secure: EKS runs your control plane across multiple Availability Zones, ensuring your precious containers stay up and running even in the face of potential disruptions.
In short I would like to say Amazon EKS is your passport to containerized bliss on AWS. With its managed Kubernetes cluster its easy to build, deploy and scale applications leaving the grunt work behind. So saddle up, partner , and unleash the power of containers in the AWS cloud with Amazon EKS.