Skip to content

๐Ÿš€ Bootstrap Kubernetes clusters on Raspberry Pi using kubeadm

License

Notifications You must be signed in to change notification settings

mmontes11/k8s-bootstrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ k8s-bootstrap

CI Release

Bootstrap Kubernetes clusters on Raspberry Pi using kubeadm.

You may also take a look at the Talos installation: k8s-bootstrap-talos.

System compatibility

This Kubernetes installation has been verified on Ubuntu 24.04 running on both Raspberry Pi 4 and 5.

Node preparation

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.

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

Kubeconfig

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.