EKS - Elastic Container Service for Kubernetes

The course is part of these learning paths

DevOps Engineer – Professional Certification Preparation for AWS
course-steps 35 certification 5 lab-steps 18 quiz-steps 2 description 3
Solutions Architect – Professional Certification Preparation for AWS
course-steps 47 certification 6 lab-steps 19 quiz-steps 4 description 2
SysOps Administrator – Associate Certification Preparation for AWS
course-steps 35 certification 5 lab-steps 30 quiz-steps 4 description 5
Certified Developer – Associate Certification Preparation for AWS
course-steps 29 certification 5 lab-steps 22 description 2
Get Started Building Cloud Solutions
course-steps 14 certification 5 lab-steps 1
Fundamentals of AWS
course-steps 5 certification 6 lab-steps 6 description 2
more_horiz See 4 more

Contents

keyboard_tab
Introduction
1
Introduction
PREVIEW4m 38s
What is Compute?
Summary
11
Summary
7m 48s
play-arrow
Start course
Overview
DifficultyBeginner
Duration1h 19m
Students11189
Ratings
4.8/5
star star star star star-half

Description

Hello and welcome to this lecture covering the Elastic Container Service for Kubernetes, more commonly known as EKS.  Kubernetes is an open-source container orchestration tool designed to automate, deploying, scaling, and operating containerized applications. It is designed to grow from tens, thousands, or even millions of containers. Kubernetes is also container-runtime agnostic, which means you can actually use Kubernetes to run rocket and docker containers.

Transcript

Resources referenced within this lecture:

Introduction to Kubernetes

Install Kubectl

IAM Authenticator:

- Linux

- MacOS

- Windows

Configuration map to joing the Worker Node to the EKS Cluster

Introduction to EKS

 

Transcript

Hello and welcome to this lecture covering the Elastic Container Service for Kubernetes, more commonly known as EKS.

Firstly, for those unfamiliar with Kubernetes let me briefly explain what it is at a high level.  Kubernetes is an open-source container orchestration tool designed to automate, deploying, scaling, and operating containerized applications. It is designed to grow from tens, thousands, or even millions of containers. Kubernetes is also container-runtime agnostic, which means you can actually use Kubernetes to run rocket and docker containers.

So back to EKS, with EKS, AWS provides a managed service allowing you to run Kubernetes across your AWS infrastructure without having to take care of provisioning and running the Kubernetes management infrastructure in what's referred to as the control plane. You, the AWS account owner, only need to provision and maintain the worker nodes.

What is a control plane and what are worker nodes?

Kubernetes Control Plane:

There are a number of different components that make up the control plane and these include a number of different APIs, the kubelet processes and the Kubernetes Master, and these dictate how kubernetes and your clusters communicate with each other.  The control plane itself is run across master nodes.

The control plane schedules containers onto nodes. The term scheduling does not refer to time in this context. Scheduling, in this case, refers to the decision process of placing containers onto nodes in accordance with their declared, compute requirements.  The Control Plane also tracks the state of all kubernetes objects by continually monitoring the objects.  So in EKS, AWS is responsible for provisioning, scaling and managing the control plane and they do this by utilising multiple availability zones for additional resilience.

Worker nodes:

Kubernetes clusters are composed of nodes and the term cluster refers to the aggregate of all of the nodes.  A node is a worker machine in Kubernetes and runs as an on-demand EC2 instance and includes software to run containers managed by the Kubernetes control plane.  For each node created, a specific AMI is used which also ensures docker and kubelet in addition to the AWS IAM authenticator is installed for security controls. These nodes are what us as the customer are responsible for managing within EKS.  Once the worker nodes are provisioned they can then connect to EKS using an endpoint.

For more information on Kubernetes, please see our existing course ‘Introduction to Kubernetes’ here

Let me provide a brief overview of what’s required to start using the EKS service.

  1. Create an EKS Service Role: Before you begin working with EKS you need to configure and create am IAM service-role that allows EKS to provision and configure specific resources.  This role only needs to be created once and can be used for all other EKS clusters created going forward. The role needs to have the following permissions policies attached to the role: AmazonEKSServicePolicy and AmazonEKSClusterPolicy

  2. Create an EKS Cluster VPC: Using AWS CloudFormation you need to create a and run a CloudFormation stack based on the following template: https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/amazon-eks-vpc-sample.yaml which will configure a new VPC for you to use with EKS

  3. Install kubectl and the AWS-IAM-Authenticator: Kubectl is a command line utility for Kubernetes and can be installed following the details supplied here The IAM-Authenticator is required to authenticate with the EKS cluster.  Depending on your client OS (Linux, MacOS or Windows) it can be downloaded from here:

  1. Create your EKS Cluster: Using the EKS console you can now create your EKS cluster using the details and information from the VPC created in step 1 and 2

  2. Configure kubectl for EKS: Using the update-kubeconfig command via the AWS CLI you need to create a kubeconfig file for your EKS cluster

  3. Provision and configure Worker Nodes: Once your EKS cluster shows an ‘Active’ status you can launch your worker nodes using CloudFormation based on the following template: https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/amazon-eks-nodegroup.yaml

  4. Configure the Worker Node to join the EKS Cluster: Using a configuration map downloaded here:

curl -O https://amazon-eks.s3-us-west-2.amazonaws.com/cloudformation/2019-02-11/aws-auth-cm.yaml

You must edit it and Replace the <ARN of instance role (not instance profile)> with the NodeInstanceRole value from step 6

You EKS Cluster and worker nodes are now configured ready for your to deploy your applications with Kubernetes.

For more information on EKS, please see our existing course ‘Introduction to EKS’ which will cover these points and more in greater detail https://cloudacademy.com/course/introduction-to-aws-eks/

About the Author

Students56205
Labs1
Courses55
Learning paths38

Stuart has been working within the IT industry for two decades covering a huge range of topic areas and technologies, from data centre and network infrastructure design, to cloud architecture and implementation.

To date, Stuart has created 50+ courses relating to Cloud, most within the AWS category with a heavy focus on security and compliance

He is AWS certified and accredited in addition to being a published author covering topics across the AWS landscape.

In January 2016 Stuart was awarded ‘Expert of the Year Award 2015’ from Experts Exchange for his knowledge share within cloud services to the community.

Stuart enjoys writing about cloud technologies and you will find many of his articles within our blog pages.