Traffic Director xDS 控制层面 API

Traffic Director 及其客户端(Envoy 代理或无代理 gRPC 库)使用开源 xDS API 来交换信息。当您使用转发规则和后端服务等资源配置 Traffic Director 时,Traffic Director 会将这些资源转换为 xDS 配置,并与其客户端共享。

xDS 版本支持

Traffic Director 支持 xDS v3(推荐)和 xDS v2。如需确定哪些 Envoy 版本和 gRPC 版本支持 xDS v3,请参阅 EnvoygRPC 文档。

从 xDS v2 迁移到 xDS v3

迁移过程有两个步骤:

  1. 更新客户端(Envoy 代理或无代理 gRPC 库)在连接到 Traffic Director 时使用的服务帐号的 Identity and Access Management (IAM) 权限。
  2. 更新并重新部署应用。具体步骤因部署而异,以下部分对此进行了说明。

更新服务帐号的 IAM 权限

确保 Traffic Director 客户端(Envoy、无代理 gRPC)使用的服务帐号具有 trafficdirector.networks.reportMetricstrafficdirector.networks.getConfigs 权限。IAM Traffic Director Client 角色 (roles/trafficdirector.client) 中包含这些权限。

如果您使用的是自定义 IAM 角色,则可以将这些权限添加到自定义角色中。添加权限后,您可以从服务帐号中移除 Compute Network Viewer 角色 (roles/compute.networkViewer) 和/或 Compute Network Admin 角色 (roles/compute.networkAdmin)。

更新应用

更新服务帐号的 IAM 权限后,请更新应用。

Compute Engine 上的 Envoy

如果您在 Compute Engine 上使用自动 Envoy 部署,请对代管式实例组执行滚动重启或替换。支持 xDS v3 的 Envoy 版本会自动添加到虚拟机 (VM) 实例。

如果您在 Compute Engine 虚拟机上手动部署 Envoy,请按照设置指南创建新的实例模板。设置指南使用支持 xDS v3 的最新版 Envoy。接下来,指定新的实例模板并执行滚动更新

GKE 上的 Envoy

如果您将自动 Envoy 注入与 Google Kubernetes Engine (GKE) 搭配使用,请在与 Traffic Director 搭配使用的 GKE 集群上重新安装 Sidecar 注入器。当新的 pod 创建后,支持 xDS v3 的 Envoy Sidecar 代理会自动注入到新的 pod 和工作负载 pod。

如果您在 GKE 上使用手动 Sidecar 注入,请在每个 GKE 集群上重新部署 Sidecar 代理

无代理 gRPC

迁移过程有两个步骤:

  1. 确保您使用的 gRPC 版本支持 xDS v3。如需了解详情,请参阅 gRPC 中的 xDS 功能

  2. 按照以下步骤更新引导配置:

    1. "xds_servers" 字段中添加 "server_features": ["xds_v3"],如此引导文件示例所示。
    2. 节点 ID 必须采用以下格式,如上面的示例所示:

      "projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID"
      

对应用进行上述更改后,请构建并重新部署应用。

上述引导配置更改不会影响不支持 xDS v3 的 gRPC 版本。此外,如果引导配置中不存在上述更改,则支持 xDS v3 的 gRPC 版本会使用 xDS v2。

为方便起见,您可以使用 Traffic Director gRPC 引导生成器 0.11.0 版或更高版本生成与 xDS v3 兼容的引导配置。

验证 Traffic Director 客户端在使用 xDS v3

要检查 Traffic Director 为其客户端生成的配置,您可以使用客户端状态工具。此工具会指明配置是 xDS v2 还是 xDS v3。

后续步骤