Skip to main content
Mandacode mandacode
构建家庭集群 1:硬件选择与网络配置
·
HomeLab Proxmox VE

构建家庭集群 1:硬件选择与网络配置

基于Proxmox VE的家庭集群构建过程中硬件选择与网络配置

大家好。

在这篇文章中,我们将讨论基于Proxmox VE构建家庭集群过程中硬件选择与网络配置。

构建家庭集群的原因

此前,我希望通过AWS EKS处理各种项目运营、开发与测试工作负载,以及个人学习和实验。实际上,我运行了大约三个月的EKS,并将其用作开发服务器。

但云服务很昂贵。(非常昂贵..)

在以个人服务和开发为主的情况下,完全依赖如EkS等外部云服务显得过于繁重。

从长远来看,我们认为比起承担不稳定性,减少成本损失更适合目前的情况。

硬件选择

由于个人办公室等没有合适的服务器运行场所,因此需要考虑多种条件。从发热、噪音问题,到供电、散热和网络,由于这些多种条件,常见的服务器机架和安装方式被认为不适合。

此外,在成本方面,暂时不运行商业服务,因此希望尽量降低初期费用。

基于这些原因,为选择最佳硬件,我们制定了以下标准。

  1. 价格应该便宜。

  2. 几乎听不见的安静,并且能够控制发热。

  3. 可以在小型空间中也能安装。

  4. 能够承受现有工作负载的性能

尤其是价格的限制最大,因此积极考虑在二手市场或阿里巴巴(AliExpress)上购买。

结果发现,使用英特尔至强E5系列和中国主板的配置目前最便宜且符合上述标准。此外,使用家用台式机外壳而非服务器外壳在散热和噪音方面更具优势,因此被认为更合适。

家庭集群-01

(准备好的电脑们)

节点规格

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-仪表板

(Proxmox VE仪表板)

未来计划利用Proxmox VE的集群功能扩展集群,但目前因为单个节点并不完全稳定,所以计划通过ETCD备份和GitOps工作流程来管理集群状态。

结束语

在下一篇文章中,我们将讲述在Proxmox VE上安装Talos Linux并构建Kubernetes集群的过程!