Skip to content

A set of scripts to configure a Raspberry Pi 4 as a Kubernetes cluster

License

Notifications You must be signed in to change notification settings

brandonmartinez/raspberry-pi-kubernetes-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raspberry-pi-kubernetes-cluster

The purpose of this project is to provision a kubernetes cluster on a set of Raspberry Pi 4B devices. The project is divided into two parts:

  • rpi: scripts to configure the Raspberry Pi's to be cluster-ready. These scripts are meant to be executed on each Raspberry Pi in the cluster, and generally will only be run one time at initial cluster setup. As of today, there is not an "upgrade" path when changes are made, so it's recommended to verify what's changed between releases and re-run the appropriate scripts or sections of scripts.
  • k8s: Kubernetes manifests to deploy services to the cluster. These are updated semi-regularly, and can be applied to the cluster at any time.

Each of these parts are described in more detail in their respective subfolders via README files.

Prerequisites

  • At least two Raspberry Pi 4B's, ideally 4 or 8 GB models. It's recommended to get the 8 GB model if you plan to run additional services beyond what's included in this repo.
  • Raspberry Pi OS - 64 Bit freshly cloned to a Micro SD Card
  • Static IP Reservations for All RPi's in the Cluster (suggested to be MAC Address-based via your DHCP server or router)
  • An ssh key to simplify login to RPi's (this repo is assuming RSA keys with no password)
  • A userconf file on the boot partition to set default password - see the "Headless Setup" section, or see below for non-Linux OS's
  • ssh file on the boot partition to enable remote access on first boot (e.g., touch /Volumes/boot/ssh on macOS)
  • Recommended: a domain name you control (otherwise, .home.arpa will work)

⚠️ Note: If you don't have access to a version of openssl with the -6 option (such as on macOS), you can use the following command to generate the default pi username with raspberry as the password (though, it's recommended to generate a proper username password pair):

echo 'pi:$6$i9XSzPaTyjaCnnKe$fwuKZKF9CYR/vJKVLVusR.NoHQxrj2XSVPK/g7N46RzSaB/9oNmxMXIC3uLIEGV.qg8MYmuJIFAL4ymF4YLeP.' > /Volumes/boot/userconf

About

A set of scripts to configure a Raspberry Pi 4 as a Kubernetes cluster

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages