This tutorial project is a modified version of the original developed by Kelsey Hightower.
This tutorial walks you through setting up Kubernetes the hard way and is forked from Kelsey Hightower's original guide translated to Microsoft Azure. The motivation for this project is to understand what it takes to setup a Kubernetes environment from scratch and and to understand the Azure compute resources that are used instead of GCP resources. As Kelsey does a great job of maintaining his repo as new versions of Kubernetes gets released I would ideally maintain this repository as up-to-date as possible for Azure.
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.
There are various individuals who have also made available their work that I am referencing in the following repositories:
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!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
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.21.0
- containerd v1.4.4
- coredns v1.8.3
- cni v0.9.1
- etcd v3.4.15
As of the time of the writing I am using the following versions of these command line tools to work on the project.
- Terraform v1.0.4
- Azure Resource Manager v2.72.0
To be developed.
This tutorial assumes you have access to the Google Cloud Platform. While GCP is used for basic infrastructure requirements the lessons learned in this tutorial can be applied to other platforms.
- 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