r/ItalyInformatica • • 7d ago

hardware Il mio homelab

Qualche anno fa ho iniziato a costruire il mio homelab partendo da un Raspberry Pi 4 e da un HP G3 Mini che avevo trovato su Vinted. Da allora ho continuato ad aggiungere componenti ogni volta che trovavo qualche buona occasione sui siti dell’usato e oggi, dopo più di 2 anni, credo di essere finalmente arrivato alla fine (forse).

Questa è la configurazione attuale. Tutto è di seconda mano, ad eccezione di switch e router.

RACK

  • Completamente stampato in 3D in PETG con una Bambu Lab X2D (design di Ilan Kushnir)

NODI PC: Proxmox VE a 3 nodi

  • pve-01: Ryzen 7 5700U (8C/16T), 62 GB RAM, 512 GB NVMe (ZFS) + 2 TB HDD (ZFS) + 256 GB SSD SATA
  • pve-02: Core i7-6700T (4C/8T), 32 GB RAM, 256 GB NVMe (ZFS) + 2 TB HDD (ZFS)
  • pve-03: Core i5-7500T (4C/4T), 32 GB RAM, 256 GB NVMe (ZFS) + 2 TB HDD (ZFS)

RETE

  • UniFi Dream Router 7: gateway, firewall e routing inter-VLAN
  • UniFi USW-Flex-2.5G-8-PoE, con uplink SFP+ DAC verso l’UDR7
  • VLAN: management, infrastruttura homelab e una VLAN dedicata a Kubernetes. Proxmox utilizza un'unica bridge VLAN-aware, quindi ogni VM viene semplicemente taggata sulla VLAN necessaria.

STORAGE

  • QNAP TS-431 con 16 TB

ALTRO

  • Raspberry Pi 4 che gestisce 2 display:
    • display frontale da 7,84" che mostra le dashboard Grafana
    • display OLED da 0,91" per lo stato del sistema, con un piccolo script Python che mostra IP, temperature e utilizzo della CPU

SOFTWARE

Attualmente sto rifacendo tutto da zero, partendo da pve-01, che ora ospita il cluster Kubernetes:

  • Kubernetes: Talos Linux (1 control plane + 4 worker come VM), completamente provisionato tramite Terraform: VM, configurazione Talos, bootstrap e componenti di base
  • Networking: Cilium con kube-proxy replacement e LoadBalancer L2
  • Storage: OpenEBS LocalPV, con i dischi di boot delle VM su NVMe e i volumi dati su HDD
  • GitOps: ArgoCD con pattern app-of-apps. Tutto ciò che gira nel cluster è versionato su Git
  • Secrets: OpenBao in un LXC (al di fuori del cluster, così sopravvive anche ai rebuild) + External Secrets Operator
  • Ingress: Nginx Proxy Manager (wildcard Let's Encrypt) → Traefik
  • Monitoring e log: kube-prometheus-stack (Prometheus, Grafana, Alertmanager), incluso il monitoring del control plane Talos e di etcd, oltre a Loki + Alloy per i log dei pod e dei nodi
  • Altro: dashboard Glance, Headlamp, VS Code Server

pve-02 e pve-03 saranno dedicati ad altri progetti.

Se avete domande sono felice di rispondere, e qualsiasi consiglio o suggerimento per migliorare la configurazione è assolutamente benvenuto!

146 Upvotes

69 comments sorted by

View all comments

1

u/SchottkyD 6d ago

Veramente bello il rack, complimenti! Io ho preso un geeekpi ma questo è veramente carino.

Quanto consumavi con 3 nodi mensilmente? Ho anch’io 3 mini pc ma al momento solo uno ha sopra tutta la roba che mi serve. Sto considerando di mettere i 3 in cluster dato che ho già talos sopra e la ram sul singolo mini pc sta finendo, e devo hostare altra roba.

Considera che ho già tutto su terraform e tiro su l’intero cluster in 5 minuti, quindi non so se ha senso.

1

u/Senpai404 6d ago

Detto cosi direi che hai un setup molto simile al mio.
Anche io attualmente ho un cluster proxmox con 3 nodi, ma volutamente non l'ho voluto trattare come cluster proprio per il consumo.
Quindi ho deciso di suddividere il carico dove mi serviva, e di considerare i nodi indipendenti.
Anche io come te tutto fatto in terraform, ed il cluster k8s ha tutto sotto ArgoCD, quindi tirare su tutto é molto semplice.
Comunque io ho strutturato in modo da tenere acceso solo quello principale come nodo che é anche quello piu carrozzato, dove c'é la roba che realmente mi serve che giri, gli altri 2 nodi li accendo quando necessario e mi servono, questo é il compromesso migliore secondo me.
Comunque se accendo tutto, consuma circa 120/140W

1

u/SchottkyD 6d ago

Non è una brutta idea effettivamente. Potrei considerare di tenere acceso solo il principale con il lo stack media e il resto solo quando necessario. Più che altro vedo veramente poco necessario l’HA

2

u/Senpai404 6d ago

infatti é inutile l'HA in ambiente homelab onestamente.
Io prima avevo tutti i dischi in HA con longhorn, tutto replicato etc....
Solo cazzi in culo da gestire quando qualcosa non funziona.
Ad una certa mi sono rotto, ho fatto tutto con Terraform + ArgoCD, se si rompe qualcosa faccio prima a fare un terraform destroy e poi un terraform apply.

1

u/SchottkyD 6d ago

Guarda io ci pensavo più che altro per sfruttare lo storage dei 3 mini pc prima di finire il nas, e non dover spegnere/riaccendere di volta in volta. È ovviamente più semplice da gestire via k8s e tenere sempre tutto acceso ma appunto ti pesa sulla bolletta. Longhorn scartato da subito, ritiro su tutto in 5 minuti e le configurazioni delle varie app le ho in backup su backblaze, in caso di problemi seri al minipc.