Galle, LK--:--5/6 sites live

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.

16 Jun 20264 min readSelf Guide · Stage 4#Kubernetes#K8s#kubectl#Ingress
W3DevOps Module · Kubernetes

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

  1. 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…
  2. 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.
  3. 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…
  4. 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=1 on Cloud Run because SQLite has a single writer. On Kubernetes that would be a StatefulSet with replicas: 1 and 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