Envoy Gateway (EG) 通过自定义资源定义 (CRD) 扩展了 Kubernetes Gateway API,提供灵活而强大的流量管理功能。这些特性提升了服务的可用性和性能,同时为服务间流量提供了精细的控制。

路由与流量分发

  • HTTP/GRPC 路由:使用 HTTPRouteGRPCRoute 根据路径、方法、头信息或 gRPC 方法进行路由。
  • 请求镜像:通过 HTTPRequestMirrorFilter 镜像请求到不同的后端服务,而不影响原始流量。
  • 多协议支持:通过 TCPRouteUDPRoute 根据端口号路由 TCP 和 UDP 流量。
  • 多集群路由:结合 ServiceImportHTTPRoute 实现跨集群服务的路由。

流量控制与优化

  • 重试与熔断器:通过 BackendTrafficPolicy 配置重试和熔断器策略,提升可靠性并防止过载。
  • 全局速率限制:在多个 Envoy 实例间共享请求限额,保护资源。
  • 连接和超时管理:使用 ClientTrafficPolicyHTTPRoute 控制并发连接和设置请求超时。
  • 故障注入:通过 BackendTrafficPolicy 注入延迟和错误,进行鲁棒性测试。

流量修改

  • HTTP 重定向与 URL 重写:使用 HTTPRoute 进行流量重定向(如 HTTP 到 HTTPS)或重写 URL。
  • 头信息管理:通过 RequestHeaderModifierResponseHeaderModifier 修改请求和响应头。
  • HTTP/3 支持:启用 HTTP/3 提升连接速度,减少延迟。

负载均衡

Envoy Gateway 支持多种负载均衡策略:

  • 轮询:顺序分发请求。
  • 随机:随机选择上游主机。
  • 最少请求:选择负载最轻的主机。
  • 一致性哈希:基于哈希算法路由请求。

这些策略通过 BackendTrafficPolicy 配置,适用于 GatewayHTTPRouteGRPCRoute

客户端流量策略

ClientTrafficPolicy 用于管理 Envoy Proxy 与下游客户端之间的连接行为,包括 TCP 保活、代理协议和超时管理。

通过这些功能,Envoy Gateway 提供了强大且精细的流量控制能力,满足现代服务的需求。

本章内容

最后更新于 2024/11/27