Provisioning a vanilla k8s cluster with kubeadm and istio using ansible
Monday, February 6th 2023

I have been using k3s as the weapon of choice for my local development k8s server for a while now. Understandably this obfuscates the building blocks that make up a k8s cluster in a neat little box that can be provisioned and managed easily. After all this is why people use k3s (or minikube etc.). People need an easy-to-use local development environment so that they can go on with their lives.

I am, however, very interested in knowing what makes a k8s cluster tick. Sure, reading up on it online is one thing, but I am a very hands-on kind of guy. I trully learn by doing. This is why I spent most part of yesterday compiling a list of steps needed to provision a single-node k8s cluster. After all the work was done I compiled an ansible playbook so that it can be documented / versioned.

This is a single-node k8s cluster that uses Calico as its CNI. It also installs Istio.

You can find the repo here: https://github.com/sm0ke21/k8s-cluster