W3DevOps Module · Kubernetes: Pods, Deployments, Services, Ingress and kubectl
The Kubernetes track of my DevOps handbook — control plane vs worker nodes, CRI/CNI/CSI, zero-downtime Deployments, StatefulSets vs DaemonSets, Services, Ingress and the kubectl commands I reach for when a pod won't start.

Most of my deployed projects run on Cloud Run, which is Kubernetes-shaped (Knative) without the cluster to manage. But you can't make good decisions about when to stop using a managed platform without understanding what it hides. This is the Kubernetes module of the course — 26 lab captures across four lessons.
What this module covers
- The control plane (
kube-apiserver,etcd, scheduler, controller-manager) and worker components (kubelet,kube-proxy,containerd) - The three standard interfaces: CRI, CNI and CSI
- Pods → ReplicaSets → Deployments, with health checks and resource limits
- Deployment vs StatefulSet vs DaemonSet — which one, when
- ClusterIP / NodePort / LoadBalancer, and host/path routing with Ingress
- A kubectl cheat sheet organised around debugging
Lessons in this module
- Kubernetes Cluster Architecture — Kubernetes (often abbreviated K8s) is an open-source container orchestration engine originally designed by Google (Borg) to automate deploying, scaling, healing, and managing containerized applications…
- Kubernetes Workloads: From Pods to Deployments — In Kubernetes, you almost never deploy individual containers directly. Instead, you work with higher-level abstractions that manage replication, rollouts, health probes, and persistent identity.
- Kubernetes Services & Ingress Routing — Pods are mortal. They die, scale up, scale down, and get rescheduled onto different nodes, changing their IP addresses continuously. A Kubernetes Service provides a stable, permanent IP and DNS entry that…
- Essential Kubectl Commands & Production Debugging — kubectl is the official command-line client used to control any Kubernetes cluster. Below is the ultimate reference matrix used during production outages and deployments.
Start with Lesson 08: Kubernetes Cluster Architecture — every lesson links to the next, and you can mark each one complete.
Why my projects mostly don't run on Kubernetes (yet)
Reading this track back, the honest summary is: Kubernetes is the right answer when you have many services, many teams, or stateful workloads that need careful scheduling. For a single FastAPI agent backend with a SQLite file, it's overhead.
- Nora Labs is pinned to
--max-instances=1on Cloud Run because SQLite has a single writer. On Kubernetes that would be aStatefulSetwithreplicas: 1and a PVC — more YAML for the same constraint. - The Part Timer has two independently deployable services (API and web) — the point at which an Ingress with path routing starts to make sense. Today Cloud Run gives each one its own URL.
- The SRE handbook project is where I practice the K8s side: static container + Ingress routing.
Next in the series: AWS — IAM, EC2, S3, VPC and Terraform.
Keep going: Start the module → · Full course outline · Self Guide
Finished this one?
Part of Self Guide · Stage 4: Kubernetes. Progress is saved in this browser.



