Single Node Kubernetes Home Cluster

Creating my own single node Kubernetes Cluster using a RaspberryPi 5 and k3s

Project Overview

I have set up a single-node Kubernetes cluster using k3s on a Raspberry Pi 5, running headless Ubuntu. This cluster features a cluster-wide certificate manager and utilizes Traefik as a reverse proxy. To ensure the integrity and privacy of the cluster, I have also implemented several undisclosed security and backup measures.

Hosted Services

The cluster currently hosts the following services:

  • Traefik Reverse Proxy: Manages and routes incoming traffic.
  • Developer Portfolio: Personal website showcasing my projects and skills.
  • Navidrome Music Server: Stream and manage music collection.
  • Jellyfin Media Server: Stream and organize media content.
  • Immich Photo Platform: Store and manage photos.
  • Seafile Server: File synchronization and sharing platform.
  • Longhorn: Manages persistent storage volumes.
  • Minio S3 Storage: High-performance object storage.
  • Cloud Observability Services: Jaeger and Opentelemetry-Collector for monitoring and tracing.
  • Container Registry: Stores and manages Docker images.
  • Cert-Manager: Automates management and issuance of TLS certificates.
  • Open-Webui: Open-source service for hosting ChatGPT-like LLMs.

Motivation

This project empowers me and my family to take control of our data and privacy, reducing our reliance on major cloud providers. It also serves as a hands-on learning experience, deepening my understanding of Kubernetes and its ecosystem. Plus, it's a lot of fun! 😉