2. Envoy网关架构概览:数据面与控制面、xDS协议与核心配置模型

在构建基于 Envoy 的网关 SLO 预算体系之前,必须理解 Envoy 的架构分层与配置驱动模型。Envoy 并非单体代理,而是由 数据面(Data Plane) 与 控制面(Control Plane) 组成的解耦系统。两者通过 xDS 协议 通信,实现动态、热更新的流量治理。

2.1 数据面与控制面架构

Envoy 数据面负责实际流量转发、负载均衡、健康检查与指标采集;控制面则负责将路由规则、集群端点、监听器配置等下发至数据面。这种分离设计使得 SLO 预算的配置变更无需重启代理,直接通过控制面热更新。

架构要点: 数据面是无状态的,所有配置状态由控制面管理。SLO 预算的阈值、窗口、聚合规则均属于控制面配置,通过 xDS 下发至数据面执行。
Envoy 数据面与控制面架构 控制面(Control Plane) xDS 配置生成器 SLO 预算规则引擎 集群发现 / 端点管理 健康检查聚合 数据面(Data Plane) Envoy Proxy 实例 流量转发 / 负载均衡 SLO 指标采集 熔断 / 重试 / 超时 xDS 协议 外部客户端 上游服务 说明: 控制面通过 xDS 将 Listener、Cluster、Route 配置推送到数据面;数据面负责执行流量转发并上报 SLO 指标。 SLO 预算的阈值与窗口在控制面定义,数据面仅做计数与判断。

2.2 xDS 协议:动态配置的核心

xDS(Discovery Service)是 Envoy 控制面与数据面之间的标准通信协议族。每个 xDS 资源类型对应 Envoy 配置模型中的一个核心组件。SRE 在制定 SLO 预算时,需要理解哪些配置通过哪些 xDS 通道下发。

xDS 类型 全称 对应配置模型 SLO 预算关联
LDS Listener Discovery Service 监听器(Listener) 监听端口、TLS 配置、过滤器链
RDS Route Discovery Service 路由(Route) 请求匹配规则、超时、重试策略
CDS Cluster Discovery Service 集群(Cluster) 负载均衡、熔断、连接池、健康检查
EDS Endpoint Discovery Service 端点(Endpoint) 上游实例列表、权重、区域
SDS Secret Discovery Service 证书/密钥 TLS 证书轮换
SRE 实践提示: 在 SLO 预算复核中,RDS 和 CDS 是最常调整的 xDS 资源。例如,调整重试次数或超时时间会直接影响请求成功率,进而影响 SLO 预算消耗。务必在控制面中记录每次 xDS 变更的版本号,便于回滚与审计。

2.3 Listener / Cluster / Route 配置模型

Envoy 的配置模型围绕三个核心资源构建:Listener(监听器)、Cluster(集群)和 Route(路由)。理解这三者的关系是配置 SLO 预算的基础。

  • Listener: 定义 Envoy 监听的端口、协议(HTTP/HTTPS/TCP)、过滤器链。每个 Listener 可以关联多个过滤器,例如 HTTP 连接管理器(HCM)用于处理七层流量。
  • Route: 定义请求的匹配规则(域名、路径、Header)与转发目标。Route 可以指定超时、重试、镜像、流量分割等策略,这些策略直接影响 SLO 指标。
  • Cluster: 定义上游服务集群的端点列表、负载均衡算法(轮询、最少请求、一致性哈希)、熔断阈值、健康检查参数。Cluster 是 SLO 预算中“错误预算”消耗的主要来源。
Listener / Cluster / Route 配置模型 Listener 端口: 443 协议: HTTP/2 过滤器链: HCM Route 域名: api.example.com 路径: /v1/orders 超时: 5s / 重试: 2次 Cluster 端点: 10.0.1.1:8080 负载均衡: 最少请求 熔断: 最大连接数 100 filter_chain route → cluster 配置流向: 请求到达 Listener → 匹配 Route 规则 → 转发到 Cluster 中的端点。 SLO 预算在 Route 层定义超时/重试策略,在 Cluster 层定义熔断/健康检查阈值。 SLO 预算配置关联 Listener 层:TLS 握手超时 → 影响连接成功率 Route 层:请求超时 / 重试次数 → 直接影响请求成功率(SLO 核心指标) Cluster 层:熔断阈值 / 健康检查 → 决定错误预算消耗速度

2.4 配置模型与 SLO 预算的映射

在 SLO 预算复核中,Envoy 的配置模型直接决定了哪些指标可以被采集、哪些策略会消耗错误预算。以下表格总结了核心配置项与 SLO 指标的映射关系:

配置资源 关键配置项 影响的 SLO 指标 预算消耗场景
Listener 监听端口、TLS 证书、连接超时 连接成功率、TLS 握手延迟 证书过期导致连接失败,消耗错误预算
Route 超时时间、重试次数、请求镜像 请求成功率、延迟 P99 超时过短导致请求失败,重试放大流量
Cluster 熔断阈值、健康检查频率、连接池大小 上游错误率、熔断触发次数 熔断开启后拒绝请求,消耗错误预算
Endpoint 端点权重、健康状态 负载均衡分布、端点可用性 端点异常导致流量倾斜,增加延迟
常见误区: 很多团队在配置 SLO 预算时只关注 Route 层的超时和重试,忽略了 Cluster 层的熔断和健康检查。实际上,熔断触发时 Envoy 会直接返回 503,这是错误预算消耗最快的场景之一。务必在 Cluster 层设置合理的熔断阈值,并与 SLO 预算窗口对齐。

2.5 本章小结