什么是Envoy网关,为什么在Kubernetes中需要它?

日期:2023-07-10 05:58:31 来源:软件科技与技术狠活


(资料图片仅供参考)

Envoy API Gateway 是基于 Envoy 构建的开源软件,为云原生应用提供高级负载均衡能力。Envoy 代理是 Istio 服务网格的数据平面,用于处理东西向流量(数据中心内的服务间通信)。然而,为了使 Istio 管理一个多云应用程序的网络,Envoy 被配置为一个用于处理南北向流量(数据中心内外的流量)的 Sidecar 代理。

关注我带你了解科技领域最新的技术与产品

观察到应用程序开发人员发现将 Envoy 代理配置为 API 网关和 Ingress 控制器很困难,这往往是耗时的。因此,社区使用 Kubernetes Gateway API 作为 Envoy 项目的一部分,并最终构建了 Envoy Gateway。

该项目由几个社区成员发起,包括 Matt Kleint(Lyft 的 Envoy 创始人)、Ambassador Labs、Fidelity Investments、Tetrate 和 VMware。社区合并了一些 CNCF 项目,如 Contour、Emissary 和 K8s Gateway API,将其整合到 Envoy Gateway 中,以提供无缝的引入过程。

引入 Envoy GatewayEnvoy Gateway 可让开发人员将 Envoy 代理扩展为适用于多集群和多云流量处理的 API 或 Ingress 控制器。Envoy Gateway 还可以充当控制平面,用于管理云应用中的 Envoy 代理。

Envoy Gateway 的特性Envoy Gateway 具有六个关键特性:

基于 Gateway API 和 Envoy 扩展的 API,用于处理南北向流量。高级负载均衡和流量管理能力。XDS 控制平面用于服务发现。为 Envoy 代理和 Ingress 提供动态配置更新和配置管理。扩展对多云和虚拟机的支持。TLS 证书委派。Envoy Gateway 提供了多个功能,使其适用于各种团队;例如,开发人员可以将 Envoy Gateway 用作轻量级用例的 API。此外,运维或基础架构团队可以使用 Envoy Gateway 维护服务网格中的 Envoy 代理集群。

Envoy Gateway 的架构Envoy Gateway 提供了一个控制平面(类似 Istio),用于管理 Envoy 代理集群,并提供轻量级的 API 用例。Envoy Gateway 内部的各个组件包括:

Provider:一个基础设施组件,Envoy Gateway 调用它建立运行时(或动态)配置、解析服务等。目前,Provider 仅支持 Kubernetes。Resource Watcher:负责监视用于建立和维护 Envoy Gateway 动态配置的资源的组件。Resource Translator:负责将资源监视器中的配置资源转换为基础设施或 xDS 资源的组件。Intermediate Representation(IR):用于定义外部资源转换为的内部数据模型,以将 Envoy Gateway 与用于动态配置的外部资源解耦。它包括两个子组件—— Infra IR 和 xDS IR。Infra IR 用作托管数据平面的定义和 Infra Manager 的输入。另一方面,xDS IR 用于定义 xDS 配置并作为 xDS Translator 的输入。xDS Translator:将 xDS IR 中的输入(配置)转换为 xDS 服务器的 xDS 资源。xDS Server:一个控制平面,实现 xDS 服务器协议并配置数据平面。Infra Manager:管理在数据平面中运行 Envoy 代理所需的所有基础设施,并实现控制平面功能,如 Gateway 和托管代理的集成。Envoy Gateway 的优势改善开发人员体验:通过能够直接在 Kubernetes 和 Istio 上使用 Envoy 作为本地的 API 和 Ingress 控制器,开发人员无需花费精力来开发或扩展 Envoy。此外,开发人员无需使用 Istio 之外的其他软件,如 NGINX 或 HAProxy。维护 Envoy 的时间更少:基础架构和运维团队可以自动使用 Envoy Gateway 进行生命周期管理功能,包括提供控制器资源、控制平面资源、代理实例等。从 Contour 和 Emissary 迁移简单:由于 Envoy Gateway 是在开源项目 Contour 和 Emissary 的基础上构建的,社区将确保用户可以轻松无忧地迁移到 Envoy Gateway。

标签:

品牌展会
全国巡演