Skip to content

Kubernetes Labs

📋 Lab Overview

Welcome to the hands-on Kubernetes labs! This comprehensive series of labs will guide you through essential Kubernetes concepts and advanced topics.

🗂️ 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
35 Secret Management Advanced secret management strategies
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
29 EFK Stack Elasticsearch, Fluentd, and Kibana stack

GitOps & CI/CD

Lab Topic Description
13 HelmChart 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
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
Tasks Overview Overview of all available practice tasks
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: Custom Resource Definition
  3. Lab 18: ArgoCD
  4. Lab 19: Custom Scheduler
  5. Lab 24: Kubebuilder

💡 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

🚀 Get Started

Ready to begin? Click on any lab on the left menu, or start with Lab 00: Verify Cluster!