Skip to content

Home

Kubernetes EscapeRoom Labs

☸️ Kubernetes Escape Room

Learn Kubernetes from Zero to Hero through 56 Interactive Puzzle Rooms


Decryption Tip

If the content doesn’t appear after entering the password in the selected room, please refresh the page (F5 or Ctrl+R).


Usage

  • There are several ways to run the Kubernetes-EscapeRoom Labs.
  • Choose the method that works best for you.

Using Docker is the easiest way to get started locally with the labs:

# GitHub Container Registry
docker run -it --pull=always -p 3000:3000 ghcr.io/nirgeier/kubernetes-escaperoom

Prerequisites:

  • Docker and Docker Compose installed on your system
  • No additional setup required
  • The easiest way to get started with the labs
  • Learn in your browser without any local installation

🌐 Launch on Killercoda

Benefits:

  • No installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed

For those who prefer to run it directly on their machine:

# Clone the repository
git clone https://github.com/nirgeier/Kubernetes-EscapeRoom
# Change to the Labs directory
cd Kubernetes-EscapeRoom/Labs
# Start with the setup lab
cd assets
# Follow the instructions in the README of each lab
cat README.md

Prerequisites:

  • A Unix-like operating system (Linux, macOS, or Windows with WSL)
  • Basic command-line tools
  • Google Cloud Shell provides a free, browser-based environment with all necessary tools pre-installed.
  • Click on the Open in Google Cloud Shell button below:

Open in Cloud Shell

  • The repository will automatically be cloned into a free Cloud instance.
  • Use CTRL + click to open it in a new window.
  • Follow the instructions in the README of each lab.

Benefits:

  • No local installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed
  • Free tier available

Intro

  • This tutorial teaches Kubernetes through puzzles designed as escape rooms.
  • Each room covers a different K8s concept - from basic kubectl commands to writing custom operators and schedulers.
  • All labs run on Kind (Kubernetes in Docker) - no cloud account needed.
  • Every room folder includes a README that describes the room’s objectives, hints, rules, and how to verify the solution.
  • The K8s Escape Room is a series of Kubernetes puzzles (Escape-rooms, similar to the real-life attractions).
  • The puzzles are designed to teach players Kubernetes skills & features from beginner to expert level.

Pre-Requirements

  • This tutorial will test your Kubernetes and Linux skills.
  • You should be familiar with the following topics:
  • Basic Linux commands and shell navigation
  • Basic knowledge of Docker and containers
  • Basic understanding of YAML format
  • A machine with Docker installed (for Kind clusters)
  • kubectl CLI tool
  • kind CLI tool

# Room Topic Difficulty
01 Kind Cluster Setup Install Kind & create cluster ⭐
02 kubectl Basics Essential kubectl commands ⭐
03 K8s Architecture Control plane components ⭐
04 Namespaces Create & manage namespaces ⭐
05 Context & Config Kubeconfig management ⭐
06 Your First Pod Create and manage pods ⭐
07 Multi-Container Pods Sidecar & init containers ⭐⭐
08 Pod Lifecycle Pod phases & restartPolicy ⭐⭐
09 Resource Limits CPU/Memory requests & limits ⭐⭐
10 Health Checks Liveness & readiness probes ⭐⭐
11 ReplicaSets Scaling with ReplicaSets ⭐⭐
12 Deployments Rolling updates & rollbacks ⭐⭐
13 DaemonSets Run pods on every node ⭐⭐
14 StatefulSets Ordered, stateful workloads ⭐⭐
15 Jobs & CronJobs Batch & scheduled tasks ⭐⭐
16 ClusterIP Services Internal service discovery ⭐⭐
17 NodePort & LoadBalancer Exposing services externally ⭐⭐
18 Ingress Controllers HTTP routing rules ⭐⭐⭐
19 DNS & Service Discovery CoreDNS & resolution ⭐⭐⭐
20 Network Policies Pod-level firewall rules ⭐⭐⭐
21 ConfigMaps External configuration ⭐⭐
22 Secrets Managing sensitive data ⭐⭐
23 Volumes & Mounts EmptyDir, HostPath ⭐⭐
24 PersistentVolumes Persistent storage ⭐⭐⭐
25 StorageClasses Dynamic provisioning ⭐⭐⭐
26 ServiceAccounts Pod identity ⭐⭐⭐
27 RBAC Roles Access control ⭐⭐⭐
28 ClusterRoles Cluster-wide RBAC ⭐⭐⭐
29 Pod Security Pod Security Standards ⭐⭐⭐
30 SecurityContexts Container security settings ⭐⭐⭐
31 Labels & Selectors Organizing resources ⭐⭐
32 Annotations Resource metadata ⭐⭐
33 Taints & Tolerations Node scheduling constraints ⭐⭐⭐
34 Node Affinity Advanced scheduling ⭐⭐⭐
35 Topology Spread Even pod distribution ⭐⭐⭐
36 kubectl Debug Debugging running pods ⭐⭐⭐
37 Log Analysis Container logging patterns ⭐⭐⭐
38 Events & Troubleshooting Cluster events ⭐⭐⭐
39 Resource Quotas Namespace limits ⭐⭐⭐
40 LimitRanges Default container limits ⭐⭐⭐
41 Horizontal Pod Autoscaler Auto-scaling pods ⭐⭐⭐⭐
42 Helm Charts Package management ⭐⭐⭐
43 Kustomize Overlay-based customization ⭐⭐⭐
44 Custom Resources (CRDs) Extending K8s API ⭐⭐⭐⭐
45 Operators Building K8s operators ⭐⭐⭐⭐
46 Custom Scheduler Scheduler framework ⭐⭐⭐⭐⭐
47 Admission Webhooks Mutating & validating ⭐⭐⭐⭐⭐
48 API Aggregation Extending the API server ⭐⭐⭐⭐⭐
49 etcd Operations Backup & restore ⭐⭐⭐⭐
50 Multi-Cluster Kind Federation basics ⭐⭐⭐⭐
51 Service Mesh Basics Traffic management ⭐⭐⭐⭐
52 GitOps with ArgoCD Declarative delivery ⭐⭐⭐⭐
53 Pod Disruption Budgets High availability ⭐⭐⭐⭐
54 Priority & Preemption Pod scheduling priority ⭐⭐⭐⭐
55 CSI Drivers Container Storage Interface ⭐⭐⭐⭐⭐
56 K8s the Hard Way Manual cluster bootstrap ⭐⭐⭐⭐⭐
99 Exit Exam Final Challenge πŸ†