Mission: Learn Kubernetes
Why
I want to learn Kubernetes properly: the concepts, the mental model, and the practical skills to run and debug a real cluster. k3s is the vehicle because it runs a real, standard Kubernetes cluster on this single NixOS machine, one I can break and rebuild freely. My homelab services (PaperMC, Grafana, etc.) are useful practice targets along the way, but learning Kubernetes itself is the goal.
Success looks like
- I can explain how the control plane and data plane work, and trace what
happens from
kubectl apply -fto a running pod, without looking it up. - I can write Deployment, Service, ConfigMap, PVC, and Ingress manifests from scratch and reason about what happens when a pod dies.
- I can debug an unknown crashloop using only describe, events, and logs.
- I can run a multi-service app on the cluster with storage and config, and clean it up by deleting a namespace.
- I understand where Helm, operators, and GitOps fit in the ecosystem, and can use them once the basics feel easy.
Constraints
- Week 1 is the current horizon: ~2h/day for a week, per the plan in 10.21. After that, reassess.
- k3s on NixOS, one machine. Caddy owns host ports 80/443, so k3s Traefik/servicelb stay disabled for now (port-forward + NodePort for week 1).
- I already live in a Docker Compose mental model; use those analogies to teach, but the goal is real Kubernetes understanding, not a compose port.
- I prefer docs and lessons I can read at my own pace; manifests are the real habit, imperative kubectl is fine for throwaway experiments.
Out of scope
- Kubernetes the Hard Way, multi-node HA clusters, cloud EKS/GKE/AKS specifics, production RBAC policy design. Those come after the basics feel easy.
- Running the homelab on k3s as a goal in itself. It may happen later as practice, but it is not the mission.
- Joining Discord/forum communities; I learn solo from docs and the teacher agent. (If this changes, RESOURCES.md gets a Wisdom section.)