Skip to content

🏑 High-Availability K3s Cluster for Homelab β€” featuring kube-vip for HA control-plane, MetalLB for LoadBalancer services, Pi-hole for DNS/ad-blocking, and Caddy as Ingress controller. Built on bare metal with mixed ARM/AMD nodes.

License

Notifications You must be signed in to change notification settings

maestro00/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Maestro homelab

🏑 High-Availability K3s Cluster for Homelab

Featuring kube-vip for HA control-plane, MetalLB for LoadBalancer services, Pi-hole for DNS/ad-blocking, and Caddy as Ingress controller. Built on bare metal with mixed ARM/AMD nodes.

πŸ–₯️ Physical Lab Inventory

A concise overview of the hardware powering this homelab:

  • πŸ’» GMTec Mini PC Intel N150, 16GB DDR4 RAM, 256GB NVMe SSD

  • πŸ’» Beelink S13 Mini PC Intel N150, 16GB DDR4 RAM, 500GB M.2 SSD

  • πŸ“ Raspberry Pi 4B 8GB RAM, 256GB microSD card

  • πŸ“Ά TP-Link AX150 Gigabit WiFi 6 Router

  • πŸ”Œ TP-Link 5-Port Gigabit Switch

This blend of x86 and ARM hardware, combined with robust networking, provides a flexible and resilient foundation for experimentation and learning.

🧱 Infrastructure with Proxmox + Terraform

We use Proxmox VE to manage bare-metal virtualization and Terraform to automate VM provisioning:

πŸ–₯️ VMs are provisioned on multiple nodes using Proxmox's API.

πŸ“¦ Each VM is bootstrapped with cloud-init templates.

βš™οΈ Terraform handles:

    VM creation

    Resource allocation (CPU, memory, disk)

    SSH key injection

    Network config

Directory: terraform

☸️ High-Availability K3s Cluster

Our HA K3s setup is designed for simplicity and resilience:

πŸ›’οΈ External MariaDB runs on the Proxmox host to serve as the K3s datastore.

🧠 kube-vip provides a virtual IP (VIP) for accessing the K3s API across masters.

🌐 MetalLB manages service-level LoadBalancer IPs for internal services.

🌍 Caddy Ingress handles domain-based routing for services.

πŸ§… Pi-hole runs in-cluster to serve local DNS + ad blocking, accessible at pihole.lab.local.

Directory: k3s-ha-cluster


πŸ”— Inspiration & References

This project draws inspiration and practical ideas from the following excellent resources. Many thanks to their authors for sharing their knowledge with the community:

About

🏑 High-Availability K3s Cluster for Homelab β€” featuring kube-vip for HA control-plane, MetalLB for LoadBalancer services, Pi-hole for DNS/ad-blocking, and Caddy as Ingress controller. Built on bare metal with mixed ARM/AMD nodes.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published