Skip to content

Latest commit

 

History

History
232 lines (172 loc) · 12 KB

File metadata and controls

232 lines (172 loc) · 12 KB
Kubernetes Logo

☸️ Kubernetes Hands-on Labs

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.


Website  Open in Cloud Shell


Stars  Forks  LinkedIn  StackOverflow  Email


📚 What You'll Learn

This lab series covers a wide range of Kubernetes topics:

🧱 Basics

Namespaces, Deployments,
Services and Rollouts

💾 Storage

DataStores, Persistent Volume
Claims and StatefulSets

🌐 Networking

Ingress Controllers and
Service Mesh (Istio)

⚙️ Configuration

Kustomization and
Helm Charts

🔀 GitOps

ArgoCD for continuous
deployment

👁️ Observability

Logging, Prometheus
and Grafana

🚀 Advanced

CRDs, Custom Schedulers
and Pod Disruption Budgets

🔧 Tools

k9s, Krew, Kubeapps
and Kubeadm

🗂️ Available Labs

Getting Started

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

Networking

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

Security

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

Storage & Config

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

Observability

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

GitOps & CI/CD

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

Advanced

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

🧠 Practice Tasks

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

🎯 Learning Path

🟢 Beginner Track

Start here if you're new to Kubernetes:

  1. Lab 00: Verify Cluster
  2. Lab 01: Namespace
  3. Lab 02: Deployments (Imperative)
  4. Lab 03: Deployments (Declarative)
  5. Lab 05: Services

🟡 Intermediate Track

For those with basic Kubernetes knowledge:

  1. Lab 04: Rollout
  2. Lab 06: DataStore
  3. Lab 07: Nginx Ingress
  4. Lab 08: Kustomization
  5. Lab 13: Helm Chart

🔴 Advanced Track

For experienced Kubernetes users:

  1. Lab 10: Istio
  2. Lab 11: CRDs
  3. Lab 18: ArgoCD
  4. Lab 19: Custom Scheduler
  5. Lab 24: Kubebuilder

🛠️ Prerequisites

Before starting these labs, you should have:

  • Basic understanding of containerization (Docker)
  • Command-line (CLI) familiarity
  • A Kubernetes cluster (Minikube, Kind, or cloud-based)
  • kubectl installed and configured

Recommended Tools

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

💡 Tips for Success

  • 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

🚀 Ready to begin?

Start with Lab 00: Verify Cluster or browse the full documentation site!


©2021-2025 Nir Geier  |  GitHub  |  LinkedIn  |  Stack Overflow  |  Discord