云原生网关哪家强:Sealos 网关血泪史

💡 原文中文,约3500字,阅读约需9分钟。
📝

内容提要

Sealos公有云上线以来用户呈爆发式增长,选择Higress作为网关,因其稳定性和性能出众,还兼容Nginx Ingress语法。作者建议Higress在Gateway标准、安全和熔断方面有更好的支持,并通过插件机制扩展周边功能。作者希望与上下游社区合作,推动开源网关的发展。

🔎

延伸解读

公有云网关选型的特殊挑战

Sealos 公有云注册用户达 8.7 万,每个用户创建应用都需要独立访问入口,集群路由条目巨大,需支撑数十万条 Ingress。同时,多租户隔离、流量控制和安全防护要求极高。这种场景下,网关的稳定性和性能成为首要考量,而非单纯的功能丰富度。

为何排除 Nginx 和 APISIX

Nginx Ingress 存在 reload 导致断连、长链接不稳定、性能不足等问题,被首先排除。APISIX 本身稳定,但其 Ingress Controller 曾多次崩溃和 OOM,造成线上故障,无法满足 Sealos 对稳定性的苛刻要求。两者均因核心缺陷出局。

Higress 的稳定性与迁移优势

Higress 在满足功能前提下稳定性最佳,社区快速解决了 Ingress 生效慢、控制器 OOM 等问题,将海量路由生效时间优化至 3 秒左右。同时兼容 Nginx Ingress 语法,迁移成本极低,几分钟即可完成升级,成为 Sealos 的最终选择。

对 Gateway 标准的实践反思

作者指出 Gateway 标准在多租户场景下权限设计混杂,监听端口等管理员配置与用户 TLS 证书配置未清晰分离,导致控制器需额外实现权限控制。建议将租户级字段下沉到 HTTPRoute 或独立 CRD,以更好区分用户态和管理员态。

❓

Q&A

Sealos 公有云为什么最终选择了 Higress 作为网关?

Sealos 选择 Higress 主要因为其稳定性在满足功能的前提下最为突出,能够达到生产可用。Higress 社区支持力度大,快速解决了 Ingress 生效慢、控制器 OOM 等问题,并且兼容 Nginx Ingress 语法,迁移成本低。

Sealos 公有云在网关选型中面临哪些挑战?

Sealos 公有云面临多租户隔离和流量控制的挑战,需要支撑数十万条 Ingress,对控制器性能和稳定性要求高,同时公有云受攻击面大,安全性也是重大挑战。

为什么 Sealos 排除了 Nginx Ingress?

Nginx Ingress 存在 reload 问题,每次变更会导致断连;长链接不稳定,变更时经常断;性能不行,生效时间慢,消耗资源多。因此被排除。

APISIX 在 Sealos 的测试中表现如何?

APISIX 本身稳定性较好,但其 Ingress Controller 不稳定,控制面崩溃导致多次故障,还出现过控制器 OOM 问题,最终因故障问题被弃用。

Cilium Gateway 和 Envoy Gateway 为什么没有被 Sealos 采用?

Cilium Gateway 只支持 LB 模式,强依赖云厂商 LB,且路由多时 Ingress 生效慢(分钟级),无法满足 5s 内生效的需求。Envoy Gateway 太早期,存在 OOM、pathpolicy 不生效等不稳定 bug,未达生产可用。

Sealos 对 Higress 有哪些改进建议?

建议 Higress 更好地支持 Gateway 标准,开放安全和熔断等高级功能,并更多通过插件机制扩展周边功能,使核心功能更内聚。

🏷️

标签

➡️

继续阅读