hands-on lab

Simplifying Kubernetes Deployments using Kustomize

Difficulty: Intermediate
Duration: Up to 1 hour and 30 minutes
Students: 465
Rating: 4.8/5
Get guided in a real environmentPractice with a step-by-step scenario in a real, provisioned environment.
Learn and validateUse validations to check your solutions every step of the way.
See resultsTrack your knowledge and monitor your progress.

Description

Kustomize is a tool for customizing Kubernetes configurations, simplifying the rollout and deployment of applications into clusters. It has the following features to manage application configuration files:

  • generating resources from other sources
  • setting cross-cutting fields for resources
  • composing and customizing collections of resources

In this lab scenario, you'll learn how to use Kustomize Bases and Overlays to deploy 3 different versions (Baseline, Staging, and Production) of the same sample web application into a provided Kubernetes cluster.  

Lab Objectives

Upon completion of this lab, you will be able to:

  • Use Kustomize to deploy a basic web application which has been packaged already into a docker image (hosted on DockerHub). 
  • Understand how to use configure and work with Kustomize Bases and Overlays
  • Use Kustomize to generate 3 different enviroment specific deployments:
    • Baseline - the baseline deployment version of the webapp
    • Staging - uses a Kustomize overlay to change the baseline deployment settings
    • Production - uses a Kustomize overlay to change the baseline deployment settings
  • Test and validate the Base, Staging, and Production deployed cluster resources using the curl command and your workstations browser

You should:

  • Be comfortable with basic Linux command line administration
  • Be comfortable with basic Kubernetes and Container based concepts

Lab Environment

This lab will start with the following AWS resources provisioned automatically for you:

  • 2 x EC2 instances - each assigned a public IP address:
    • ide.cloudacademy.platform.instance - provides a web-based IDE with integrated terminal
    • k8s.cloudacademy.platform.instance - provides a fully functional and running Kubernetes cluster

To achieve the Lab end state, you will be walked through the process of:

  • Using your local workstation browser to remotely connect to the ide.cloudacademy.platform.instance
  • Using the web-based IDE and integrated terminal, you'll complete the remainder of the stated Lab Objectives (above)

Updates

June 14th, 2024 - Resolved deployment issue

November 21st, 2023 - Resolved webapp URL issue

Covered topics

Lab steps

Logging In to the Amazon Web Services Console
Connecting to the CloudAcademy Web based IDE
Deploy Base
Deploy Staging
Deploy Production