请注意,本文编写于 547 天前,最后修改于 547 天前,其中某些信息可能已经过时。
HomeLab 的终点是 IDC,所以我卖掉了我的 homelab(还没卖出去),找了个机房,直接托管去了。
为啥不搞 homelab 了
- 因为我家总是偶尔停电,每次都怕丢数据
- 虽然有公网 ip,但是不给开80,443端口,还是动态 ip,得 ddns ,麻烦,难堪大用
- 云服务器太贵了,自己托管便宜,带宽高
- 以前云服务器,年年被迫迁移,真的不想再折腾了
- 以后搬家,也不用考虑服务器的问题,也不吵了
物理机配置
现在二手服务器真的很便宜,如果没啥追求,无脑买一个 x79 平台的也就几百块钱。
我稍微有那么一点追求,买了 epyc 7002/7003 平台的国鑫服务器,买了两块 epyc 7302 处理器,配了 512G 的 DDR4 3200 内存,一块 4TB 的 P4510 固态。 服务器是 2U 的,后面可以加装 GPU,或者更多的硬盘,内存,最大可以上 4TB 内存。

系统
配置比较高,当然得开小鸡才比较值,无脑选 pve 8 了,然后开一些小🐤
[图片]

服务
目前我把所有原来云厂商的服务都迁移过来了。其实除了必要的东西,所有的服务我都跑在里面的一台虚拟机上,这台虚拟机是一个单节点的 k8s。
为啥用 k8s?因为想用 K8s 生态的很多功能
为啥单节点?省心,不用考虑分布式,也不用再费劲心思修改 helm chart value 了,而且我就一台物理机,搞那么多节点干啥? 徒增复杂性。
基建(k8s)
基本都是基于 k8s 生态的
- 管理: rancher
- 日志: grafana loki stack
- 监控: prometheus + grafana + alert manager
- ingress: ingress-nginx (原来用 traefik,后来发现生态不太行)
- extraDNS: 自己写了个,自动把 ingress 的 host 解析到我的域名上
- 存储: rancher 的 local path provisioner,反正我就一个 node,无脑用
- CI/CD: 用 github 的一套,自己部署了两个github runner,因为镜像仓库也是在我的服务器上,最终部署的目标也是在这个集群里
- 镜像: harbor,配合github runner,打包咔咔快


网络
我是带了一个 ip,30M 上行,实际上给了我 50M 上行。
我只买了一个 ip,因为 ip 贵啊。 所以肯定就考虑用 nat 了。
- 使用 socat 工具做转发(写了个脚本),因为 socat 可以帮我处理 NAT 回环问题,直接写 iptables 这个问题处理起来需要研究,我懒得折腾。
- 443,80 接口无脑都给 k8s 虚拟机,如果需要转发其他虚拟机的服务,就在 k8s 里创建 extranal service
- 自己指定一个 ip 段,来给所有的虚拟机分配
- 创建一个 openwrt 虚拟机,用来做 dhcp 自动分配 ip,并且接管 dns,也做虚拟机的网关
- Dns 上游由 adguardhome 接管,可以做一些广告过滤等功能
- Openwrt 里面装了 openclash,实现了所有虚拟机无缝科学上网


Code-server
我喜欢远程写代码(code anywhere),所以我单开了一个虚拟机放 code-server,这样就能随时写代码了。
[图片]
稳定性
- 后面打算加两块机械硬盘,组 raid 1,每天定时备份虚拟机到硬盘里
- 目前还是裸奔状态,所以写了代码赶紧推上去。。。
成本问题
- 因为挺贵的,所以我在想办法回本。(而且我也用不了这么多性能)
- 目前能想到的有:
- 卖小鸡(vps)
- 卖我的世界之类的游戏服务器租用服务

本文作者:mereith
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!