Building a bare-metal Kubernetes cluster on Raspberry Pi

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • raspberry-pi-1u-server

    A low power 1U Raspberry Pi cluster server for inexpensive colocation.

    I did something similar recently, but I put it in a 1U server so I could colocate it: https://github.com/pawl/raspberry-pi-1u-server

  • raspi-cluster

    Notes and scripts for setting up (yet another) Raspberry Pi computing cluster

    I like the trays. Back when I rebuilt mine from Pi 1Bs to 2Bs* I printed a vertical holder where the Pi itself was the slottable unit, but if I were to rebuild mine today I'd print some trays and use an existing box.

    One thing that I did that might make sense for that setup was that my master has a Wi-Fi dongle and performs NAT/DHCP for the other Pis - this makes it easier to do a lot of stuff, including auto-configuration.

    * https://github.com/rcarmo/raspi-cluster

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • kraken

    Kraken is a distributed state engine framework for scalable automation and orchestration tools. (by kraken-hpc)

    https://github.com/kraken-hpc/kraken

    Kraken is a state engine. In the case of the Pi cluster it would work to provide network images, install and configure nodes, reboot nodes, and manipulate their state as needed to keep things running.

    Another fun piece of research on Pis out of LANL is that at their altitude, 7000ft, they estimate that on average a Raspberry Pi will crash once every 2 years due to bit flips caused by cosmic rays.

  • flux2

    Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

    I've been running something similar on my three Raspberry Pi 4 with microk8s and flux [1]. Flux is great for a homelab environment because I can fearlessly destroy my cluster and install my services on a fresh one with just a few commands.

    Next on my list is set up a service mesh like istio and try inter-cluster networking between my cloud cluster and home Raspberry Pi cluster. Perhaps I can save some money on my cloud cluster by offloading non-essential services to the pi cluster.

    I'm also curious about getting a couple more external SSDs and setting up some Ceph storage. Has anyone tried this? How is the performance?

    One of my pain points is the interaction of the load balancer (metallb) with the router. It seems to want to assign my cluster an IP from a range, but may choose different ones at different times. Then I have to go update the port-forwarding rules on my router. What solutions do you all use for exposing Kubernetes services to the internet?

    [1] https://fluxcd.io/

  • kine

    Run Kubernetes on MySQL, Postgres, sqlite, dqlite, not etcd.

  • linux

    Kernel source tree for Raspberry Pi-provided kernel builds. Issues unrelated to the linux kernel should be posted on the community forum at https://forums.raspberrypi.com/ (by raspberrypi)

    I have lot of problem with adaptater Usb <-> Sata and uas actually ... even with 'compatible' adaptaters from this page : https://jamesachambers.com/raspberry-pi-4-usb-boot-config-gu...

    I'm confronted to kernel bug : https://github.com/raspberrypi/linux/issues/4490

  • Bare-metal-Space-Invaders-Clone

    A basic clone of space invaders that runs without an operating system just using BIOS calls.

    The software in question interfaces directly with the hardware without abstracting it via an operating system.

    You see this in plenty of domains: firmware, embedded systems, uEFI, bootloaders, etc.

    This used to be the norm too. Old 8-bit personal computers like Commodores didn't run an OS, instead they'd have BASIC run as firmware (though you could get CP/M, GEM and others for a lot of the later generations of 8-bit micros).

    You can also get modern software that runs bare metal without an OS. eg this game: https://github.com/adventurerok/Bare-metal-Space-Invaders-Cl...

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • The software in question interfaces directly with the hardware without abstracting it via an operating system.

    You see this in plenty of domains: firmware, embedded systems, uEFI, bootloaders, etc.

    This used to be the norm too. Old 8-bit personal computers like Commodores didn't run an OS, instead they'd have BASIC run as firmware (though you could get CP/M, GEM and others for a lot of the later generations of 8-bit micros).

    You can also get modern software that runs bare metal without an OS. eg this game: https://github.com/adventurerok/Bare-metal-Space-Invaders-Cl...

  • rook

    Storage Orchestration for Kubernetes

  • kilo

    Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg) (by squat)

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts