0
点赞
收藏
分享

微信扫一扫

xDS协议

xDS

​xDS​​是数据平面标准

利用​​XDS​​​协议,​​Envoy​​​可以实现配置的完全动态化,配置实时更新而无需重启​​Envoy​​​或者影响业务,此外,利用其L3/L4/L7 Filter机制,​​Envoy​​​可以完全无侵入的扩展各种强大的功能。利用其内置的​​Tracing​​​机制和​​Stats​​​模块,可以很方便的实现对流量的跟踪以及监控,保证Envoy中流量的可观察性。 由​​Envoy​​​项目发展而来,​​Envoy​​​ 可以通过​​xDS API​​​ 可以动态获取​​Listener​​​(监听器),​​Route​​​(路由),​​Cluster​​​(集群/服务),​​Endpoint​​​(集群成员/服务实例)以及​​Secret​​(秘钥)配置。

​xDS​​​协议是基于​​gRPC​​​实现的传输协议,即​​Envoy​​​通过​​gRPC streaming​​​订阅​​Pilot​​​的资源配置。 ​​Pilot​​​借助​​ADS​​​对API更新推送排序的能力,按照​​CDS​​​-​​EDS​​​-​​LDS​​​-​​RDS​​ 的顺序串行分发配置。

​xDS​​ 是一组发现服务的总称,包含:

  1. LDS
    Listener 发现服务。
    Listener监听器控制Envoy启动端口监听(目前只支持TCP协议),并配置L3/L4层过滤器,当网络连接达到后,配置好的网络过滤器堆栈开始处理后续事件。
    这种通用的监听器体系结构用于执行大多数不同的代理任务(限流,客户端认证, HTTP连接管理, TCP代理等)。
  2. RDS
    Route发现服务,用于HTTP连接管理过滤器动态获取路由配置。
    路由配置包含HTTP头部修改(增加、删除HTTP头部键值),virtual hosts (虚拟主机),以及virtual hosts 定义的各个路由条目。
  3. CDS
    Cluster发现服务,用于动态获取Cluster信息。
    Envoy cluster管理器管理着所有的上游cluster。
    鉴于上游cluster或者主机可用于任何代理转发任务,所以上游cluster一般从Listener或Route中抽象出来。
  4. EDS
    Endpoint发现服务。
    在Envoy术语中, Cluster成员就叫 Endpoint,对于每个Cluster, Envoy通过EDS API动态获取Endpoint。
    EDS作为首选的服务发现的原因有两点:
    与通过DNS解析的负载均衡器进行路由相比, Envoy能明确的知道每个上游主机的信息,因而可以做出更加智能的负载均衡决策。 Endpoint配置包含负载均衡权重、可用域等附加主机属性,这些属性可用域服务网格负载均衡,统计收集等过程中。
  5. SDS
    Secret发现服务,用于运行时动态获取TLS证书。
    若没有SDS特性,在k8s环境中,必须创建包含证书的Secret,代理启动前Secret必须挂载到sidecar容器中,如果证书过期,则需要重新部署。
    使用SDS,集中式的SDS 服务器将证书分发给所有的Envoy实例,如果证书过期,服务器会将新的证书分发, Envoy 接收到新的证书后重新加载儿不用重新部署

根据配置更新下发维度分类:

  1. State of the World(Basic xDS):全量传输 独立gRPC stream
  2. Incremental xDS:增量传输 独立gRPC stream
  3. Aggregated Discovery Service(ADS):全量传输 聚合gRPC stream
  4. Incremental ADS:增量传输 聚合gRPC stream (暂未实现)

ADS

早期的xDS协议是 全量传输 单链接 独立资源, 现在主流的还是全量传输 聚合gRPC Stream (ADS)。

由于Envoy xDS采用最终一致性,部分流量可能在更新时被丢弃。 ADS通过一个连接(gRPC同一stream)申请多种资源/接受多种资源。 能够保证请求一定落在同一Pilot上,解决多个管理服务器配置不一致的问题。 通过顺序的配置分发,轻松解决资源更新顺序的问题。 按照这个方式CDS-EDS-LDS-RDS下发,由Polit控制,规避流量丢失的问题。

Incremental xDS

当配置发生变化时,仅下发和更新发生变化的配置部分,增量 xDS 客户端需要向服务器告知它已拥有的资源从而避免重复发送。

UDPA

​UDPA​​是“Universal Data Plane API”的缩写, “通用数据平面API”。

是由xDS演化而来

xDS协议_监听器

xDS 将逐渐向 UDPA 靠拢,未来将基于 UDPA

举报

相关推荐

0 条评论