Welcome workshop participants! This repository contains everything you need to follow along with the Kubernetes for Beginners workshop at SCaLE (Southern California Linux Expo).
By the end of this workshop, you will have:
- ✅ A local Kubernetes cluster running with KIND
- ✅ A real app deployed with Namespaces, Deployments, and Pods
- ✅ A Service exposing your app inside the cluster
- ✅ Traefik Ingress routing external HTTP traffic (installed via Helm)
- ✅ ConfigMaps and Secrets injected into your app as env vars and mounted files
- ✅ Horizontal scaling and zero-downtime rolling updates
- ✅ A rollback strategy for bad deploys
| # | Module | Time |
|---|---|---|
| 0 | Pre-Flight Checklist | 15 min |
| 1 | Containers & Kubernetes Concepts | 20 min |
| 2 | Creating Your KIND Cluster | 20 min |
| 3 | Namespaces — Organizing Your Cluster | 10 min |
| 4 | Deployments — Running Your App | 25 min |
| 5 | Services — Internal Networking | 20 min |
| 6 | Ingress — External Traffic Routing with Traefik | 25 min |
| 7 | ConfigMaps & Secrets | 20 min |
| 8 | Scaling & Rolling Updates | 20 min |
| 9 | Bonus: Troubleshooting & Tips | open |
| Tool | Min Version | Install |
|---|---|---|
| Docker Desktop | v24+ | docs.docker.com/get-docker |
| kind | v0.23+ | kind.sigs.k8s.io |
| kubectl | v1.29+ | kubernetes.io/docs/tasks/tools |
| helm | v3.14+ | helm.sh/docs/intro/install |
💡 New to the command line? Check the scripts/ folder for helper shell scripts.
git clone https://github.com/faisalcodesinfrastructure/scale23x-k8s-workshop.git
cd scale23x-k8s-workshopdocker pull kindest/node:v1.29.0
docker pull traefik:v3.0kind create cluster --name workshop --config manifests/kind-config.yaml
kubectl config use-context kind-workshop
kubectl wait --for=condition=Ready node --all --timeout=120shelm repo add traefik https://traefik.github.io/charts
helm repo update
helm upgrade --install traefik traefik/traefik \
--namespace traefik \
--create-namespace \
-f manifests/traefik-values.yaml \
--waitPowerShell:
helm repo add traefik https://traefik.github.io/charts
helm repo update
helm upgrade --install traefik traefik/traefik `
--namespace traefik `
--create-namespace `
-f manifests/traefik-values.yaml `
--waitdocker build -t k8s-workshop-demo:1.0.0 ./app
kind load docker-image k8s-workshop-demo:1.0.0 --name workshopkubectl apply -f manifests/namespace.yaml
kubectl apply -f manifests/configmap.yaml
kubectl apply -f manifests/secret.yaml
kubectl apply -f manifests/deployment.yaml
kubectl apply -f manifests/service.yaml
kubectl apply -f manifests/ingress.yaml
kubectl rollout status deployment/demo-app -n workshop-app --timeout=120smacOS / Linux / WSL:
echo '127.0.0.1 demo.local' | sudo tee -a /etc/hostsWindows (PowerShell as Administrator):
Add-Content -Path "$env:SystemRoot\System32\drivers\etc\hosts" -Value "127.0.0.1 demo.local"Open http://demo.local in your browser.
k8s-workshop/
├── README.md ← You are here
├── manifests/ ← All YAML files (apply these!)
│ ├── kind-config.yaml
│ ├── namespace.yaml
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ ├── configmap.yaml
│ └── secret.yaml
├── app/ ← Demo app source (optional)
│ ├── Dockerfile
│ └── index.html
├── modules/ ← Step-by-step module guides
│ ├── 00-preflight/
│ ├── 01-concepts/
│ └── ...
├── scripts/ ← Helper scripts
│ ├── setup.sh / setup.ps1
│ ├── teardown.sh / teardown.ps1
│ └── verify.sh / verify.ps1
└── docs/ ← Extra reference material
└── kubectl-cheatsheet.md
Workshop presented at SCaLE Linux Expo by Faisal, a Principal Technical Consultant Lead at AHEAD, specializing in cloud-native transformations, platform engineering, and enterprise architecture.
A CNCF Ambassador and Platform Engineering Ambassador and organizer of Cloud Native LA.
- 🐦 Questions? Open an Issue
- 💬 Join CNCF Slack — #kubernetes channel
- 📚 Official Kubernetes Docs
- 💼 Company: AHEAD
- 🌐 Community: Cloud Native LA
- 🐦 Questions? Open an Issue or reach out on LinkedIn
If you found this workshop helpful, consider giving the repo a ⭐ — it helps others find it!