Launching an EKS Cluster

1.5 hours
  • 5 Learning Objectives

About this Hands-on Lab

Elastic Kubernetes Service (EKS) is a fully managed Kubernetes service from AWS. In this lab, you will work with the AWS command line interface and console, using command line utilities like `eksctl` and `kubectl` to launch an EKS cluster, provision a Kubernetes deployment and pod running instances of `nginx`, and create a `LoadBalancer` service to expose your application over the internet.

Course files can be found here:
[Kubernetes Cheat Sheet](https://acloudguru.com/blog/engineering/kubernetes-cheat-sheet)

Note that us-east-1 can experience capacity issues in certain Availability Zones. Since the AZ numbering (lettering) system differs between AWS accounts we cannot exclude that AZ from the lab steps. If you *do* experience an *UnsupportedAvailabilityZoneException* error regarding capacity in a particular zone, you can add the –zone switch to eksctl create cluster and specify three AZs which do not include the under-capacity zone. For example, `eksctl create cluster –name dev –region us-east-1 –zones=us-east-1a,us-east-1b,us-east-1d –nodegroup-name standard-workers –node-type t3.medium –nodes 3 –nodes-min 1 –nodes-max 4 –managed`

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Create an IAM User with Admin Permissions
  1. Create an IAM user with programmatic access and administrator-level privileges.
  2. Take note of the access key and secret access key of your user because we will use them in the next step.
Launch an EC2 Instance and Configure the Command Line Tools
  1. Create an EC2 instance in us-east-1region.
  2. If necessary, upgrade the AWS CLI on your EC2 instance to CLI v.2x or later.
  3. Configure the AWS CLI using the credentials of the user you just created.
  4. Install eksctl on your EC2 instance.
  5. Install kubectl on your EC2 instance.
Provision an EKS Cluster
  1. Use eksctl to provision an EKS cluster with three worker nodes in us-east-1.
  2. Use t3.medium instance types to create your cluster.
Create a Deployment on Your EKS Cluster
  1. Course files can be found here: https://github.com/ACloudGuru-Resources/Course_EKS-Basics
  2. Use kubectl to create a LoadBalancer service.
  3. Check the status of your LoadBalancer service using kubectl.
  4. Use kubectl to create a Deployment on your EKS cluster, using the standard nginx image EKS has available in the default Docker Hub registry.
  5. Check the status of your cluster, deployment, and pods using kubectl.
  6. When the Deployment is up and running, check that you can access your application using the DNS name of the LoadBalancer.
Test the High Availability Features of Your EKS Cluster
  1. In the AWS Console, shut down all the worker nodes.
  2. Check the status of your cluster, deployment, and pods using kubectl.
  3. After a few minutes, you should see EKS launching new instances to keep your service running.
  4. When the cluster is back to a steady state, check that your application is up and running.

Additional Resources

Your task is to launch an EKS cluster with three worker nodes in the us-east-1 region. Then, create a Deployment, and a Pod running container instances using the public nginx image. Then, expose your application to the internet by adding a LoadBalancer service.

Note: Please use the updated Guide steps for this lab.

Additional Info

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?