This is the home of the kubernetes cluster I deployed at home. It features a couple of low power lenovo computers running Talos which allows seamless bootstraping when combined with my vyos-config/matchbox config. My NAS is running Debian 12 with k3s deployed using my ansible configuration.
This repo serves as the "roadmap" that is automatically updated and deployed thanks to renovate and fluxcd.
Thanks to onedr0p, there is the cluster template that allows you to easily get started with your own kubernetes cluster at home. You don't need to have multiple computers or a fancy setup to get one working.
If you're interested, you can also join the community Discord: Home Operations. Several people are involved daily and it makes for some interesting conversations.
This Git repository contains the following directories under Kubernetes.
π kubernetes
βββ π apps
β βββ π main
β βββ π storage
βββ π bootstrap
βββ π config
βββ π repositories
βββ π vars
While most of my infrastructure and workloads are self-hosted I do rely upon the cloud for certain key parts of my setup. This saves me from having to worry about two things. (1) Dealing with chicken/egg scenarios and (2) services I critically need whether my cluster is online or not.
Service | Use | Cost |
---|---|---|
1Password | Secrets with External Secrets | ~$55/yr |
Cloudflare | Domain and R2 | ~$30/yr |
GCP | Voice interactions with Home Assistant over Google Assistant | Free |
GitHub | Hosting this repository and continuous integration/deployments | Free |
Let's Encrypt | Issuing SSL Certificates | Free |
Migadu | Email Hosting | ~$20/yr |
Pulumi Cloud | Resource state management | Free |
Pushover | Kubernetes Alerts and application notifications | Free |
UniFi Site Manager | UniFi External Access Management | Free |
Total: ~$10/mo |
UniFi released a new feature update with UniFi routers that allow you to create custom dns records to be served to the whole network. I wroteExternal DNS Unifi Webhook to allow External DNS to gather service and ingress hosts from my clusters and deploy the records without any extra local resolvers.
Device | Count | OS Disk Size | Data Disk Size | Ram | Operating System | Purpose |
---|---|---|---|---|---|---|
UXG-Max | 1 | - | - | - | UniFi OS | Router |
UCK-G2-Plus | 1 | - | 250 GB HDD | 3GB | UniFi OS | UniFi Management |
US-24-G1 | 1 | - | - | - | - | Core Switch |
U6-LR | 1 | - | - | - | - | Office AP |
UAP-AC-Pro | 1 | - | - | - | - | Dining Room AP |
USP-PDU-Pro | 1 | - | - | - | - | Rack PDU |
Raspberry Pi 4 | 3 | 256GB SSD | - | 8GB | Talos | Raspberry Cluster |
Lenovo ThinkCentre M900 | 6 | 256GB SSD | 1TB NVMe (rook-ceph) | 16GB | Talos | Kubernetes Nodes |
Fran the Fabulous Nas | 1 | 2x1TB SSD | 5x8TB (raidz2) | 64GB | Debian | Storage Cluster |
Raspberry Pi 3 | 1 | 32GB (SD) | - | 4GB | - | Network KVM |
APC Back-Ups 1500 | 1 | - | - | - | - | UPS |
Thanks to all the people who donate their time to the Home Operations community.
Special thanks to: αͺΡΞ½ΞΉΞ· α·Ο Π½Κ, Bα΄ΚΙ΄α΄ Sα΄Κα΄ΚΙ’α΄Κs, and Toboshii Nakama for their assistance.
Check out kubesearch.dev to see what other users are running in their kubernetes home labs!