xDS 控制层面 API

Cloud Service Mesh 及其客户端(Envoy 代理或无代理 gRPC 库)使用开源 xDS API 交换信息。在配置过程中 Cloud Service Mesh - 例如,使用 转发规则和后端服务 - Cloud Service Mesh 会 将这些资源上传到 xDS 配置,并与其客户端共享此配置。

xDS 版本支持

Cloud Service Mesh 仅支持 xDS v3。

要确定哪些 Envoy 和 gRPC 版本支持 xDS v3,请参阅 EnvoygRPC 文档。

如果您仍在使用 xDS v2,请按照以下说明迁移到 xDS v3。

从 xDS v2 迁移到 xDS v3

迁移过程有两个步骤:

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

更新服务账号的 IAM 权限

确保您的 Cloud Service Mesh 使用的服务账号 客户端(Envoy、无代理 gRPC)具有 trafficdirector.networks.reportMetricstrafficdirector.networks.getConfigs 权限。这些权限是 已包含在 IAM 中 Cloud Service Mesh Client 角色 (roles/trafficdirector.client).

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

我们建议您使用 Cloud Service Mesh Client 角色,而不是 Compute Network Viewer 角色 (roles/compute.networkViewer) 或 Compute Network Admin 角色 (roles/compute.networkAdmin)。使用 Cloud Service Mesh Client 角色会限制 避免授予过于宽泛的权限

更新应用

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

Compute Engine 上的 Envoy

如需使用 Compute Engine 在 Envoy 上更新应用,请执行以下操作: 滚动式重启或替换 所有代管式实例组支持 xDS v3 的 Envoy 版本会自动添加到虚拟机 (VM) 实例。

GKE 上的 Envoy

如果您将自动 Envoy 注入与 Google Kubernetes Engine (GKE) 搭配使用, 重新安装 Sidecar 注入器 您使用的 GKE 集群上 Cloud Service Mesh。创建新 Pod 时,Envoy 边车代理 支持 xDS v3 的 SDK 与您的工作负载 Pod 一起自动注入。

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

无代理 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"
      

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

上述对引导配置的更改不会影响 gRPC 版本 不支持 xDS v3 的应用。此外,如果上述更改 引导加载程序配置,则支持 xDS v3 的 gRPC 版本使用 xDS v2。

为方便起见,您可以使用 Cloud Service Mesh gRPC 引导加载程序生成器版本 0.11.0 或更高版本,以便生成与 xDS v3 兼容的引导配置。

验证 Cloud Service Mesh 客户端是否使用 xDS v3

要检查 Cloud Service Mesh 为其提供的 可以使用 客户端状态工具。 此工具会说明配置是 xDS v2 还是 xDS v3。

后续步骤