Simplifying Kubernetes Deployments using Kustomize
Lab Steps
The hands-on lab is part of these learning paths
Ready for the real environment experience?
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)
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).