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 Azure Container Services, or the Getting Started Guides.
This tutorial uses Microsoft Azure and Azure CLI 2.0. It is a fork from Kubernetes The Hard Way on Azure and has references from Kubernetes The Hard Way On VirtualBox.
In this tutorial I have used Docker container run-time and Weave CNI which is different from the original one.
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 1.19.0
- Docker-CE 19.03.11
- etcd v3.4.9
- CoreDNS
This tutorial assumes you have access to the Microsoft Azure. While Azure is used for basic infrastructure requirements the lessons learned in this tutorial can be applied to other platforms.
- Prerequisites
- Provisioning Azure infrastructure using Terraform (Optional)
- Provisioning Compute Resources
- Installing the Client Tools
- 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
- Deploy Pod Networking Solution
- Deploying the DNS Cluster Add-on
- Smoke Test
- Kubernetes Dashboard (Optional)
- Cleaning Up