Lesson 1 of 28
Module 1 · Concepts — Pods, Deployments, Services, and why `kind`
The four nouns you need
Kubernetes has hundreds of resource types. You will do 95% of the work in this course with four:
- Pod — one or more containers that share a network interface and lifecycle. The smallest thing Kubernetes schedules. You rarely create these directly.
- Deployment — a recipe for "keep N copies of this pod running, and roll out updates safely." This is what you actually create.
- Service — a stable virtual IP and DNS name in front of a set of pods, so clients don't need to track pod IPs as they come and go.
- Namespace — a scoping bucket. Two teams can both have a
demodeployment as long as they're in different namespaces.
If it helps: Deployment is the "desired state", Pod is the "running instance", Service is the "stable front door", Namespace is the "folder".
Why kind for local development
kind stands for Kubernetes-IN-Docker. It runs a real Kubernetes cluster as a set of Docker containers — one container is the control plane, the others are worker nodes. Everything is thrown away when you delete the cluster, which is the behaviour you want while learning. It spins up in ~30 seconds.
Alternatives you may have heard of:
- minikube — similar scope; uses a VM by default (slower).
kindis the more common choice today. - k3d / k3s — lighter-weight K8s distributions; fine, but most team tooling targets upstream K8s, which is what
kindgives you. - Docker Desktop's built-in Kubernetes — fine, but slower to reset and harder to script.
Use kind throughout this module. You'll touch a real managed cluster (GKE) in module 4.
The demo app
For modules 1 and 2 you'll deploy podinfo — a small Go web service used across the K8s ecosystem as a demo target. Public image, exposes /, /healthz, and /metrics out of the box. From module 3 onward you'll replace it with your own image.
What to actually remember from this lesson
- A Deployment creates Pods; a Service exposes them on a stable address.
kindgives you a disposable, real-K8s cluster in seconds.- You'll almost never create a Pod directly — you'll create a Deployment.
Everything else you can look up.