深入了解 Tetrate Enterprise Gateway (TEG) 及其如何与 Istio 服务网格集成 —— 一种基于 Envoy 的企业级网关解决方案,包括它的架构、基本功能以及如何在 Kubernetes 中使用 TEG 来暴露和管理应用。
文中使用的 YAML 文件请阅读原文浏览:https://jimmysong.io/blog/explore-tetrate-enterprise-gateway/
TEG 简介
Tetrate Enterprise Gateway(TEG)是基于 Envoy Gateway[1] (EG) 的企业级解决方案,专门针对 Envoy Proxy 设计,通过 Kubernetes Gateway API[2] 提供更易于消费的 Envoy 代理配置和管理包。TEG 结合了 Kubernetes Gateway API 的特性,支持在 Kubernetes 中轻松暴露服务和应用程序。
TEG 相对于 Envoy Gateway 的主要新增特性包括:
1. 全局速率限制(Rate Limiting):TEG 支持基于 IP 5-tuple、请求头等进行流量控制,需要通过 Redis 实例管理。
2. WAF 功能(Web Application Firewall):TEG 提供了与
mod_security
兼容的 WAF 功能,增强了安全防护能力。3. OIDC/OAuth2认证:支持在网关级别进行 OIDC/OAuth2 认证,应用程序可以按路由配置认证方式。
4. 使用 Kubernetes Gateway API:相较于其他 API,Kubernetes Gateway API 的设计更加现代,结合了众多 Ingress 实现的经验,将网关的配置与流量的路由分离,使平台所有者可以管理网关,而应用团队可以掌控流量路由。
TEG 将 Envoy 的高级网络流量处理能力带入 Kubernetes 环境,提供了一种简化的方法来部署和管理负载平衡、API 网关功能、安全控制等,同时支持现代的、开放的应用程序暴露 API,如 Kubernetes Gateway API。这些特性使 TEG 成为一个功能丰富、易于管理的企业级网关解决方案。
TEG 的能力
Tetrate Enterprise Gateway for Envoy (TEG) 构建于 Envoy Gateway 项目之上,提供了一种易于使用和操作的入口,具有先进的按请求流量控制功能、与现有环境的轻松集成,以及一流的可观测性,以理解应用流量和入口健康状况。
易于安装、操作和升级
TEG 从头到尾注重易用性:从首次安装到启用应用团队,从故障排查到执行升级。TEG 的初始安装只需几分钟,你就可以开始使用高级功能,如速率限制、单点登录和金丝雀流量路由。TEG 还简化了运维流程,与你现有的指标、跟踪和日志记录管道相适应,我们还提供了一个完整的、预配置的可观测性堆栈,以评估 EG 产生的数据,并帮助你计划如何将 TEG 集成到你的现有指标堆栈中。
操作性:一流的功能
TEG 由在生产环境中运行大型、关键系统的经验丰富团队构建。TEG 简化了漏洞检查和持续升级过程,与你现有的指标和跟踪提供商轻松集成,并为你现有的 Grafana 部署提供了一套强大的入口可观测性仪表板。
与现有的环境集成
TEG 不仅适用于绿地部署的启动,还可以直接与传统环境以及现代云原生环境集成。它可以帮助你在现有的应用生态系统和你正在构建的云原生目标之间架起桥梁。
引入现有的可观测性堆栈
你的组织可能已经有一个可观测性系统,你的应用和运营团队已经训练有素地使用它。TEG 可以轻松地嵌入到现有的基础设施中,并在你的组织中运行。TEG 将使 Envoy 的丰富指标集导出,让你的应用团队对其应用流量的行为有最佳的洞察,并看到他们所做配置更改的效果。TEG 还为运行它的平台团队提供了仪表板和警报功能,使你能够自信地操作并快速解决发现的问题。
简单的负载平衡
Envoy 非常强大,但要使其启动并运行简单用例可能很难——像 Istio 这样的系统提供 Envoy 入口管理作为更广泛功能套件的一部分,也附带了许多与简单、流畅的操作体验相冲突的额外功能。这就是 Envoy Gateway 存在的原因:使 Envoy 的强大功能易于用于入口用例。
简单的 API 网关
组织中绝大多数 API 网关的使用归结为三件事:认证发起请求的用户;限制用户对服务的访问;在此 API 端点的服务实例之间进行负载平衡。TEG 简化了在传统和云原生环境中完成这三项任务的过程。
TEG 的架构
下图展示的是 TEG 的架构图。