Simplifying Kubernetes Deployments using Kustomize
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
About the author
![Avatar](https://assets.cloudacademy.com/bakery/media/uploads/instructors/JProfile1.png)
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), GitHub.