This is a fork of the awesome Kubernetes The Hard Way by Kelsey Hightower and is geared towards using it on AWS. Also thanks to @slawekzachcial for his work that made this easier, and further thanks to @prabhatsharma for his work that made this even easier. (Yes, this is a fork of a fork of a fork.)
This tutorial walks you through setting up Kubernetes the hard way. This guide is not for people looking for a fully automated command to bring up a Kubernetes cluster. If that's you then check out Google Kubernetes Engine, AWS Elastic Container Service for Kubernetes or the Getting Started Guides.
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.
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!
The target audience for this tutorial is someone planning to support a production Kubernetes cluster and wants to understand how everything fits together.
Kubernetes The Hard Way guides you through bootstrapping a highly available Kubernetes cluster with end-to-end encryption between components and RBAC authentication.
- kubernetes v1.31.0
- containerd v1.7.20
- coredns v1.32.0
- cni v1.5.1
- etcd v3.5.15
This tutorial is a fork of the official Kubernetes The Hard Way guide, tailored for use on AWS.
Please note that this fork is of an older version of the original guide, and while it has been upgraded to work with the latest versions of the referenced tools(as of 2024-08), its content has diverged somewhat from the original guide.
Also, as I prepared this repository while I was myself studying the material, the quality of the added code in this fork may not be up to standard. Please expect some rough edges and hopefully some fixes in the future.
- Prerequisites
- Installing the Client Tools
- Provisioning Compute Resources
- Provisioning the CA and Generating TLS Certificates
- Generating Kubernetes Configuration Files for Authentication
- Generating the Data Encryption Config and Key
- Bootstrapping the etcd Cluster
- Bootstrapping the Kubernetes Control Plane
- Bootstrapping the Kubernetes Worker Nodes
- Configuring kubectl for Remote Access
- Provisioning Pod Network Routes
- Deploying the DNS Cluster Add-on
- Smoke Test
- Cleaning Up