mmontes11 / k8s-bootstrap

πŸš€ Bootstrapping Kubernetes clusters on Raspberry Pi using kubeadm.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸš€ k8s-bootstrap

Bootstrapping 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 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.

About

πŸš€ Bootstrapping Kubernetes clusters on Raspberry Pi using kubeadm.

License:MIT License


Languages

Language:Shell 100.0%