Envoy 的 Traffic Director 限制

本文档介绍了适用于 Traffic Director 的限制,包括高级流量管理限制。如需了解限制,请参阅配额和限制

一般限制

Traffic Director 的限制包括以下内容:

  • Traffic Director 仅支持 Google Cloud API。Traffic Director 不支持 Istio API。
  • 您可以使用 Traffic Director 配置以下请求协议:HTTP(HTTP/1.1 或 HTTP/2)、HTTPS、TCP 和 gRPC。
  • 使用 Envoy 作为数据平面代理时,stream_idle_timeout默认为 5 分钟。无法通过 Traffic Director 进行此配置。
  • 当您使用目标 TCP 代理资源配置 TCP 请求协议时,不能使用高级流量管理功能。只有在您配置数据层面来处理 HTTP 或 gRPC 请求后,才能使用高级流量管理。
  • Traffic Director 支持共享 VPC。注意事项:

    • 使用负载均衡 API 时,转发规则及其关联的目标代理、网址映射、后端服务和后端必须位于单个项目中,该项目可以是宿主项目或服务项目。如果您有多个服务项目,则每个服务项目都可以有自己的一组资源。
    • 默认情况下,使用负载均衡 API 时,建议将以下引用共享 VPC 网络的规则用于附加到主机项目的主机和服务项目的所有 Envoy 代理,前提是这些代理在其 bootstrap/sidecar.env 文件中指定共享 VPC 网络。如需自定义此行为,请使用配置过滤
    • 如需访问 Traffic Director,您只能通过如下项目的服务账号:该项目具有使用与共享 VPC 网络关联的负载均衡方案 INTERNAL_SELF_MANAGED 的至少一个转发规则。
  • Traffic Director 支持与服务路由 API 配合使用 VPC 网络对等互连,但不支持与负载均衡 API 配合使用。

  • Traffic Director 不支持服务器优先协议。

  • Traffic Director 无法用于在 Knative 或 Google Cloud 无服务器计算中运行的服务。

  • 本文档讨论了 Envoy 代理,但您可以将任何开放式标准 API (xDS) 代理与 Traffic Director 搭配使用。不过,Google 仅使用 Envoy 代理对 Traffic Director 进行了测试。

  • 如需使用 Traffic Director,请使用 Envoy 1.9.1 或更高版本。

  • 如需使用正则表达式,请使用 Envoy 1.12.0 或更高版本。1.12.0 之前的 Envoy 版本不支持正则表达式。

  • 为了确保所有已知的安全漏洞都得到缓解,我们建议您使用最新的 Envoy 版本。如需了解 Envoy 安全建议,请参阅 Envoy 安全建议

  • Google Cloud 控制台不支持混合连接网络端点组 (NEG)。如需创建或删除混合连接 NEG,请使用 Google Cloud CLI。

  • 由于数据平面会处理健康检查,因此您无法使用 Google Cloud 控制台、API 或 gcloud CLI 来检索健康检查状态。

  • 检查 iptables 并确保其设置正确。如需详细了解如何配置 iptables,请参阅关于配置 HTTP 过滤的 Envoy 说明。

    • 如果您使用 Google Cloud 控制台来创建虚拟机实例,则在重启之前,某些与 ipv6 相关的模块不会进行安装和提供使用。因此,iptables.sh 会因缺少依赖项而失败。在这种情况下,请重启虚拟机并重新运行 run.sh 脚本。
    • 如果您使用 gcloud CLI 来创建 Compute Engine 虚拟机,则不会出现此问题。

高级流量管理限制

高级流量管理的限制包括:

  • 如果 BackendService.sessionAffinity 的值不是 NONE,且 BackendService.localityLbPolicy 设置为 MAGLEVRING_HASH 以外的其他负载平衡政策,则会话亲和性设置不会生效。
  • gcloud import 命令不会删除后端服务和网址映射等资源的顶级字段。例如,如果后端服务在创建时指定了 circuitBreakers 设置,您可以使用后续的 gcloud import 命令来更新这些设置。但是,您无法从后端服务中删除这些设置。您可以删除资源本身,然后重新创建不具有 circuitBreakers 设置的资源。
  • 无法正常导入转发规则;您无法重新导入导出的 YAML 文件。解决方法是导出配置文件,进行更改,删除转发规则,然后导入配置文件。

Service Directory 的限制

  • Service Directory 和 Traffic Director 不保证客户端的网络可达性。
  • 后端服务只能引用以下其中一项:

    • 代管式实例组或非代管式实例组
    • 网络端点组
    • 服务绑定
  • Service Directory 服务只能与满足 load-balancing-scheme=INTERNAL_SELF_MANAGED 的全局后端服务一起使用。

  • 可以删除服务绑定引用的 Service Directory 服务。如果后端服务附加的底层 Service Directory 服务被删除,则使用 Traffic Director 的应用无法将流量发送到此服务,因此请求会失败。如需了解最佳做法,请参阅可观测性和调试

健康检查

将 Service Directory 服务绑定到后端服务时,您无法在后端服务上配置健康检查。

后续步骤