[控场AI]
· 7 分钟阅读· 3,805 字

3D打印机架+3节点Proxmox:一套二手Homelab的深度拆解

3D打印机架+3节点Proxmox:一套二手Homelab的深度拆解

二手硬件驱动的两年Homelab进化史:三节点Proxmox集群搭配全GitOps声明式软件栈,打造可随时重建的私有云。

一位 Reddit 用户历时两年,以树莓派和二手小主机为起点,逐步构建出一套完整的家庭实验室。硬件层面,三台节点组成 Proxmox VE 集群,大量采用 ZFS 存储,配合 QNAP NAS 和 3D 打印机架,除网络设备外均来自二手市场。网络采用 UniFi 生态,划分三个 VLAN 实现管理、基础设施与 Kubernetes 流量的逻辑隔离。软件层是整套系统的技术亮点:基于不可变操作系统 Talos Linux 构建 Kubernetes 集群,通过 Terraform 端到端代码化置备,ArgoCD app-of-apps 模式实现 GitOps 管理,OpenBao 部署在集群外以规避重建时的密钥丢失困境。整套设计以「可随时重建」为核心理念,是一套贴近生产实践的私有云学习平台。

从树莓派起步的两年 Homelab 之旅

很多自建实验室(Homelab)玩家都是从一台小机器起步,慢慢滚雪球般地扩展。这位 Reddit 用户的故事颇具代表性:几年前,他用一台树莓派 4 和从二手平台 Vinted 淘来的 HP G3 Mini 开始搭建自己的 Homelab。此后每当在二手网站上发现好价,就补充一件设备。两年多过去,他认为自己终于(也许)到达了这套系统的"终点"。

最值得一提的是,整套设备除了交换机和路由器之外,全部来自二手市场。这不仅是成本控制的典范,也说明了消费级和企业级淘汰硬件在家用虚拟化场景下依然有充足的性能余量。

reddit source: My Homelab

硬件:3D 打印机架与三节点集群

这套系统的外观亮点是一个完全用 PETG 材料 3D 打印的机架,通过 Bambu Lab X2D 打印机制作,设计方案出自 Ilan Kushnir。对于空间有限、又不想购买昂贵成品机柜的玩家来说,3D 打印机架是一个兼顾美观与实用的低成本选择。

三节点 Proxmox 计算集群

核心计算力由三台运行 Proxmox VE 的节点组成,硬件规格各有侧重:

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

值得关注的是三台机器都在存储层大量使用 ZFS,这为快照、数据完整性校验和灵活的存储池管理提供了坚实基础。pve-01 作为主力承载 Kubernetes 集群,配置也最豪华;pve-02 和 pve-03 则规划用于其他独立项目。

Proxmox VE(Virtual Environment)是一款基于 Debian 的开源服务器虚拟化管理平台,支持 KVM 全虚拟化和 LXC 容器两种工作负载,并内置 Web 管理界面、集群管理、高可用(HA)和备份功能。它是 Homelab 圈子里最流行的 Hypervisor 之一,原因在于免费可用(订阅仅用于获取稳定更新源)、资源占用低,且对二手消费级硬件兼容性良好。ZFS(Zettabyte File System)则是一种结合了文件系统与卷管理器的存储方案,核心特性包括:写时复制(CoW)确保数据一致性、内置校验和防止静默数据损坏(bit rot)、快照与克隆几乎零开销,以及 RAID-Z 冗余模式。在 Proxmox 上使用 ZFS 作为虚拟机存储池,可以利用快照实现虚拟机备份,并在磁盘静默错误时自动检测修复,是家用虚拟化场景下数据保护的高性价比选择。

存储与外设

存储方面由一台 QNAP TS-431 提供 16 TB 容量。此外,一台树莓派 4 承担了信息面板的角色,驱动两块显示屏:一块 7.84 英寸屏展示 Grafana 仪表盘,一块 0.91 英寸 OLED 屏运行小型 Python 脚本,实时显示 IP、温度和 CPU 使用率。这种"给机房加一块状态屏"的做法,是 Homelab 圈子里颇受欢迎的仪式感。

网络:VLAN 分段与 2.5G 交换

网络部分由 UniFi 生态构成,也是这套系统里少有的全新采购部分。

  • UniFi Dream Router 7:担任网关、防火墙和 VLAN 间路由
  • UniFi USW-Flex-2.5G-8-PoE:2.5G 交换机,通过 SFP+ DAC 上联到 UDR7

网络被划分为三个 VLAN:管理网、Homelab 基础设施网,以及一个专用于 Kubernetes 的网段。Proxmox 采用单个 VLAN-aware 网桥,每台虚拟机只需打上对应的 VLAN 标签即可归入相应网段。这种设计既简化了配置,又实现了逻辑隔离,是家庭网络进阶到多网段管理的合理做法。

软件栈:全 GitOps 的 Kubernetes 重建

这套 Homelab 最具技术含量的部分在软件层。作者目前正从零重建整个环境,起点就是 pve-01 上运行的 Kubernetes 集群。

声明式基础设施

集群基于 Talos Linux 构建,采用 1 个控制平面 + 4 个 worker 的虚拟机拓扑,并通过 Terraform 端到端置备——从虚拟机、Talos 配置、bootstrap 到基础组件全部代码化。Talos 作为一款不可变、API 驱动的 Kubernetes 专用操作系统,天然适合这种"随时可重建"的理念。

Talos Linux 是专为运行 Kubernetes 而设计的不可变操作系统:它没有 SSH、没有交互式 Shell,所有配置通过 API(talosctl)以声明式方式下发,系统文件系统以只读方式挂载。这种设计的核心优势是「可重复性」——任意节点损坏后,只需重新应用同一份配置文件即可完全复原,不存在手动操作积累的配置漂移。Terraform 是 HashiCorp 出品的基础设施即代码(IaC)工具,通过 HCL 语言描述资源(虚拟机、网络、DNS 记录等)的目标状态,执行时自动计算差量并完成创建/变更/销毁。将 Terraform 与 Talos 结合,意味着整个 Kubernetes 集群的生命周期——从 Proxmox 上的虚拟机创建,到 Talos 节点配置,再到集群 bootstrap——都可以用一条命令完成,真正实现"基础设施代码化"。

网络、存储与 GitOps

  • 网络:Cilium,启用 kube-proxy replacement 和 L2 LoadBalancer
  • 存储:OpenEBS LocalPV,虚拟机启动盘放在 NVMe,数据卷放在 HDD
  • GitOps:ArgoCD 的 app-of-apps 模式,集群内的一切都存放在 Git 中
  • 密钥管理:OpenBao 运行在集群外的 LXC 容器中,以便在集群重建时依然存活,配合 External Secrets Operator 使用

把 OpenBao 放在集群之外是一个值得学习的细节——它避免了"重建集群时密钥随之丢失"的鸡生蛋困境。

GitOps 是一种以 Git 仓库作为系统唯一可信来源(Single Source of Truth)的运维范式:所有基础设施和应用配置都存储在 Git 中,变更通过 Pull Request 审核,由自动化工具(如 ArgoCD)将仓库状态持续同步到集群。ArgoCD 的 app-of-apps 模式是一种层次化的应用组织方式:顶层维护一个「父 Application」,它的 manifest 里声明了其他所有「子 Application」;ArgoCD 递归同步这棵树,使得整个集群的所有组件都能通过一个入口统一管理和回滚。OpenBao 是 HashiCorp Vault 的开源社区分支(fork),提供密钥存储、动态凭证生成和加密即服务等功能;External Secrets Operator 则负责将 OpenBao 中的密钥自动同步为 Kubernetes Secret 对象,使 Pod 可以透明地消费密钥,而无需在 Git 仓库中明文存储任何敏感信息。

入口与可观测性

入口链路为 Nginx Proxy Manager(Let's Encrypt 通配符证书)转发到 Traefik。监控与日志则采用 kube-prometheus-stack(Prometheus、Grafana、Alertmanager),并覆盖了 Talos 控制平面和 etcd,再叠加 Loki + Alloy 收集 Pod 和节点日志。此外还部署了 Glance 仪表盘、Headlamp 和 VS Code server 等辅助工具。

这套配置带来的启示

这套 Homelab 的价值不在于堆料,而在于理念的完整性:二手硬件降低门槛,ZFS 保障数据,VLAN 实现隔离,Terraform + Talos + ArgoCD 构成完全声明式、可随时重建的基础设施。

对于想搭建自己实验室的爱好者,几个可借鉴之处包括:优先关注二手企业级小主机(如各类 Tiny/Mini PC)以获得高性价比;把密钥等有状态服务与可重建的集群解耦;用 GitOps 让整个环境成为可版本化、可回溯的代码。这不仅是玩具,更是一套贴近生产实践的私有云学习平台。

分享:

相关推荐