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 虚拟机,则不会出现此问题。
- 如果您使用 Google Cloud 控制台来创建虚拟机实例,则在重启之前,某些与
高级流量管理限制
高级流量管理的限制包括:
- 如果
BackendService.sessionAffinity
的值不是 NONE,且BackendService.localityLbPolicy
设置为MAGLEV
或RING_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 服务绑定到后端服务时,您无法在后端服务上配置健康检查。
后续步骤
- 如需了解适用于无代理 gRPC 应用的 Traffic Director 的限制,请参阅无代理 gRPC 限制。
- 如需详细了解 Traffic Director,请参阅 Traffic Director 概览。