Read time: ~

Prerequisites

What you need to know before starting this Kubernetes troubleshooting course: Docker basics, Java/Spring Boot development, and lab environment setup.

Knowledge prerequisites

AreaRequired levelNot required
JavaComfortable writing and running a Java applicationJVM internals: that’s taught in this course
Spring BootCan build a REST controller, wire a DataSource, use application.ymlSpring Cloud, reactive stack: helpful but not required
DockerCan write a Dockerfile, build and run a container image, understand what a container isDocker Compose, Swarm
TerminalComfortable with a shell on macOS, Linux, or Windows (PowerShell or WSL): basic commands (cd, grep, cat)Shell scripting
KubernetesNone: this course starts from zero:

Lab environment setup

You need a local Kubernetes cluster to run every lab in this course. Either kind or minikube works identically for all lessons through the Advanced level.

All platforms: Docker must be installed and running. On Windows, use Docker Desktop with the WSL2 backend enabled.

Option 1

kindrecommended

Lightweight, fast to reset, and ideal for this course.

TopicOfficial docs
kind installationkind.sigs.k8s.io/docs/user/quick-start#installation
kind releases (check current stable version)github.com/kubernetes-sigs/kind/releases
kubectl installation (required companion tool)kubernetes.io/docs/tasks/tools/

Install steps below follow the official quick-start (stable release v0.32.0). If a newer version is published, update the version in the download URLs or use the links above.

macOS

# kubectl
brew install kubectl

# kind — official release binaries
# For Intel Macs
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.32.0/kind-darwin-amd64
# For Apple Silicon (M1/M2/M3)
[ $(uname -m) = arm64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.32.0/kind-darwin-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

kind create cluster --name course
# Or install with brew: 
brew install kind kubectl

Linux

# kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

# kind — official release binaries
# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.32.0/kind-linux-amd64
# For ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.32.0/kind-linux-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

kind create cluster --name course

Windows (PowerShell)

# kubectl
winget install Kubernetes.kubectl

# kind — official release binary
curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.32.0/kind-windows-amd64
Move-Item .\kind-windows-amd64.exe "$env:LOCALAPPDATA\Microsoft\WindowsApps\kind.exe"

kind create cluster --name course

Pick a directory already on your PATH if WindowsApps is not suitable on your machine.

# Or: winget install Kubernetes.kind
Option 2

minikube

macOS

brew install minikube kubectl
minikube start

Linux

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

minikube start

Windows (PowerShell)

winget install Kubernetes.minikube Kubernetes.kubectl
# Or: choco install minikube kubernetes-cli
minikube start

Verify your cluster

kubectl cluster-info
kubectl get nodes

You should see one Ready node. If you don’t, stop here and fix your cluster setup before continuing, every later lesson assumes this works.

Tools you’ll install as you go

The course introduces tools progressively, at the level where they first become necessary, you don’t need any of these on day one:

ToolFirst needed at
jqIntermediate
k9s (optional TUI)Beginner, optional
nicolaka/netshoot (container image, no install)Intermediate
Eclipse MAT / VisualVMAdvanced
async-profilerAdvanced
istioctlAdvanced
Cloud CLI (aws/gcloud/az)Expert, only if you use a managed cluster for that module
Chaos Mesh or LitmusExpert

Installation: step-by-step setup for every tool in the table lives on Tool Installation Guide. Return here for the “when you need it” overview.

A note on the Expert level

Levels Beginner through Advanced are fully achievable on a local kind/minikube cluster. The Expert level’s cloud-managed and multi-cluster lessons are easier with access to a real EKS/GKE/AKS cluster, if you don’t have one, read those lessons for the mental model and command shapes even if you can’t run every command against a live cloud account.