XDS API

XDS API简介

XDS API是一系列API的统称,这里的XDS代表如下API:

Concept 全称 描述
LDS Listener Discovery Service
RDS Route Discovery Service
CDS Cluster Discovery Service
EDS Endpoint Discovery Service
SDS Service Discovery Service 改名EDS
ADS Aggregated Discovery Service
HDS Health Discovery Service
SDS Secret Discovery Service
MS Metric Service
RLS Rate Limit Service
xDS 以上各种API的统称

在Envoy v2 API中,RDS路由指向集群,CDS提供集群配置,通过EDS发现集群成员。

xds api 在envoy中被称为 Data plane API,以下是envoy对这些API的说明:

这些API在某些情况下也可以被其他代理解决方案使用,如果这些解决方案也想与管理系统和配置生成器进行互操作,而这些系统和配置生成器是针对此标准构建。因此,我们视这些为通用数据平面API(universal data plane API)。

这里又引出一个 universal data plane API 的概念,有时被简称为 universal API

参考资料:

API定义和维护

xds api 以proto文件的方式定义并被保存在 Envoy仓库 下的 api 子目录下,也可以通过只读仓库 envoyproxy/data-plane-api 来访问。两者的区别是:

目前,xds api 中的 eds/cds/rds/lds 这四个早期定义的API,继续在包 envoy.api.v2 中维护,以兼容已有的代码。新的api如 ads 和还在开发中没有实现的 hds/sds 的开发在包 envoy.service.discovery.v2 中进行。

go-control-planejava-control-plane 两个仓库分别保存着基于Golang和基于Java的API Server 实现代码,实现了在 data-plane-api 中定义的discovery service API。