Learn Kubernetes by running it. Work through the lessons in order and you'll go from your first pod to operating production workloads — Deployments, Services, Ingress, config and secrets, storage, scheduling, autoscaling, RBAC, Helm, and managed clusters. Every lesson is manifests you apply and commands you run.
This course teaches Kubernetes by deploying real workloads to a real cluster, so it builds on the Docker course (which in turn covers the Linux command-line basics you need). Take it first if containers are new; then you only need the kubectl CLI and a local cluster (both set up under "Before you start" below). Every manifest is YAML, where indentation matters.
Before you start
You need a cluster to run the manifests against and the kubectl CLI to talk to it. First install the tools for your OS, then spin up a throwaway local cluster.
1. Install kubectl + kind
Windows
Needs Docker Desktop with the WSL2 backend enabled.
winget install -e Kubernetes.kubectl
winget install -e Kubernetes.kindmacOS
Via Homebrew.
brew install kubectl kindLinux
Via your package manager or Homebrew.
sudo snap install kubectl --classic
brew install kind2. Start a cluster — pick one
kind (Kubernetes in Docker)
The lightest option if you already have Docker. Creates a cluster in a container in seconds.
kind create cluster --name lab
kubectl cluster-infominikube
A single-command local cluster with handy add-ons (ingress, metrics-server, dashboard).
minikube start
kubectl get nodesDocker Desktop
Already installed? Enable Kubernetes in Settings → Kubernetes, and you have a one-node cluster ready. Confirm kubectl reaches it:
kubectl config use-context docker-desktop
kubectl get nodesYour First Cluster
Stand up a local Kubernetes cluster, meet kubectl, and deploy your first application — then watch Kubernetes keep it running. The hands-on foundation for everything that follows.
Pods
The pod is the smallest thing Kubernetes runs. Create one, read its logs, get a shell inside it, understand multi-container pods, and see why you rarely manage pods directly.
Deployments & Rollouts
Deployments are how you run apps for real — declare replicas, scale them, roll out new versions with zero downtime, and roll back instantly when a release goes wrong.
Services & Networking
Pods come and go with their own changing IPs. Services give them a stable address and load-balance across them — from internal-only ClusterIP to externally reachable NodePort and LoadBalancer.
Ingress & External Access
A LoadBalancer per service gets expensive and flat. Ingress puts one smart HTTP entry point in front of many services, routing by hostname and path and terminating TLS.
ConfigMaps & Secrets
Keep configuration out of your images. Inject settings with ConfigMaps and sensitive values with Secrets — as environment variables or mounted files — so one image runs in every environment.
Storage & StatefulSets
Containers are ephemeral — their files vanish on restart. Persist data with volumes, PersistentVolumeClaims, and StorageClasses, then run stateful apps like databases with StatefulSets.
Jobs & CronJobs
Not every workload runs forever. Jobs run a task to completion and stop; CronJobs run them on a schedule — the right tools for migrations, batch processing, and backups.
Resource Requests, Limits & Namespaces
Tell the scheduler what each pod needs with requests, cap what it can take with limits, organize workloads into namespaces, and enforce fair sharing with ResourceQuotas.
Health Probes & Self-Healing
Kubernetes can only heal what it can measure. Teach it your app’s health with liveness, readiness, and startup probes so it restarts what is stuck and routes around what is not ready.
Scheduling Pods onto Nodes
By default the scheduler places pods wherever they fit. Steer that decision with labels and nodeSelector, affinity rules, taints and tolerations, and spread pods across failure domains.
Autoscaling
Match capacity to demand automatically — add pod replicas under load with the Horizontal Pod Autoscaler, right-size requests with the VPA, and grow the cluster itself with the Cluster Autoscaler.
Security & RBAC
Lock down who can do what with Roles and RoleBindings, give pods scoped identities with ServiceAccounts, restrict traffic with NetworkPolicies, and harden containers with a securityContext.
Helm & Deployment Patterns
Package and template your manifests with Helm, then ship safely with progressive delivery — rolling updates, blue-green, and canary releases — plus a look at extending Kubernetes with CRDs.
Observability & Debugging
When something breaks, find it fast — read events and pod status, stream logs, measure CPU and memory with kubectl top, and work through a repeatable triage routine.
Managed Clusters (EKS, AKS, GKE)
Moving from a laptop cluster to production. Compare self-managed against managed Kubernetes — EKS, AKS, and GKE — connect kubectl to a real cloud cluster, and know what the provider runs for you.