Rebuilding My Homelab with Compose, Ruby, IPv6, and No Kubernetes
a day ago
- #homelab
- #IPv6
- #docker-compose
- 作者的 homelab 曾有一台名为 'nibbler' 的机器出现故障,该设备不可靠且可能存在缺陷,购买时是翻新机。
- 由于复杂性和维护困难,作者放弃了 Kubernetes,改用 Docker Compose 作为更简单的解决方案。
- 当前的 homelab 配置包括:'lrrr'(Proxmox 主机)、'morbo'(TrueNAS SCALE 用于存储)、'nibbler'(已改造为主要非关键服务机器)以及一个外部虚拟机 'ord-router' 用于公共入口。
- 部署系统使用 Docker Compose 堆栈,并通过 Ruby 库、Rake 和 YAML 增强功能,支持定时任务、密钥管理、通过 Caddy 的入口、IPv6 网络和跨堆栈依赖。
- 网络依赖于使用 ULA 的确定性 IPv6 地址以实现隔离和安全性,Caddy 处理入口,并支持可选公共暴露和身份验证。
- Tailscale 用于主机之间的安全回程流量和外部访问,但会导致移动设备电池消耗增加。
- 该架构强调故障域分离:关键服务在 'lrrr' 上,非关键服务在 'nibbler' 上,以最大限度减少故障影响。
- 对系统的完全控制允许自定义实现(例如通过入口的静态站点、IPv6 设置),而无需依赖过时的外部解决方案。
- 作者承认此设置可能不适合所有人,并对 Kubernetes 或其他 Docker Compose 管理器等替代方案表示认可。