Homelab Setup: The Journey to Kubernetes
Posted on Mon 10 February 2025 in homelab
Why I'm Migrating My Self-Hosted Services
I've decided to migrate all my existing self-hosted services—and add a few new ones—to a Kubernetes (K8s) cluster that I'm going to build. There are several motivations behind this decision:
Learning Kubernetes Beyond Ephemeral Clusters
- My role as an Engineering Manager at Syntasso involves a lot of K8s development using Kind, but these environments are entirely ephemeral. I want to experience the long-term challenges of operating a cluster to build greater empathy for our customers.
- I want to deepen my understanding of Kubernetes, particularly in areas like:
- Hardening a K8s cluster
- Managing multiple clusters effectively
Increased Focus on Self-Hosting
- The British government's baffling approach to tech privacy has pushed me toward self-hosting more of my personal services.
- My current setup is a mix of manually configured systems and Docker Compose-based services running on different machines. It’s time to bring structure to the chaos.
The Plan
Time Constraints and Approach
I'm a dad with two small kids, so my time for this project is limited. My approach will be:
- Chipping away at it for a few minutes each night.
- Updating my progress as I go along.
- Keeping it cheap—I'll work with my existing hardware for now. If this experiment proves successful, I may invest in better hardware later.
- Minimising downtime—I already have services running that I need to migrate carefully without disruptions.
Migration Phases
The migration will be broken down into multiple phases to ensure a smooth transition. My current focus is on:
- Setting up RAID storage for critical data (Nextcloud, Git-Tea, Pixelfed, databases) on an old laptop.
- Keeping USB media drives on a thin client until I migrate services to Kubernetes.
- Moving USB media drives to a MergerFS pool for media storage before the final migration.
- Building a Kubernetes cluster (Talos OS) once storage is stable.
- Migrating services from Docker Compose to Kubernetes with proper storage integration.
Rough Architecture
At the moment, everything will sit under the same LAN at home. However, as I progress, I may invest in a switch and introduce proper network segmentation.
This is just the beginning. I'll document my learnings, mistakes, and adjustments along the way. Stay tuned!