捡一台千元价位的 Homelab
最近发了工资,有一天晚上突发奇想,想组一台专属于自己的 Homelab,要求很简单:
- 能当 nas 用
- 能方便的虚拟化,以供实验
- 方便扩展
- 除了存储设备之外,价格在 1000 元内
综上要求,我在淘宝和闲鱼上挑选了两个小时,选出了如下配置。
类别 | 名称 | 价格 |
---|---|---|
主板 + CPU | 精粤 x99M PLUS D3 + E5 2666V3 | 408 |
散热 | 闲鱼买的利民 | 45 |
内存 | 三星 DDR3 1600 16Gx2 | 68 |
亮机卡 | GT-610-520 1G | 31 |
网线 | 8m + 1m | 29.79 |
网卡 | 淘宝随便挑的单网口 | 15.98 |
交换机 | TP-LINK TL-SG1008D 八口交换机 | 55 |
SSD | pm581 512G | 149 |
电源 | 安钛克 VP450P | 75 |
机箱 | 实验室里没人要的破旧主机 | 0 |
合计 | 880.77 |
我本来的想法是既然捡垃圾,那么就一丐到底,平心而论,这套配置的版 U、电源、散热都有再进一步压缩的空间。 在 CPU 的选择上,选择主频低一些,但是核心数更多的 E5 2673v3 可能更能满足我的需求。下次定能吸收本次教训!
另外,为了满足虚拟化的需要,并为了规避每次都要重新配置网络的尴尬,我在这台机器上装上了 PVE,虚拟了几台 Arch 和一台 openWrt,同时我也将家中的 2011 Mac Mini 拿来也充当了一个物理机。
折腾完这些之后,为了外网访问的方便,其中一台 Arch 充当堡垒机,使用 rathole 将 ssh 的端口暴露在我的 vps 上。 现在我的一些个人小项目都可以通过 vscode 的 remote-ssh 插件连接到这台服务器上编写。好处就是可以更加轻松的多端同步,性能也远比公有云强,硬件和软件都完全在我的掌控之中。
rathole 是用 Rust 编写的类似于 frp 和 ngrok 的软件。可以让 NAT 后的设备上的服务通过具有公网 IP 的服务器暴露在公网上
之后我准备再逐步扩充这台机器的可玩性,比如部署一些 CI/CD 服务,虚拟化一些虚拟机,测试 Kubernetes 调度性能,这里按下不表。
k3s
k8s 是集群的操作系统,可以将好多台计算机抽象成一个统一的控制平面。 这里我在 wrt 后面配置了三台虚拟机用于跑 k8s,具体实现则使用了 k3s 进行部署和管理。k3s 默认配置了 Local Path Provisioner 的 PVC 方案和 Traefik Ingress Controller,说人话就是持久化和网络服务方面都不用自己操心了。
另外,我将集群的 80/443 端口穿到了外面的和校园网直接互通的端口上。更好的做法其实是使用像 Tailscale 或者 ZeroTier 这样的 vpn,把集群的机器加入虚拟的局域网中,安全方便。 之后再考虑考虑吧。
服务的部署上,我使用了 ArgoCD,践行 GitOps,通过 git 仓库中的声明性文件来定义服务。
而在 dns 的分发上,我做的比较邪道,由于我所有的机器的梯子用的都是我自定义的 clash 文件,所以我在 clash 的 host 选项中定义了域名和 ip 地址解析。
参考
软件
链接 | 介绍 |
---|---|
homelab | khuedoan 的自用 homelab 软硬件介绍 |
HomeLab 玩法简单分享 | 玩法简介,其中也介绍了一些常用软件 |
HomeLab 搭建记录 |
网络
链接 | 介绍 |
---|---|
内网该用什么域名 | AD 域名 |
SSL Certificates on a private/local domain | 介绍了如何为内网申请到 ssl 证书 |
猴子都能看懂的内网 ssl 教程 | |
基于 PVE 的新网络架构 |