构建家庭集群 1:硬件选择与网络配置
基于Proxmox VE的家庭集群构建过程中硬件选择与网络配置
大家好。
在这篇文章中,我们将讨论基于Proxmox VE构建家庭集群过程中硬件选择与网络配置。
构建家庭集群的原因
此前,我希望通过AWS EKS处理各种项目运营、开发与测试工作负载,以及个人学习和实验。实际上,我运行了大约三个月的EKS,并将其用作开发服务器。
但云服务很昂贵。(非常昂贵..)
在以个人服务和开发为主的情况下,完全依赖如EkS等外部云服务显得过于繁重。
从长远来看,我们认为比起承担不稳定性,减少成本损失更适合目前的情况。
硬件选择
由于个人办公室等没有合适的服务器运行场所,因此需要考虑多种条件。从发热、噪音问题,到供电、散热和网络,由于这些多种条件,常见的服务器机架和安装方式被认为不适合。
此外,在成本方面,暂时不运行商业服务,因此希望尽量降低初期费用。
基于这些原因,为选择最佳硬件,我们制定了以下标准。
价格应该便宜。
几乎听不见的安静,并且能够控制发热。
可以在小型空间中也能安装。
能够承受现有工作负载的性能。
尤其是价格的限制最大,因此积极考虑在二手市场或阿里巴巴(AliExpress)上购买。
结果发现,使用英特尔至强E5系列和中国主板的配置目前最便宜且符合上述标准。此外,使用家用台式机外壳而非服务器外壳在散热和噪音方面更具优势,因此被认为更合适。

(准备好的电脑们)
节点规格
Intel E5 2680 v4
64GB 内存
512GB NVME M.2
1TB 固态硬盘
共购买了两台并组装,准备了一台原用的迷你PC。选择固态硬盘而不是机械硬盘的原因在于利用原有的存储设备,并考虑到机械硬盘的噪音问题,所以没有额外购买。而且,我们还计划用树莓派(Raspberry Pi)构建Cloudflare隧道和通过WireGuard访问内部网络。
为了评估性能与稳定性,计划暂时只使用一台节点,但未来将连接多台节点进行扩展。
网络配置
购买交换机来分离网络并获取固定IP以构建负载均衡器是最佳选择,但由于获取固定IP和购买交换机也需成本,并且该配置对于目前的使用目的而言显得多余。
此外,我们计划积极利用正在使用的IPTIME路由器提供的DDNS功能和端口转发等功能。
因此,在当前配置中计划直接将路由器与节点连接,如果将来连接的节点增多或迁移到其他环境,将考虑单独使用交换机。
flowchart LR
A[客户端] -->|"1. mandacode.com 查询"| B[Cloudflare DNS]
B -->|"2. CNAME 响应<br/>abcd.iptime.org"| A
A -->|"3. abcd.iptime.org 查询"|C[iptime DNS 服务器]
C -->|"4. A 记录响应<br/>公有IP 1.2.3.4"| A
A -->|"5. 请求连接至1.2.3.4"| D[路由器 WAN]
D -->|"6. NAT/端口转发"| E[内部服务器]虚拟机管理程序
我选择了Proxmox VE作为虚拟机管理程序,因为它可以免费使用,安装简单,并支持ZFS、Ceph等多种存储选项和网络虚拟化功能。
此外,仪表板UI直观,便于管理,这也是一个很大的优点。

(Proxmox VE仪表板)
未来计划利用Proxmox VE的集群功能扩展集群,但目前因为单个节点并不完全稳定,所以计划通过ETCD备份和GitOps工作流程来管理集群状态。
结束语
在下一篇文章中,我们将讲述在Proxmox VE上安装Talos Linux并构建Kubernetes集群的过程!