/kubernetes-the-hard-way-hetzner

About setting up a bootstrapped kubernetes cluster on hetzner cloud

Primary LanguageShellMIT LicenseMIT

About

This is a fork of the outstanding Kubernetes The Hard Way - AWS, itself a fork of the awesome Kubernetes The Hard Way by Kelsey Hightower and is geared towards using it on Hetzner Cloud.

  1. Kubernetes v1.17.2
  2. cri-tools v1.17.0
  3. containerd v1.3.2
  4. CNI plugins v0.8.5
  5. etcd v3.3.18
  6. doctl v1.60.0

Kubernetes The Hard Way

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!

Target Audience

The target audience for this tutorial is someone planning to support a production Kubernetes cluster and wants to understand how everything fits together.

Cluster Details

Kubernetes The Hard Way guides you through bootstrapping a highly available Kubernetes cluster with end-to-end encryption between components and RBAC authentication.

Labs

This tutorial assumes you have access to Hetzer Cloud. If you are looking for the GCP version of this guide then look at : https://github.com/kelseyhightower/kubernetes-the-hard-way.

Scripted setup

While working through this, it became obvious that it would be helpful to have a way to get back to where I was at a given point. So the scripts in the scripts/ folder follow along with the documentation steps.

Be sure to set the region for your cloud resources before running the scripts:

source scripts/set_env.sh

So to get to the end state after completing all the steps in 07-bootstrapping-etcd.md, you can just run

for i in {3..7}; do
  ./scripts/$i.sh;
done

...though since this is the hard way, it's recommended to only use scripts for the steps you've already completed manually, if you need to tear everything down and step away from the project for a bit, just so you don't burn through money on idling instances.