AWS EKS (Elastic Kubernetes service)

AWS EKS

Amazon EKS

Amazon EKS is an AWS managed service which is used to run Kubernetes on AWS. With the help of EKS we can run Kubernetes without installing and operating a Kubernetes control plane or worker nodes. EKS is a managed container-as-a-service (CaaS) that helps in Kubernetes deployment on AWS.

Kubernetes

Kubernetes is a container orchestration platform that can help in automating many processes like in deploy, manage, and scale containerized applications. It is also known as K8s. Basically it is a tool which is used for container management.

Kubernetes or K8s was developed by Google in 2014 and now maintained by Cloud native computing foundation.

Benefits of Amazon EKS:

  • EKS can be integrated with various AWS services (ECR, ELB, and IAM & VPC).
  • No need to setup or configure Kubermetes on AWS.
  • Everything will be managed by EKS.
  • Only need to create a control plane for EKS.
  • Pay what we have used, no need to pay any amount upfront.

EKS Components

Nodes: 

It is basically a physical or virtual machine. In EKS there are two types of nodes: Master node or Worker node. Both nodes are managed by EKS.

Master Nodes:

Master Node contains many components like Kube Controller, Kube Scheduler, and Kube API-server which combined make the control plane of the Kubernetes. Master Node creation and management done by EKS itself.

  • Kube API Server: It manages all the components of Etcd cluster. It is a primary management component of Kubermetes. It is responsible for all orchestration operations within the cluster.
  • Etcd: It is a database which stores values in key value format. All the containers related information is stored in etcd cluster.
  • Controller Manager: Controller Manager manages the resources of the Kubermetes cluster. There are two types of controllers.
  • Node controller: It controls new boarding nodes and manages those nodes and handles situations where nodes are unavailable or destroyed.
  • Replication controller: Replication controller ensures desired number of containers running every time in a group.
  • Scheduler: A Kube scheduler identifies the right node to deploy container on based on the container resource requirement it needs to run.

 Worker nodes:

 Worker node is a virtual machine or a server on which our applications run. These nodes are created and managed by users. Some components of worker nodes are:

  1. Kubelet: It is an agent which runs on each node. It takes all instructions from the Kube API server related to container deployment and container deletion according to requirements.
  2. Kube Proxy: Kube proxy service ensures necessary rules are in place on worker nodes to allow the containers to reach each other.

Pods: A group of containers is known as pods. All containers inside pods share IP address, storage & networking.

Daemon Set: Demon set is like a monitoring tool in a cluster. Its responsibility is to make sure that all nodes run a copy of a certain pod. It runs a cluster storage daemon on every node.

Control Plane

The Control Plane consists of three Kubernetes master nodes that run in three different availability zones of your region. From network load balancer (NLB) all incoming traffic comes to Kubernetes API. It runs on the virtual private cloud controlled by Amazon. Control Panel is fully managed by AWS.

Worker Nodes

Worker nodes is a virtual machine on which containerized applications run. Worker Nodes run on the Amazon EC2 instances in the virtual private cloud. A cluster of worker nodes runs containers while the control plane manages and monitors containers.

Process for creation of EKS Kubernetes cluster:

1) Firstly we need to create a Master Node

2) Then we need to Install and Configure AWS CLI & Kubectl

3) Then, we need to create a Worker Node.

Step 1: Login to AWS Management console.

a) In AWS services search for EKS and click on Create Kubernetes Cluster and then give the name for the Cluster.

b) Now create the role, click on “Create role”

c) Now give a name for the role (e.g. eksClusterRol) and click on the Create role.

Step 3: Now we need to Install & configure AWS CLI.

a) Click on Create IAM Access Key and set up your AWS CLI Credential

Now to setup AWS cli we need to run the commands below on the server.

  • AWS Configure — once you hit this command on your terminal it will ask you for AWS access and secret key just enter your credentials here and your AWS cli is configured successfully.

AWS configure

AWS Access Key ID [None]: AKIAIOGHTYUIKIOLJE

AWS Secret Access Key [None]: OPLIUYCYNJUKYIOHKEY

Default region name [None]: us-west-2

Default output format [None]: json

Step 4: Next step we need to install & configure the Kubectl. Configure Kubectl with EKS API Server and validate Kubectl configuration to master node.

Step 5: The final step is to create the Worker Node,

a) On the cluster page choose Add Node Group.

b) Now, On the Configure node group page, fill all the details and click next.

  • Name – Enter a unique name for your managed node group.
  • Node IAM role name– Choose the node instance role which you want to assign with your node group.

After this, leave the other settings to default and click on next.

Step 6: Next we need to configure the networking & scaling of Worker Nodes.

a) In this process we need to add a subnet and need to create and add an SSH key pair for communicating with the nodes.

b) Now we need to create and add an SSH key pair and proceed to next.

c) Now, on the Review and create page, we can review our managed node group configuration, and choose Create. Worker Node Group creation takes 2-5 minutes for workers nodes to be up and running.

Step 7: Now, once it comes up we can check worker node status from Kubectl command.   

$ kubectl get nodes –watch

If you need help in configuring this cluster, feel free to email us vic@teamitserve.com or call us at +1 810 214 2572.

1,250 thoughts on “AWS EKS (Elastic Kubernetes service)”

  1. What’s Taking place i’m new to this, I stumbled upon this I have discovered It absolutely useful and it has aided me out
    loads. I am hoping to contribute & help different users like its aided me.
    Great job.

  2. It’s a pity you don’t have a donate button! I’d most certainly donate to this outstanding blog! I guess for now i’ll settle for bookmarking and adding your RSS feed to my Google account. I look forward to brand new updates and will talk about this blog with my Facebook group. Chat soon!|

  3. Thank you for another informative website. Where
    else may just I get that type of info written in such a perfect method?

    I’ve a undertaking that I’m just now running on, and I have been at the
    glance out for such information.

  4. Hi there, I found your website by means of
    Google while looking for a similar matter, your website got here up, it appears to be like
    great. I have bookmarked it in my google bookmarks.
    Hello there, just turned into aware of your weblog via Google,
    and found that it is truly informative. I am gonna watch out for brussels.
    I will appreciate in case you proceed this in future.
    Many people shall be benefited from your writing.

    Cheers!

  5. Pretty part of content. I simply stumbled upon your weblog and
    in accession capital to say that I acquire in fact
    loved account your weblog posts. Any way I’ll be subscribing to your augment or even I achievement
    you get admission to persistently quickly.

  6. When someone writes an article he/she retains the idea of
    a user in his/her mind that how a user can be aware of it.
    So that’s why this article is perfect. Thanks!

  7. Thanks for the marvelous posting! I certainly enjoyed reading it, you may
    be a great author.I will be sure to bookmark your blog and will
    come back someday. I want to encourage one to continue
    your great posts, have a nice day!

  8. Hi, i think that i saw you visited my site thus i came to “return the favor”.I’m trying to find things
    to enhance my website!I suppose its ok to use some of your ideas!!

  9. Heya! I just wanted to ask if you ever have any trouble with hackers?
    My last blog (wordpress) was hacked and I ended up losing many
    months of hard work due to no data backup. Do you have any methods to stop hackers?

  10. Magnificent beat ! I would like to apprentice while you amend your site, how can i subscribe for a blog web site?

    The account aided me a acceptable deal. I had been tiny bit acquainted
    of this your broadcast provided bright clear idea

  11. Hey there! Would you mind if I share your blog with my myspace group?
    There’s a lot of people that I think would really enjoy your content.
    Please let me know. Thanks

  12. I’m really impressed together with your writing abilities as smartly as with the structure for your weblog.

    Is this a paid subject or did you modify it yourself?

    Either way keep up the nice high quality writing, it’s rare to peer a nice blog
    like this one today..

  13. Hello There. I found your blog using msn. This is an extremely well written article.
    I will make sure to bookmark it and come back to read more of your
    useful info. Thanks for the post. I’ll certainly
    comeback.

  14. I like the helpful info you provide in your articles.
    I’ll bookmark your weblog and check again here regularly.

    I’m quite certain I will learn plenty of new stuff right here!
    Best of luck for the next!

  15. First of all I want to say terrific blog!
    I had a quick question which I’d like to ask if you do not mind.
    I was interested to know how you center yourself and clear your
    mind before writing. I have had difficulty clearing my thoughts in getting my thoughts out.
    I do take pleasure in writing however it just seems like the
    first 10 to 15 minutes are lost just trying to figure out
    how to begin. Any recommendations or hints?
    Thank you!

  16. Attractive element of content. I simply stumbled upon your blog and in accession capital to say that I get
    actually enjoyed account your blog posts. Any way I’ll be subscribing on your feeds or even I fulfillment you access
    persistently rapidly.