The need

Lately, I was in the need for a fast way to provision myself a free and simple Kubernetes cluster with multiple worker nodes and portable across multiple platforms (Windows si primary goal, because we use it at work and Unix-like are nice for personal developing). I’m studying to achieve CKAD certification so I’ve talked to myself: is there a fast and complete solution?

TL;DR: YES

Solutions that don’t fit

Running Kubernetes locally have a simple and straight forward name: Minikube, which is a free and fast solution for day-to-day development workflows and learning purposes, but lacks a fundamental requirement: multiple worker nodes!

For the sake of completeness I’ll leave here a brief and non exhaustive list of Minikube alternative:

For beginners:

Docker for Desktop macOS only

Microk8s Linux only

Intermediates:

KIND requires Docker (WSL2 on Windows)

K3D requires Docker (hard on Windows)

Solution that fits: kubeadm

kubeadm helps you bootstrap a minimum viable Kubernetes cluster that conforms to best practices.

Following the Kubernetes Getting started guide you can find a complete guide to bootstrap a test-conformant cluster with multiple worker nodes.

So, I’ve done it for you! And packaged in a simple Vagrant format!

I’m building a GitHub repository where you can find all the instructions:

GitHub Repo: https://github.com/filippobuletto/k8s-playground

Please try it and leave some feedback and/or feature requests! It’s still a work in progress, comments are welcome!