HomeLab
A self-hosted Kubernetes cluster for my personal projects (including this website)
The target
- Secure
- Scalable
- Redundant
- Cost-effective
The brains
- Unifi Dream Machin (UDM)
- Synology DS920+
- Mac Mini M1
- Raspberry Pi 4
The magic
- When someone visits a website, the first step is Cloudfare. Cloudfare is used as a dynamic DNS, caching & firewalling service
- From there, traffic routes through the ISP to the UDM
- The UDM has VLANs carved out for isolation. In addition, deep packet inspection and an enterprise grade firewall, keeps attackers away
- After scanning the packets, UDM routes the packets to the Mac Mini
- The Mac Mini hosts the Kubernetes controller. Using a Nginx reverse proxy, it routes packets to the correct container
- The container could live on the Mac Mini or on one of the Raspberry Pi's
- The container might use the Synology NAS for persistent NFS mounts
- Additionally, the Synology accomodates hourly Time Machine backups from the Mac Mini
The questions
Why use the Mac Mini and the Pi?
The goal was to keep costs low - both initial and running costs. Both of those are ARM devices and so consume only 5W - 25W.
Isn't Kubernetes overkill?
Yes, but why not? This is a great learning opportunity & services like Keel ensure seamless CI/CD.
How much does this cost?
There is a one time cost of around $2k but one could have a similar setup with just the Pi's for ~$1k. The monthly cost is basically the cost of running a lamp.
What is this used for?
A bunch of personal websites, Home Assistant, and family media.