hands-on lab

Simplifying Kubernetes Deployments using Kustomize

Intermediate
1h 30m
431
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.
Lab 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

November 21st, 2023 - Resolved webapp URL issue

About the author
Avatar
Jeremy Cook
Content Lead Architect
Students
156,447
Labs
79
Courses
108
Learning paths
212

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).

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