【Envoy Gateway】EnvoyProxy 与基础设施:谁管数据面生命周期,GatewayNamespaceMode 与 remote infra

💡 原文中文,约12300字,阅读约需30分钟。
📝

内容提要

本文介绍Envoy Gateway v1.9.0中数据面Pod生命周期管理。EnvoyProxy定义舰队,Infra Manager将InfraIR转为Pod,但路由Accepted不保证舰队存在。GatewayNamespaceMode改变部署位置和xDS认证,v1.9修复认证绕过。Remote provider通过gRPC接管InfraIR执行,官方示例非生产级。mergeBackends默认关闭且为实验性,需用selector渐进启用,与mergeGateways互斥。

🔎

延伸解读

路由 Accepted 不等于数据面就绪

HTTPRoute 的 Accepted=True 只表示路由被接受,并不保证 Envoy 舰队已经存在。排障时应先确认 EnvoyProxy 被谁引用、Infra Manager 是否已将 InfraIR 调谐为 Deployment/Service,再检查 xDS 连接。若舰队未起,Programmed 不会变绿,问题可能出在基础设施层而非路由翻译。

GatewayNamespaceMode 的认证变化

GatewayNamespaceMode 将数据面资源部署到每个 Gateway 的命名空间,同时 xDS 认证从双向 mTLS 改为服务端 TLS + SA JWT。v1.9.0 修复了该模式下的认证绕过漏洞,属于安全补丁。升级前若已使用此模式,应视为安全更新,而非行为不变的小版本。

Remote provider 的责任边界

Remote infrastructure provider 通过 gRPC 接管 InfraIR 的执行,但 XdsIR 和 xDS 服务器仍在 Envoy Gateway 内。官方示例仅调谐 Deployment 和 Service,并非生产级实现。生产级 provider 需处理限流基础设施、幂等 apply 和 rateLimit.url 一致性。Programmed 变绿不再等价于本集群有 Pod,排障需确认 provider 是否幂等落地了最新 IR。

mergeBackends 是实验性功能

mergeBackends 在 v1.9.0 中默认关闭且标记为实验性,用于合并引用同一后端的 cluster 以减少 xDS 体积。它通过 selector 渐进启用,且与 mergeGateways 互斥。不要将其视为生产默认优化,实际效果需集群数据验证。

Q&A

Envoy Gateway 中 EnvoyProxy 资源的作用是什么?

EnvoyProxy 是 Envoy Gateway API 中表示托管数据面的对象,用于描述镜像、副本、Service、bootstrap、遥测、过滤器顺序等。它可被 GatewayClass 或 Gateway 引用,遵循最具体配置优先的原则。

Envoy Gateway 中 Infra Manager 的职责是什么?

Infra Manager 负责将 InfraIR 调谐为 Kubernetes 对象,如 Deployment、Service、ServiceAccount 等,并维持这些对象。它不负责确保 Envoy 配置被 ACK 或 warming 完成。

GatewayNamespaceMode 与默认模式在 xDS 认证上有什么区别?

默认 Controller Namespace 模式使用双向 mTLS 认证;GatewayNamespaceMode 改为服务端 TLS + JWT,Envoy 使用 projected ServiceAccount JWT 连接 xDS 控制器,控制器通过 TokenReview 校验 JWT。

Envoy Gateway v1.9.0 中 Remote infrastructure provider 是什么?

Remote infrastructure provider 是 v1.9.0 新增的功能,允许将 InfraIR 通过 gRPC 发送给外部 provider,由外部 provider 负责数据面基础设施的创建和管理,而 Envoy Gateway 仍负责 xDS 服务器和 XdsIR 翻译。

Envoy Gateway 中 mergeBackends 是什么?如何使用?

mergeBackends 是 EnvoyProxy 的一个实验性字段,默认关闭。开启后,引用同一后端的多条路由共享一个 Envoy cluster,以减少 xDS 和健康检查流量。可通过 selector 渐进启用,且与 mergeGateways 互斥。

Envoy Gateway v1.9.0 修复了 GatewayNamespaceMode 下的什么安全问题?

v1.9.0 修复了 GatewayNamespaceMode 下 xDS 服务器认证绕过的问题,补上了 Unary interceptor 并校验 SotW 请求,确保认证不会 fail-open。

Envoy Gateway 中 EnvoyProxy 的 mergeGateways 和 mergeBackends 可以同时使用吗?

不可以,mergeBackends 与 mergeGateways 互斥,不能同时启用。

🏷️

标签

➡️

继续阅读