Envoy XDS 介绍
介绍
xDS(Extensible Discovery Service)是一种通信协议,用于在微服务架构中管理服务发现和动态配置。这种机制被广泛用于 Envoy 代理和 Istio 服务网格中,以管理各种类型的资源配置,如路由、服务发现、负载均衡设置等。
LDS(Listener Discovery Service):管理 Envoy 监听器的配置,监听器定义如何接收和处理入站连接
RDS(Route Discovery Service):提供路由信息,定义如何根据指定规则将请求路由到不同的服务
CDS(Cluster Discovery Service):管理集群信息,集群代表一组逻辑上类似的后端服务实例
EDS(Endpoint Discovery Service):提供具体服务实例的网络地址,这些服务实例组成了 CDS 中定义的集群
SDS(Secret Discovery Service):管理安全相关的配置,如 TLS 证书和私钥
VHDS(Virtual Host Discovery Service):为 RDS 提供虚拟主机配置,允许动态更新虚拟主机而不重启连接
SRDS(Scoped Route Discovery Service):管理路由作用域,提供基于不同条件(如请求头部)的动态路由选择
RTDS(Runtime Discovery Service):提供运行时配置,这些配置可用于实验性功能或精细调整系统行为
ECDS(Extension Config Discovery Service):为特定过滤器提供动态配置更新的服务。目前,网络过滤器、HTTP 过滤器和监听器过滤器都支持 ECDS
xDS 协议的变体
xDS 协议主要包括以下变体:
State of the World (SotW):单独的 gRPC 流为每种资源类型提供完整数据,通常在 Envoy 代理初次启动时使用,也是 Istio 最早使用的 xDS 协议类型。
增量 xDS(Delta xDS):为每种资源类型提供变化的部分数据,从 2021 年开始开发,在 Istio 1.22 版本中开始默认开启。
聚合发现服务(ADS):一个 gRPC 流聚合所有资源类型的数据。
增量 ADS(Delta ADS):一个 gRPC 流聚合所有资源类型的增量数据
相关代码