$ skip to content
devresurge

Kubernetes Internals — From Linux Up (Book Length)

A book-length course that treats Kubernetes as orchestration of Linux constructs, not magic YAML.

You will build a mental model from processes → namespaces → cgroups → containers → pods → kubelet → control plane → networking → storage → security → debugging, then go monograph-deep on etcd, controllers/informers, CNI, eBPF dataplanes, and CSI. Every chapter starts ELI5, then gets precise.

Who this is for

  • Engineers who use kubectl and want to know why things break
  • Platform / SRE folks who debug nodes, not just manifests
  • Anyone tired of “containers are lightweight VMs”

Prerequisites

  • Comfortable in a Linux shell (ps, ls, pipes)
  • A Linux VM, WSL2, or cloud VM with root (or passwordless sudo)
  • Optional but strongly recommended: kind + kubectl + crictl

You do not need prior Kubernetes experience. You do need curiosity about what the kernel is doing.

How to take the course

  1. Read the core arc (01–16) in order
  2. Then the deep dives (17–21) — each assumes its parent chapter
  3. Run the Lab in each chapter (or the matching script under labs/)
  4. After each arc, take the DevResurge quiz and earn the badge
flowchart LR
  foundation[Ch 01-04 Linux] --> runtime[Ch 05-07 Containers]
  runtime --> node[Ch 08-11 Node and control plane]
  node --> dataplane[Ch 12-14 Net and storage]
  dataplane --> ops[Ch 15-16 Security and debug]
  ops --> deep[Ch 17-21 Deep dives]

Syllabus — core arc

#ChapterCore idea
01Linux processesProcesses are the real unit of work
02NamespacesWalls for what you can see
03cgroupsBudgets for what you can use
04Security primitivesCapabilities, seccomp, LSM
05OCI imagesSuitcases of files + config
06containerd & CRIWho actually starts containers
07PodsShared fate, shared network namespace
08kubeletThe node babysitter
09API server & etcdDesired state store
10ControllersReconcile forever
11SchedulerWho goes where
12NetworkingPod IP → Service → world
13Ingress & GatewayL7 front door
14StorageDisks that outlive pods
15Cluster securitySA, RBAC, admission, NetworkPolicy
16TroubleshootDebug like an owner

Syllabus — deep dives (book depth)

#ChapterParentCore idea
17etcd deep dive09Raft, WAL, compaction, backups
18Controllers deep dive10Informers, workqueues, finalizers
19CNI deep dive12Plugin contract, veth, IPAM
20eBPF dataplane12/19Maps, hooks, kube-proxy replacement
21CSI deep dive14Provision → attach → stage → publish

Quiz track (DevResurge)

Pass at 80% to earn badges.

ArcChaptersQuizBadge
Linux foundations01–04/quizzes/k8s-linux-foundations/K8s Linux Roots
Containers & runtime05–07/quizzes/k8s-containers-runtime/K8s Runtime
Node & control plane08–11/quizzes/k8s-node-control-plane/K8s Control Plane
Networking & storage12–14/quizzes/k8s-networking-storage/K8s Data Plane
Security & ops15–16/quizzes/k8s-security-ops/K8s Secure Ops
Deep dives17–21/quizzes/k8s-deep-dives/K8s Deep Dive

Milestones

  • Pass the five core K8s quizzes → Cluster Internals
  • Pass those five plus deep dives → Cluster Scholar

Seed quizzes locally with:

uv run python manage.py seed_quizzes

Labs

Scripts live in labs/. They are written for Linux (or WSL2). Run with:

chmod +x courses/k8s-internals/labs/*.sh
sudo ./courses/k8s-internals/labs/02-namespaces-demo.sh
ScriptChapter
02-namespaces-demo.sh02
03-cgroups-demo.sh03
07-pod-netns.sh07
08-crictl-inspect.sh08
17-etcd-raft-lab.sh17
18-controllers-lab.sh18
19-cni-inspect.sh19
20-ebpf-observe.sh20
21-csi-inspect.sh21

Pedagogy contract

Every chapter follows the same shape:

  1. ELI5 hook — one analogy
  2. Mental model — the precise idea in plain words
  3. What Linux / the component does — kernel / userspace reality
  4. How Kubernetes uses it — the bridge
  5. Lab — feel it with your hands
  6. Gotchas — the lies that bite in production

What this course is not

  • Not a YAML cookbook or CKAD dump
  • Not vendor-specific (EKS/GKE/AKS appear only as callouts)
  • Not a substitute for reading upstream design proposals — it is book-depth on the five deep-dive topics above

On DevResurge: open /learn/courses/k8s-internals/ (also findable via /search/).

Ready? Start with 01 — Linux processes.