← All open source projects

Kubernetes The Hard Way

kelseyhightower/kubernetes-the-hard-way

Kubernetes The Hard Way is a learning guide for manually bootstrapping a Kubernetes cluster without automation scripts.

Forks 15,708
Language Unknown
License Apache-2.0
Synced 2026-06-10

What it is

Kubernetes The Hard Way is a learning guide by Kelsey Hightower that walks through manually bootstrapping a Kubernetes cluster. Its goal is not to bring production up faster, but to take the long route and expose the parts Kubernetes is made of: certificates, etcd, the control plane, kubelet, networking, configuration files, and checks.

The repository appeared in 2016 and became a standard reference for people who want to understand Kubernetes more deeply than a single install command allows. The current materials explicitly say the result should not be treated as production ready: it is a learning lab.

What is inside

Inside is a sequence of labs: prerequisites, jumpbox setup, compute resources, certificate authority, Kubernetes configuration files, encryption keys, etcd, control plane, worker nodes, networking, and smoke tests. The order matters because each step exposes a dependency that automated installers usually hide.

Why the guide is useful

This snippet shows the learning style: instead of one magic command, you create artifacts that Kubernetes components later need.

Language: Bash
openssl genrsa -out ca.key 4096
openssl req -x509 -new -sha512 -key ca.key -days 3650 -out ca.crt
# the certificates are then used by cluster components

Where it is useful

The guide is useful for DevOps engineers, platform teams, administrators, and developers who already use Kubernetes but want to understand what happens underneath. After working through it, control-plane logs, TLS, networking, kubeconfig, and automated installers become easier to evaluate.

Limitations

This is not a replacement for kubeadm, managed Kubernetes, or an internal platform. The guide deliberately chooses the manual path and gives limited support for the final cluster. It is best approached as a learning route: slow, note-driven, and ready for rebuilding steps when something breaks.