Amazon EKS - Using the AWS Load Balancer Controller to Expose Applications
The AWS Load Balancer Controller is used to help manage and control the provisioning of ALBs (Ingress resources) and NLBs (Service resources - type LoadBalancer).
In this Lab scenario, you'll learn how to deploy the AWS Load Balancer Controller into the lab provided EKS cluster using Helm. You'll then perform the following deployments within the cluster:
- Deploy a sample Web App and configure external public access to it via an Ingress cluster resource. The AWS Load Balancer Controller will provision an ALB for the Ingress resource, providing an entry point for external public HTTP (layer-7) based traffic.
- Deploy a sample TCP Echo App and configure external public access to it via a Service (type LoadBalancer) cluster resource. The AWS Load Balancer Controller will provision a NLB for the Service resource, providing an entry point for external public TCP (layer-4) based traffic.
Learning Objectives
Upon completion of this Lab, you will be able to:
- Deploy and configure the AWS Load Balancer Controller into an EKS cluster
- Deploy a sample web app and expose it publicly using an Ingress resource
- Deploy a TCP Echo App and expose it publicly using a Service (type LoadBalancer) resource
Intended Audience
This lab is intended for:
- Kubernetes practitioners
- DevOps Engineers
- SREs
Lab Prerequisites
You should be familiar with:
- Basic Linux command line administration
- Basic Kubernetes and Container-based concepts
Consider taking the following courseware in preparation for this lab:
Lab Environment
This Lab will start with the following AWS resources provisioned automatically for you:
- 1 x EKS cluster - Cluster-1 - provides a fully functional Kubernetes cluster
- 1 x NodeGroup
- 1 x EC2 Worker Node
- 1 x NodeGroup
- 2 x EC2 instances
- eks.launch.instance - used to launch the EKS cluster
- cloudacademylabs - used to provide an SSH based terminal
Updates
December 5th, 2023 - Updated Kubernetes version
March 6th, 2023 - Updated to K8s 1.24
Jeremy is a Content Lead Architect and DevOps SME here at Cloud Academy where he specializes in developing DevOps technical training documentation.
He has a strong background in software engineering, and has been coding with various languages, frameworks, and systems for the past 25+ years. In recent times, Jeremy has been focused on DevOps, Cloud (AWS, Azure, GCP), Security, Kubernetes, and Machine Learning.
Jeremy holds professional certifications for AWS, Azure, GCP, Terraform, Kubernetes (CKA, CKAD, CKS).