2025-06-28 19:44:54 +03:00
< div align = "right" >
< details >
< summary > 🌐 Language< / summary >
< div >
< div align = "right" >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=en" > English< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=zh-CN" > 简体中文< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=zh-TW" > 繁體中文< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=ja" > 日本語< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=ko" > 한국어< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=hi" > हिन्दी< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=th" > ไทย< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=fr" > Français< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=de" > Deutsch< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=es" > Español< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=it" > Itapano< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=ru" > Русский< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=pt" > Português< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=nl" > Nederlands< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=pl" > Polski< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=ar" > العربية< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=fa" > فارسی< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=tr" > Türkçe< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=vi" > Tiếng Việt< / a > < / p >
< p > < a href = "https://openaitx.github.io/view.html?user=kelseyhightower&project=kubernetes-the-hard-way&lang=id" > Bahasa Indonesia< / a > < / p >
< / div >
< / div >
< / details >
< / div >
2016-07-07 17:15:59 +03:00
# Kubernetes The Hard Way
2023-11-01 09:16:49 +03:00
This tutorial walks you through setting up Kubernetes the hard way. This guide is not for someone looking for a fully automated tool to bring up a Kubernetes cluster. Kubernetes The Hard Way is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster.
2016-07-09 02:35:09 +03:00
2017-08-29 00:19:25 +03:00
> The results of this tutorial should not be viewed as production ready, and may receive limited support from the community, but don't let that stop you from learning!
2016-09-11 23:37:41 +03:00
2019-09-14 21:41:56 +03:00
## Copyright
< a rel = "license" href = "http://creativecommons.org/licenses/by-nc-sa/4.0/" > < img alt = "Creative Commons License" style = "border-width:0" src = "https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" / > < / a > < br / > This work is licensed under a < a rel = "license" href = "http://creativecommons.org/licenses/by-nc-sa/4.0/" > Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License< / a > .
2016-07-07 17:27:23 +03:00
## Target Audience
2023-11-01 09:16:49 +03:00
The target audience for this tutorial is someone who wants to understand the fundamentals of Kubernetes and how the core components fit together.
2016-07-07 17:27:23 +03:00
2016-07-07 23:47:11 +03:00
## Cluster Details
2023-11-01 09:16:49 +03:00
Kubernetes The Hard Way guides you through bootstrapping a basic Kubernetes cluster with all control plane components running on a single node, and two worker nodes, which is enough to learn the core concepts.
Component versions:
2016-07-07 23:47:11 +03:00
2025-04-07 04:32:30 +03:00
* [kubernetes ](https://github.com/kubernetes/kubernetes ) v1.32.x
* [containerd ](https://github.com/containerd/containerd ) v2.1.x
2024-11-15 02:43:51 +03:00
* [cni ](https://github.com/containernetworking/cni ) v1.6.x
2025-04-07 04:32:30 +03:00
* [etcd ](https://github.com/etcd-io/etcd ) v3.6.x
2016-09-11 09:27:33 +03:00
2016-09-12 20:57:12 +03:00
## Labs
2025-04-10 09:08:13 +03:00
This tutorial requires four (4) ARM64 or AMD64 based virtual or physical machines connected to the same network.
2017-08-29 00:19:25 +03:00
* [Prerequisites ](docs/01-prerequisites.md )
2023-11-01 09:16:49 +03:00
* [Setting up the Jumpbox ](docs/02-jumpbox.md )
2017-08-29 00:19:25 +03:00
* [Provisioning Compute Resources ](docs/03-compute-resources.md )
* [Provisioning the CA and Generating TLS Certificates ](docs/04-certificate-authority.md )
* [Generating Kubernetes Configuration Files for Authentication ](docs/05-kubernetes-configuration-files.md )
* [Generating the Data Encryption Config and Key ](docs/06-data-encryption-keys.md )
* [Bootstrapping the etcd Cluster ](docs/07-bootstrapping-etcd.md )
* [Bootstrapping the Kubernetes Control Plane ](docs/08-bootstrapping-kubernetes-controllers.md )
* [Bootstrapping the Kubernetes Worker Nodes ](docs/09-bootstrapping-kubernetes-workers.md )
* [Configuring kubectl for Remote Access ](docs/10-configuring-kubectl.md )
* [Provisioning Pod Network Routes ](docs/11-pod-network-routes.md )
2023-11-01 09:16:49 +03:00
* [Smoke Test ](docs/12-smoke-test.md )
* [Cleaning Up ](docs/13-cleanup.md )