Okay, Here we go!

需求与思考

本篇是整个系列的出发点(需求)与落脚点(构建、架构),需要理一理做Homelab的初衷和需求才可以更好的规划与设计整个架构。说到Homelab,想必大多数人都很陌生,其实这个单词仅仅是home与laboratory的合成,翻译过来也就是家庭实验室(或许称之为家庭小作坊也不为过?)。能在google上查到的Homelab不少都是关于计算机方向的Homelab搭建,其实说来无论是机械、电子甚至于化学等方向,都完全可以搭建独属于个人的Homelab的,只是似乎计算机的门槛更低、覆盖面更广、安全性更高?所以话说回来,什么是Homelab?为什么需要Homelab?怎么搭建Homelab?本篇将说说个人的想法以及设计,谈不上答案,只作一个参考。

那首先简述下啥是Homelab,这里直接就以计算机来说了。顾名思义,位于家庭中的实验室,首先将其与公司、云服务商的计算机设备区别开来:其工作环境一般是个人的车库、仓库、空置房间等,占地面积小、功耗低,无需数据中心的恒温恒湿、大功率柴油发电机等环境条件;一般仅由一台至几台服务器构成计算单元,通过单个交换机相连,功能相对较弱,性能满足个人使用,例如开发流量不大的网站、自动签到、信息收集等系统;网络一般使用家庭网络,承载服务器流量的同时也要兼顾家庭上网流量,价格便宜,带宽为共享带宽,甚至国内不少都没公网IP;硬件设备是普通家用级设备,或者是淘汰的二手服务器设备等。鉴于上述特点,并且还有钱包的压力,Homelab多数情况下还是偏向玩具性质的,但是好在软件的开放性,学习新鲜技术基本是没什么太大问题的。

那下面简单阐述下需求:

  1. 家庭网络环境处于大NAT内,没有独立IP也就不可能从外网直接访问,需要从外部访问;
  2. 资金场地有限,没有专门有房间放置机柜,小巧,比较必要上这么大的体量(大力!);
  3. 期望整个Homelab不是一堆独立的无关的裸金属(Bear Metal)服务器,需要尽可能成为一个整体;
  4. 整个架构希望可以对家庭的网络需求有一定的支持。

架构与设计

针对上述需求问题,提出以下解决方案:

  1. 现在是云原生的年头,针对独立公网IP问题,购入最便宜的云服务器就有IP了;
  2. 尽可能使得硬件精简、可伸缩;
  3. 基于k3s构建系统,实现伸缩等灵活特性;
  4. 使用netmaker构建网络基础设施,实现本地与云端的融合。

本设计方案需求设施如下:

  1. 三台云服务器,1C1G 以上配置,不强制需要在同一个云服务商购买,但是地域上尽量接近以降低延迟(可以薅便宜的主机来做);
  2. 一个已备案域名(没有也行,只是有些配置会修改并且麻烦点);
  3. 家庭内部一台PC作为服务器,且可联网。

三台云服务器价格如下:

  1. 阿里云的突发性能实例,2C1G,单台24元每个月,流量8毛一个G,两台;
  2. 双11腾讯云2C4G服务器,8M带宽,1200G流量,70大洋包年。

阿里云服务器是按流量计费的,考虑平时流量很少,所以一般不会花多少费用。总计支出大概600多一年,应该还算是可以接受。

总体架构设计如下:

homelab架构

其中,netmaker仅作为基础网络管理所有并没有实际流量流过。由于netmaker是基于wireguard的全mesh组网,所以各个node之间都有直接连接。个人使用不考虑HA,所以仅部署一个k3s master,当然HA部署直接加就可以。

家庭硬件

贴一个国外的例子Home Lab Beginners guide – Hardware,做的很精致,可以参考参考。由于使用开k3s,本系列可能不会涉及太多硬件搭建。

以上,本方案并未完全测试。