Bootstrap Kubernetes clusters on Raspberry Pi using kubeadm.
You may also take a look at the Talos installation: k8s-bootstrap-talos.
This Kubernetes installation has been verified on Ubuntu 24.04 running on both Raspberry Pi 4 and 5.
Execute the provided script on all nodes (both control plane and worker nodes) prior to starting the installation process:
sudo bash node-prepare.sh
Once completed, reboot the node and proceed with the installation.
Setup the control-plane by running:
sudo bash control-plane.sh
Copy the generated configuration files config/kubeadm-join.<node-type>.yaml
to each node and run this command to join the cluster:
sudo bash node.sh 'config/kubeadm-join.<node-type>.yaml'
Run this on the control-plane for bootstrapping the infrastructure:
export GITHUB_USER=mmontes11
export GITHUB_REPO=k8s-infrastructure
export GITHUB_BRANCH=main
export GITHUB_PATH=clusters/homelab
export GITHUB_TOKEN=<your-personal-access-token>
./bootstrap.sh
admin
and super-admin
kubeconfigs are available in the following control-plane paths:
/etc/kubernetes/admin.conf
/etc/kubernetes/super-admin.conf
This article depicts the differences between them.