Skip to content

kashalls/home-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Kashall's Home Operations

Discordย ย ย  Kubernetesย ย ย  Renovate

Age-Daysย ย ย  Uptime-Daysย ย ย  Active-Alertsย ย ย  Node-Countย ย ย  Pod-Countย ย ย  CPU-Usageย ย ย  Power-Usage

What is this?

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.

How did you do this?

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.

Directories

This Git repository contains the following directories under Kubernetes.

๐Ÿ“ kubernetes
โ”œโ”€โ”€ ๐Ÿ“ apps
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ main
โ”‚   โ””โ”€โ”€ ๐Ÿ“ storage
โ”œโ”€โ”€ ๐Ÿ“ bootstrap
โ””โ”€โ”€ ๐Ÿ“ config
    โ”œโ”€โ”€ ๐Ÿ“ repositories
    โ””โ”€โ”€ ๐Ÿ“ vars

โ˜๏ธ Cloud Dependencies

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
Total: ~$10/mo

๐Ÿ’ป Networking

Click to see a high-level network diagram networking

๐Ÿ“ฎ Routing

I use VyOS as my current routing operating system. Previous solutions I had used consisted of OPNSense, and the Unifi Dream Machine Pro.

Here's a couple repositories to show my current/past configurations for these solutions.

๐ŸŒ DNS

My current setup consists of bind9 and dnsdist deployed as containers on VyOS. I currently point all DNS to Cloudflare's 1.1.1.1, and I am planning on intergrating nextdns in the future.

My kubernetes clusters interact with bind9 using the RFC2136 standard to sync DNS records.


๐Ÿ”ง Hardware

Click to see the rack! rack
Device Count OS Disk Size Data Disk Size Ram Operating System Purpose
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 NFS + Backup Server
Raspberry Pi 3 1 32GB (SD) - 4GB - Network KVM
Supermicro + X470D4U 1 256GB SSD - 8GB VyOS Router
USW 24 G1 1 - - - - 1Gb Switch
Unifi USP PDU Pro 1 - - - - PDU
APC Back-Ups 1500 1 - - - - UPS

โญ Stargazers

Star History Chart


Inspiration

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.