Welcome to my fork of Kubernetes the Hard Way! I wanted to learn about Azure and Kubernetes at the same time, so I adapted the tutorial to Azure as I went and wrote an ARM template to deploy all of the Azure resources needed for the cluster. You can find the template in the arm-templates
directory.
Features of the template:
- It deploys all of the resources you will need from all parts of the tutorial at once, not just the compute resources from step 3. This includes the load balancer, etc.
- It is parameterized to allow you to pass your personal machine's IP address so that your cluster will be accessible only from your machine and not from the whole Internet. The other parameter in addition to your personal IP is your public SSH key.
- It includes a network security group with rules to ensure your cluster is only accessible from your personal IP, as explained in the previous step.
Note that many of the commands included in the tutorial steps still need to be adapted to Azure. I didn't bother with updating the few commands that need to be run manually as part of the cluster bootstrapping process.
Also note that using the VM size I put in the ARM template will require two quota increases in a new Azure account (or at least it did for my Azure account): one to increase total regional vCPUs to 12 and one to increase BS series vCPUs to 12.
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, 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!
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
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