A comprehensive collection of 33+ hands-on labs designed to help you learn and master Kubernetes - from basic deployments to advanced topics like Istio, ArgoCD and custom schedulers.
This lab series covers a wide range of Kubernetes topics:
| Namespaces, Deployments, Services and Rollouts |
DataStores, Persistent Volume Claims and StatefulSets |
Ingress Controllers and Service Mesh (Istio) |
Kustomization and Helm Charts |
| ArgoCD for continuous deployment |
Logging, Prometheus and Grafana |
CRDs, Custom Schedulers and Pod Disruption Budgets |
k9s, Krew, Kubeapps and Kubeadm |
| Lab | Topic | Description |
|---|---|---|
| 00 | Verify Cluster | Ensure your Kubernetes cluster is properly configured |
| 01 | Namespace | Learn to organize resources with namespaces |
| 02 | Deployments (Imperative) | Create deployments using kubectl commands |
| 03 | Deployments (Declarative) | Create deployments using YAML manifests |
| 04 | Rollout | Manage deployment updates and rollbacks |
| 20 | CronJob | Schedule recurring tasks |
| Lab | Topic | Description |
|---|---|---|
| 05 | Services | Expose applications with Kubernetes services |
| 07 | Nginx Ingress | Configure ingress controllers for external access |
| 10 | Istio | Implement service mesh for microservices |
| 33 | NetworkPolicies | Control traffic flow between pods |
| Lab | Topic | Description |
|---|---|---|
| 31 | RBAC | Role-based access control for Kubernetes |
| 32 | Secrets | Manage sensitive data in Kubernetes |
| 33 | NetworkPolicies | Control traffic flow between pods |
| 37 | ResourceQuotas & LimitRanges | Manage resource consumption per namespace |
| Lab | Topic | Description |
|---|---|---|
| 06 | DataStore | Work with persistent storage in Kubernetes |
| 08 | Kustomization | Manage configurations with Kustomize |
| 09 | StatefulSet | Deploy stateful applications |
| 12 | WordPress MySQL PVC | Complete stateful application with persistent storage |
| Lab | Topic | Description |
|---|---|---|
| 14 | Logging | Centralized logging with Fluentd |
| 15 | Prometheus & Grafana | Monitoring and visualization |
| 22 | Metric Server | Kubernetes metrics collection |
| 29 | EFK Stack | Elasticsearch, Fluentd, and Kibana stack |
| Lab | Topic | Description |
|---|---|---|
| 13 | Helm Chart | Package and deploy applications with Helm |
| 18 | ArgoCD | Implement GitOps with ArgoCD |
| 23 | Helm Operator | Manage Helm releases with operators |
| Lab | Topic | Description |
|---|---|---|
| 11 | Custom Resource Definition | Extend Kubernetes API with CRDs |
| 16 | Affinity, Taint & Toleration | Control pod scheduling |
| 17 | Pod Disruption Budgets | Ensure availability during disruptions |
| 19 | Custom Scheduler | Build custom scheduling logic |
| 21 | KubeAPI | Work with Kubernetes API |
| 24 | Kubebuilder | Build Kubernetes operators |
| 25 | Krew | kubectl plugin manager |
| 28 | Telepresence | Local development with remote clusters |
| 30 | KEDA | Kubernetes event-driven autoscaling |
| 34 | crictl | Container runtime interface CLI |
| 36 | kubectl Deep Dive | Advanced kubectl usage and techniques |
| Task Category | Description |
|---|---|
| CLI Tasks | Hands-on exercises for CLI, debugging, and orchestration |
| Service Tasks | Practice with Kubernetes services and networking |
| Helm Tasks | Helm chart creation, templating, repositories, and deployment |
| ArgoCD Tasks | GitOps workflows with ArgoCD |
| Scheduling Tasks | Pod scheduling, affinity, and resource management |
| Kubebuilder Tasks | Building Kubernetes operators |
| KEDA Tasks | Event-driven autoscaling exercises |
|
Start here if you're new to Kubernetes: |
For those with basic Kubernetes knowledge: |
For experienced Kubernetes users: |
Before starting these labs, you should have:
- Basic understanding of containerization (Docker)
- Command-line (CLI) familiarity
- A Kubernetes cluster (Minikube, Kind, or cloud-based)
kubectlinstalled and configured
| Tool | Description |
|---|---|
| Docker / OrbStack | Containerization tool |
| kubectl | Kubernetes command-line tool |
| Kind | Local Kubernetes cluster |
| Helm | Kubernetes package manager |
| k9s | Kubernetes CLI dashboard |
| Git | Version control system |
| VS Code | Source code editor |
| DevBox | Development environment manager |
- Take your time - Don't rush through the labs
- Practice regularly - Repetition builds muscle memory
- Experiment - Try variations of the examples
- Read the docs - Kubernetes documentation is excellent
- Join the community - Engage with other learners
Start with Lab 00: Verify Cluster or browse the full documentation site!
©2021-2025 Nir Geier | GitHub | LinkedIn | Stack Overflow | Discord