finds.dev← search

// the find

kelseyhightower/kubernetes-the-hard-way

★ 48,848 · Apache-2.0 · updated Apr 2025

Bootstrap Kubernetes the hard way. No scripts.

A step-by-step tutorial for bootstrapping a Kubernetes cluster entirely by hand — no kubeadm, no Terraform, no shortcuts. It's for developers who want to actually understand what etcd, the API server, kubelet, and CNI are doing instead of treating them as a black box that `helm install` hides.

The no-scripts constraint is the whole point and it works: you genuinely learn what each component does because you have to configure and start it yourself. The lab structure is well sequenced — certificates before config files before bootstrapping, which mirrors the real dependency order. Config files and systemd units are provided as plain files you can inspect and modify, not generated output you paste blindly. Kept current with reasonably recent component versions (k8s 1.32, containerd 2.1, etcd 3.6).

Single control plane node means you don't touch HA etcd quorum or API server leader election, which are the parts that actually bite you in production. No ingress, no persistent volumes, no RBAC policies beyond the bare minimum — the cluster you end up with isn't representative of anything you'd actually run. The tutorial targets physical or virtual machines on a flat network, so anyone running it on a cloud provider with a managed VPC has to improvise the networking chapter. Hasn't added a cloud-provider or CNI plugin chapter despite the project being years old — pod networking stays at static routes.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →