kubernetes-the-hard-way
Bootstrap Kubernetes the hard way. No scripts.
A hands-on tutorial for setting up a Kubernetes cluster entirely by hand, no automation, no scripts, so you deeply understand every component before relying on the tools that hide the details.
Kubernetes The Hard Way is a step-by-step tutorial for learning how to set up a Kubernetes cluster from scratch — manually, without automation tools or scripts. Kubernetes is a system for running containerized applications (packaged software that runs consistently across environments) at scale, managing how they are deployed, connected, and restarted if they crash. Most people install Kubernetes using automated tools that hide the details, but this tutorial intentionally skips all of that to expose every underlying component and configuration step.
The premise is that building something the hard way is the best way to understand it. By provisioning machines, generating TLS certificates (which are the digital certificates that secure encrypted communication), configuring authentication, setting up the distributed key-value store called etcd (which Kubernetes uses to record its state), and manually connecting worker nodes to the control plane, you gain deep insight into what each piece does and why it exists.
The tutorial walks through thirteen labs covering everything from setting up a jumpbox (a dedicated management server), creating a certificate authority, configuring kubectl (the command-line tool for managing Kubernetes), and provisioning network routes so pods (the smallest deployable units in Kubernetes) can talk to each other across nodes.
You would use this tutorial when you want to deeply understand Kubernetes internals — for example, before taking a certification exam, troubleshooting complex cluster issues, or contributing to Kubernetes development. It is explicitly not meant to produce a production-ready cluster; it is purely a learning exercise.
The lab requires four ARM64 or AMD64 virtual or physical machines. It is a documentation-only repository with no primary programming language, licensed under Creative Commons for non-commercial use.
Where it fits
- Study Kubernetes internals deeply before sitting a CKA or CKS certification exam by manually setting up every cluster component from scratch.
- Build the diagnostic knowledge needed to troubleshoot complex cluster issues by understanding exactly what each control plane component does.
- Learn how TLS certificates, etcd, and network routing fit together in a Kubernetes cluster by configuring each one yourself.
- Prepare to contribute to Kubernetes development by gaining a component-level understanding of the architecture.