Tinkering around with Tinkerbell - exploring bare metal k8s cluster provisioning...
I want to learn more about the state of art kubernetes cluster provisoning on bare metal.
At work we use Gardener to provision k8s clusters on different (cloud)providers as GCP, AWS, OpenStack, VMware.
Our companys (old, legacy, now switched off) bare metal cluster was provisioned by terraform, metallb, matchbox, some outdated docker-images and a lot of scripts.
Nowadays there is the shiny Cluster API to provide the same declarative way to structure and provide nodes and other infrastructure as to k8s clusters itself, you might want to read Cluster API - A Guide on How to Get Started if you are new to that topic.
As far as i see, CAPI focuses on hyperscalers (as also Gardener does). I am interested in bare metal hardware provisoning.
Equinix Metal developed Tinkerbell and opensourced it, i will give it a try.
There are some shortcuts as K3S, but i want to use a small, container centric os like flatcar, not a fullsize ubuntu.
In a first step i tried the Tinkerbell sandbox.
See my latest notes in the k3d approach with a dedicated master, AMD64 arch.
I tried (and wrote it down) different things before, but its more for me to (later) understand what was going wrong: k3d approach with docker on a dedicated interface, k3d approach with a raspi(stopped by getting moar amd64 hardware).
I decided to use dedicated hardware for that experiment.
Find more about the used hardware.
- Cluster API: https://medium.com/swlh/clusterops-1-line-commit-to-upgrade-your-kubernetes-clusters-de3548124d04
- Bare-Metal Chronicles - Tinkerbell: https://www.youtube.com/watch?v=NCFUUjTw6hA
- TGI k8s 158 - bare metal clusters with Cluster API Tinkerbell: https://www.youtube.com/watch?v=Di_AR6nAss0
- Tinkerbell with flatcar: https://tinkerbell.org/examples/flatcar-container-linux/
- Flatcar with Tinkerbell: https://kinvolk.io/blog/2020/10/provisioning-flatcar-container-linux-with-tinkerbell/
- Tink binaries https://github.com/tinkerbell/tink