In this blog, I am going to cover the Kubernetes service by Amazon on AWS. 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. Kubernetes cluster is used to deploy containerized applications on the cloud. Kubernetes uses the same underlying infrastructure, OS, and container.
This blog covers an overview of EKS, Components of EKS, the EKS Workflow, a step-by-step procedure of how to create a Kubernetes Cluster on EKS, the pricing of EKS, and the benefits of using EKS and all about Amazon EKS (Elastic Kubernetes Service) used to deploy applications on AWS.
Check out the differences between Kubernetes and Docker
Overview Of EKS
Architecture 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.
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: Master Node is a collection of components like Storage, Controller, Scheduler, API-server that makes up the control plan of the Kubernetes. The EKS itself creates the Master Node and manages it.
- 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: The worker nodes in a cluster are the machines or physical servers that run your applications. The user is responsible for creating and managing worker nodes.
- 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.
Learn more about Kubernetes Architecture
The Control Plane consists of three K8s master nodes that run in three different availability zones (AZs). All incoming traffic to K8s API comes through the network load balancer (NLB). It runs on the virtual private cloud controlled by Amazon. So, the Control Panel can’t be managed directly by the organization and is fully managed by AWS.
Worner Nodes run on the Amazon EC2 instances in the virtual private cloud controlled by the organization. A cluster of worker nodes runs an organization’s containers while the control plane manages and monitors when and where containers are started.
Control Panel & Worker Node Communication
- 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.
Note: To know 10 things about EKS on AWS, click here.
Also read: Comparison between Docker vs VM, difference of both the machines you should know.
Create EKS Kubernetes Cluster
Step 1: The very first thing is to create an AWS account. If you don’t have an AWS Free Tier account please refer – Create AWS Free Tier Account
Step 2: Next step is to create a Master Node, follow the below steps to create one.
a) Log in to the AWS portal, find the Kubernetes Service by searching for EKS and click on Create Kubernetes Cluster and then specify the name for the Cluster.
b) Next is to create the role, click on “Create role” -> AWS Service -> EKS (from AWS Services) -> Select EKS Cluster -> Next Permissions
c) Leave the selected policies as-is and click on Review Page.
d) Enter a name for the role (e.g. eksClusterRole) and hit the Create role button at the bottom of the page to create the IAM role. The IAM role is created.
Step 3: Next step is to Install & configure AWS CLI. Follow the below links and steps for the same;
- To get the Latest EKS UserGuide visit Getting started AWS Console, click here.
- Know more about the CLI UserGuide from CLI Configure Quickstart, click here.
a) Click on Create IAM Access Key and set up your AWS CLI Credential
AWS CLI Credentials Configuration
Step 4: Next is to install & configure the kubectl, by checking your Cluster Name & Region Name where the EKS Master node is running from the console. Check the status of Cluster and Configure kubectl with EKS API Server and validate kubectl configuration to master node.
To know more go through the blog Install and Configure kubectl, click here.
Step 5: The final step is to create the Worker Node,
a) On the cluster page, select the Compute tab, and then choose Add Node Group.
b) On the Configure node group page, fill out the parameters accordingly, and then choose Next.
- Name – Enter a unique name for your managed node group.
- Node IAM role name– Choose the node instance role to use with your node group. For more information, see the Amazon EKS worker node IAM role, click here.
To open the IAM Console, click here
After following all the above steps, leave the other settings to default and proceed further.
Step 6: Next is to configure the networking & scaling of Worker Nodes.
a) The process is to add a subnet and create an SSH key pair and add the same credentials for communicating with the nodes. Follow the images below and complete the process:
b) Create an SSH pair and add the same in the Key pair, proceed to next.
c) On the Review and create page, review your managed node group configuration, and choose Create. Worker Node Group is under creation so wait for 2-3 minutes for workers nodes to be up and running.
Step 7: The final step is to verify the Worker node status from Kubectl. For the same perform the given command:
$ kubectl get nodes --watch
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
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.
- Subscribe to our Docker & Kubernetes YouTube channel
- Azure Kubernetes Service (AKS) & Azure Container Instances (ACI) For Beginners
- Container Engine For Kubernetes (OKE) Oracle For Beginners
- Certified Kubernetes Administrator (CKA): Step-by-Step Activity Guide (Hands-on Lab)
- Kubernetes Architecture & Components Overview For Beginners
Join FREE Masterclass
We cover Elastic Kubernetes Service as a bonus in our Certified Kubernetes Administrator (CKA) training program. To know about what is the Roles and Responsibilities of Kubernetes administrator, why you should learn Docker and Kubernetes, Job opportunities for Kubernetes administrator in the market, and what to study Including Hands-On labs you must perform to clear the Certified Kubernetes Administrator (CKA) certification exam by registering for our FREE Masterclass.
Click on the below image to Register Our FREE Masterclass Now!