Skip to content

mmontes11/k8s-bootstrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

๐Ÿš€ k8s-bootstrap

Bootstrapping Kubernetes clusters on Raspberry Pi using kubeadm.

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 prepare-node.sh

Once completed, reboot the node and proceed with the installation.

Installation

Setup the controlplane by running:

sudo bash controlplane.sh

Copy the generated configuration config/kubeadm-join.yaml to each worker node and run this command to join the cluster:

sudo bash worker.sh 

Run this on the controlplane 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

Label nodes

In order to label nodes, run the following script in the controlplane:

./label-nodes.sh

Kubeconfig

admin and super-admin kubeconfigs are available in the following controlplane paths:

  • /etc/kubernetes/admin.conf
  • /etc/kubernetes/super-admin.conf

This article depicts the differences between them.