Headscale 的进化之路:当集群模式遇上多租户架构
几个月前,我做了一件“疯狂”的事——把 Headscale 这个本为单机设计的开源项目,硬生生改造成了支持 集群模式 的分布式系统。核心改动很简单:引入 集群 ID 机制。通过这个 ID,多个 Headscale 实例能协同工作,像乐高积木一样横向扩展。用户再也不用担心单点故障,节点规模也能轻松突破千级,甚至用户可无感一键切换节点。那会儿深夜改代码的茶杯还堆在桌角,但看到集群流量平稳跑起来时,值了。
而最近一个月,我又给自己挖了个更大的“坑”:多租户化改造。这次的目标很明确——让 Headscale 像 Tailscale 官方服务一样,支持多团队、多客户隔离运行。想象一下:市场部、研发部、外包团队各自拥有独立的网络空间,设备互不可见,策略分权管理,账单按租户拆分。技术上,我在认证层和数据层等关键模块加了租户隔离,配合之前的集群 ID 能力,终于把单体架构蜕变成真正的 “集群+多租户”双引擎。现在它不仅能扛住海量节点,还能让不同租户在同一个系统节点里“老死不相往来”。我们正从面向个人的 SaaS 服务,跨越到同时服务个人与企业的统一平台。更令人兴奋的是,结合近几个月将 Tailscale/Headscale 应用于工业场景的实践,我们的服务边界已从个人网络、企业 IT 延伸至智能制造等产业级场景。
坦白说,这过程像在飞行中给飞机换引擎。ACL 策略冲突、租户配额溢出、跨集群同步延迟……Bug 追着我跑。但当测试环境里两个租户的设备同时上线却互不干扰时,那种 “成了” 的心跳感,比在寒冬里用冰水冲脸还提神。
目前整个系统仍在紧锣密鼓开发/调试中。性能压测、审计日志、租户自助面板……这些拼图正一块块归位。我们离一个真正企业级的 Headscale 从未如此之近。 期待很快能和你分享完整方案——这次,开源世界或许真能长出媲美商业产品的羽翼。
