After this lesson, you will be able to: Explain what Kubernetes is, why Docker Compose hits a ceiling, and what problem Kubernetes actually solves.
Kubernetes (K8s) is the container orchestrator that runs at planet scale. If you ship a few containers on one host, Compose is fine. If you ship many services across many hosts with rolling updates, autoscaling, and self-healing, you need Kubernetes.
This is a free introductory lesson. No purchase required.
Compose runs on ONE host. If that host fails, the app is down. Compose has no built-in autoscaling, no rolling updates with zero downtime, no service mesh, no real secret management. Compose is great for dev, OK for small single-host production, useless past one machine. Kubernetes solves all of that at the cost of significant complexity.
A cluster of machines (nodes) running a control plane that decides 'this container goes on that node'. You give Kubernetes a desired state (YAML: 'I want 5 copies of this container running'); the control plane works to make actual state match desired state. Nodes crash, K8s reschedules. Traffic shifts, K8s autoscales. You push a new image, K8s rolls it out gradually. The platform handles the boring stuff that broke your weekend before.
Self-hosted: you run the control plane + nodes yourself. Hard. Possible with kubeadm, k3s, RKE. Only at large scale. Managed: AWS EKS, Google GKE, Azure AKS, DigitalOcean Kubernetes, Linode Kubernetes. Cloud provider runs the control plane (often free or pennies/hr); you only manage workloads. For learning: minikube or kind (Kubernetes-in-Docker) on your laptop. No cloud cost. We use kind in the next lessons.
Lightest-weight local cluster. Runs as a Docker container.
Prereq: Docker installed (do-docker-01)
Install kind:
macOS: brew install kind
Linux: curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64 && chmod +x kind && sudo mv kind /usr/local/bin
Windows: scoop install kind (or download the .exe)
Install kubectl:
macOS: brew install kubectl
Linux: see kubernetes.io/docs/tasks/tools/
Windows: scoop install kubectl
Create cluster: kind create cluster
Verify: kubectl get nodes (should show one node, Status Ready)
When done: kind delete cluster
Pick the most senior answer.