Kubernetes cluster is used to deploy containerized applications on the cloud. Kubernetes uses the same underlying infrastructure, OS, and container. In this post, we are going to cover all about Amazon EKS (Elastic Kubernetes Service) used to deploy applications on AWS.
Cloud Vendors adopted Kubernetes in different ways.
- AWS – Elastic Kubernetes Service (EKS)
- Microsoft Azure – Azure Kubernetes Service (AKS)
- Google Cloud Platform – Google Kubernetes Engine (GKE)
- Oracle Cloud – Oracle Kubernetes Engine (OKE)
- Digital Ocean – Digital Ocean Kubernetes Service (DOKS)
Containers & Kubernetes
Containers are a software package into an invisible box with everything that the application needs to run. Docker containers are built off Docker images.
- To know about Docker Architecture click here http://k21academy.com/docker13
- To know about the difference between Docker & Virtual machine click here https://k21academy.com/docker12
Kubernetes is an open-source platform for managing containerized workloads and services. Kubernetes takes care of scaling and failover for your application running on the container.
- To know about Kubernetes Architecture click here https://k21academy.com/kubernetes12
- To know the difference between Kubernetes and Docker click here http://k21academy.com/kubernetes16
Overview Of EKS
Amazon EKS is a managed service that is used to run Kubernetes on AWS. Using EKS users doesn’t have to maintain a Kubernetes control plan on their own. It is used to automate the deployment, scaling, and maintaining the containerized application. It works with most of the operating systems.
EKS is integrated with various AWS services:
- ECR (Elastic Container Registry) for container images.
- Elastic Load Balancer for distributing traffic.
- IAM for providing authentication and authorization.
- VPC (Virtual Private Cloud) for isolating resources.
Benefits Of Using EKS
- No setup required to configure Kubernetes on AWS.
- In this users need not create a control plan.
- Worker nodes are also managed by Amazon EKS
- EKS integrates with various AWS tools.
Note: Using ECR we have to manage the underlying OS, infrastructure, and container engine but using EKS we only have to provide containerized application, and rest is managed by EKS.
Components Of EKS
1) Nodes: A node is a physical or virtual machine. In EKS both Master Node and Worker Node are managed by EKS. There are two types of nodes.
- Master Nodes: These are responsible for the control plan of Kubernetes Cluster and managed by EKS
- API Servers: It controls the API servers whether it is kubctl (Kubernetes CLI) or rest API.
- etcd: It is a highly available key-value store that is distributed among the Kubernetes cluster to store configuration data.
- Controller Manager: Cloud controller Manager is used to manage the VMs, storage, databases, and other resources associated with the Kubernetes cluster. It makes sure that you are using as much as the container needed at a point in time. It keeps a count of containers used and also records the state.
- Scheduler: It validates that what and when the work needs to be done. It integrates with the Controller manager and API servers.
- Worker Nodes: It is responsible for the Data plan of the Kubernetes environment.
- kublet: It controls the flow to and fro from the API. It makes sure containers are running in the pod.
- kubproxy: It includes networking rules and access control. It is like a firewall.
2) Pods: A group of containers is called pods. They share networking, storage, IP address, and port spaces.
3) DaemonSet: It makes sure that all node runs a copy of a certain pod. It is like a monitoring tool.
4) Job: It tracks and establishes the state of individual work.
It consists of three Master nodes running in three different AZs to provide HA. Incoming traffic to Kubernetes API comes through the AWS network load balancer (NLB). The Control Plane runs on the amazon controlled VPC that is completely managed by Amazon.
Runs-on Amazon EC2 instances in the customer-controlled VPC. We can use any AWS instance for the worker node.
- Provision EKS cluster using AWS Console, AWS CLI, or one of the AWS SDKs.
- Deploy worker nodes to the EKS cluster. There is already a predefined template that will automatically configure nodes.
- Now we configure Kubernetes tools such as kubctl to communicate with the Kubernetes cluster.
- We are now all set to deploy an application on the Kubernetes cluster.
Though the pricing of various services in AWSis dynamical, so it is recommended to check the pricing before deploying clusters.
As a standard, we have to pay 0.10$ /hour for each Amazon EKS cluster and we can deploy multiple applications on each EKS cluster. We can run EKS using either EC2 or AWS Fargate, and on-premises using AWS outposts.
To know more about Amazon EKS (Elastic Kubernetes Service) click here
- Amazon EKS (Elastic Kubernetes Service)
- [Video] Containers (Docker) & Kubernetes In Azure For Beginners
- Kubernetes Architecture & Components Overview For Beginners
- Docker Image And Layer Overview For Beginners
- Docker Networking & Different Types Of Networking For Beginners
- Oracle Kubernetes (OKE)
Join FREE Masterclass
To know more about Docker and Kubernetes for beginners, why you should learn, Job opportunities, and what to study Including Hands-On labs you must perform to clear CKA certification Exam.