Envoy Gateway 是一款基于 Envoy 代理和 Kubernetes Gateway API 开发的开源 API 网关,最近发布了 0.4.0 版本。此次发布的版本着重于自定义功能,旨在为最终用户提供更多的用例。在本文中,我们将讨论此版本中可用的新自定义选项及其对用户的重要性。
此次版本中最主要的自定义功能之一是配置 EnvoyProxy(Envoy Gateway 定义的 CRD)部署的确切类型。你可以定义 EnvoyProxy 部署的副本数、镜像和资源限制。还可以向 EnvoyProxy 部署和服务添加注解(Annotation)。这使得不同的用例成为可能,例如:
此外,Envoy Gateway 除了默认的 Kubernetes 单租户模式以外还新增其他部署模式支持,例如多租户,如下图所示。
分别在每个租户的 namespace 部署一个 Envoy Gateway Controller,它们监视 Kubernetes 中的 HTTPRoute 和 Service 资源,并在各自的 namespace 中创建和管理 EnvoyProxy 部署。
此版本中的另一个重要自定义功能是自定义 Envoy xDS 引导程序。使用此功能,用户可以提供引导配置,在启动 EnvoyProxy 时配置一些静态资源。例如配置访问日志记录、跟踪和指标以发送到 SkyWalking(可以作为 APM)非常有用。此外,此版本添加了大量 CLI 工具,以帮助验证用户配置。用户可以将 CLI 用作干运行以更改引导程序中的特定字段,如果配置在语法上不正确,则将失败。
Envoy Gateway 现在允许供应商和扩展开发人员在 Envoy Gateway 管道的不同阶段添加 gRPC 钩子,以进一步扩展其功能,允许用户做一些事情,比如增强发送给 EnvoyProxy 的 xDS 配置,这在以前是不可能的。
最后,Envoy Gateway 0.4.0 扩展了自定义 API,并为最终用户提供了更多用例。新的自定义功能包括自定义 Envoy 部署、Envoy xDS 引导程序以及扩展控制平面。这些新功能消除了用户创建自己的证书的需要,配置访问日志记录、跟踪和指标,并使供应商能够扩展 XDS 翻译用例。通过此版本的发布,Envoy Gateway 正变得更加用户友好,成为 Istio 的绝佳替代品。
最后更新于 2024/11/18