分层、访问与交付
如果只放一张大图,这套 Homelab 看起来会很完整,但不容易读。对我来说,更有帮助的方式是拆开来看:先看分层,再看本地、轻量集群、云端、访问链路和交付链路分别在解决什么。
先看整体分层
这三层不是性能分层,而是职责分层:
- 本地核心层:保留家庭网络、局域网体验、私有数据和强本地依赖的基础服务
- 轻量集群层:承接低风险服务和持续的
k3s / GitOps实验 - 云端协同层:承担公网入口、镜像分发、持续交付和更适合外放的负载
本地核心层在解决什么
本地核心层的重点不是“再堆更多服务”,而是把最需要贴近家庭网络和私有数据的部分留住:
Synology提供更稳的本地存储基座RouteOS、MosDNS + Mihomo直接影响日常网络体验PostgreSQL、FRPC这类基础能力留在本地更容易和家庭网络联动N200这类低功耗机器承担的是长期常驻和稳定运行
这层越克制,整套 Homelab 越容易长期维护。
轻量 k3s 层放哪些服务
两台 RK3566 4GB 组成的轻量 k3s 更像一个“真实但不过度承诺”的实验层:
OpenWebUI、Home Assistant代表日常可用服务Traefik让我继续练入口和路由Vault让 Secret 管理思路还能保留下来Argo CD / GitOps继续在这层验证,但我不要求它承载全部关键路径
我更希望这层能让我持续练习,而不是为了“全都 K8s 化”把基础稳定性也押进去。
云端节点怎么分工
这三台云端节点的角色是分开的:
- Aliyun 上海:位置合适,专门给本地环境补一条适合国内网络的
FRPS入口 - Oracle AMD:偏外部服务与运维协同,适合跑
Docker、反向代理、镜像中继、探针和辅助平台 - Oracle ARM:偏云上的 Kubernetes 实验场,是 GitOps、状态服务和后续 CD 的主阵地
云端层不是要“复制一套本地”,而是接住那些本来就更适合放在公网侧的职责。
访问链路怎么互相补位
这里我不把访问方式当成单选题,而是按用途组合:
- Cloudflare Tunnel:适合域名接入和隐藏本地真实暴露面
- FRP:更偏国内网络场景下的高速补位
- IPv6:在合适条件下直接提供公网可达能力
- Tailscale:把本地和云端连成运维上更顺手的私网
这几条路同时存在,复杂度会上升,但换来的是整套系统不会因为单一入口不稳定就完全失去弹性。
交付链路怎么演进
早期我更想验证,本地能不能跑起完整的平台链路:
后来我更关心,在现实网络和成本约束下,交付链路怎么更适合云端协同:
这不是简单的工具替换,而是职责边界的变化:以前更像是在本地证明“我能把整条链路搭起来”,现在更像是在验证“在真实的成本和网络条件下,哪一段应该继续留本地,哪一段应该交给云端”。
这部分我单独拆成了一页 CI/CD 演进,会更完整地讲先前的本地一体化模式、现在的云端协同模式,以及它们分别体现了我哪些搭建能力。