[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-08-11。"],[],[],null,["# xDS control plane APIs\n======================\n\nCloud Service Mesh and its clients (Envoy proxies or proxyless gRPC\nlibraries) use the [open source xDS\nAPI](https://www.envoyproxy.io/docs/envoy/latest/api/api)\nto exchange information. When you configure\nCloud Service Mesh---for example, by using resources such as\nforwarding rules and backend services---Cloud Service Mesh converts\nthese resources to an xDS configuration, which it shares with its clients.\n| **Note:** This guide only supports Cloud Service Mesh with Google Cloud APIs and does not support Istio APIs. For more information see, [Cloud Service Mesh overview](/service-mesh/docs/overview).\n\nxDS version support\n-------------------\n\nCloud Service Mesh supports xDS v3 only.\n\nTo determine which Envoy and gRPC versions support xDS v3, see the\n[Envoy](https://www.envoyproxy.io/docs/envoy/latest/api/api_supported_versions)\nand\n[gRPC](https://github.com/grpc/grpc/blob/master/doc/grpc_xds_features.md) documentation.\n\nIf you are still using xDS v2, use the following instructions to migrate to\nxDS v3.\n\nMigrate from xDS v2 to xDS v3\n-----------------------------\n\nThere are two steps in the migration process:\n\n1. Update the Identity and Access Management (IAM) permissions granted to the service account that your clients (Envoy proxies or proxyless gRPC libraries) use when connecting to Cloud Service Mesh.\n2. Update and redeploy your applications. The specific steps vary depending on your deployment and are explained in the following sections.\n\n### Update the service account's IAM permissions\n\nMake sure that the service account used by your Cloud Service Mesh\nclients (Envoy, proxyless gRPC) has the `trafficdirector.networks.reportMetrics`\nand `trafficdirector.networks.getConfigs` permissions. These permissions are\nincluded in the IAM\n[Cloud Service Mesh Client role](/iam/docs/understanding-roles#other-roles)\n(`roles/trafficdirector.client`).\n\nIf you are using a custom IAM role, you can add these permissions\nto the custom role. After you add the permissions, you can remove the Compute\nNetwork Viewer role (`roles/compute.networkViewer`), the Compute Network Admin\nrole (`roles/compute.networkAdmin`), or both from the service account.\n\nWe recommend that you use the Cloud Service Mesh Client role instead of\nthe Compute Network Viewer role (`roles/compute.networkViewer`) or the Compute\nNetwork Admin role (`roles/compute.networkAdmin`). Using the\nCloud Service Mesh Client role restricts the permissions granted to the\nservice account and avoids granting overly broad permissions.\n\n### Update your applications\n\nAfter you update the IAM permissions on the service account,\nupdate your applications.\n\n#### Envoy on Compute Engine\n\nTo update your applications on Envoy with Compute Engine, do a\n[rolling restart or replacement](/compute/docs/instance-groups/rolling-out-updates-to-managed-instance-groups#starting_a_basic_rolling_update)\nof the managed instance groups. A version of Envoy that supports xDS v3 is\nautomatically added to your virtual machine (VM) instances.\n\n#### Envoy on GKE\n\nIf you use automatic Envoy injection with Google Kubernetes Engine (GKE),\n[re-install the sidecar injector](/traffic-director/docs/set-up-gke-pods-auto#installing_the_sidecar_injector_to_your_cluster)\non the GKE clusters that you are using with\nCloud Service Mesh. When a new Pod is created, an Envoy sidecar proxy\nthat supports xDS v3 is automatically injected alongside your workload Pod.\n\nIf you use manual sidecar injection on GKE, [redeploy the sidecar proxy](/traffic-director/docs/set-up-gke-pods#injecting_a_sidecar_proxy_into_kubernetes_pods)\non each of your GKE clusters.\n\n#### Proxyless gRPC\n\nThere are two steps in the migration process:\n\n1. Ensure that the version of gRPC that you use supports xDS v3. For more\n information, see [xDS features in gRPC](https://github.com/grpc/grpc/blob/master/doc/grpc_xds_features.md).\n\n2. Update the bootstrap configuration by using the following steps:\n\n 1. In the `\"xds_servers\"` field, add `\"server_features\": [\"xds_v3\"]` as shown in this [bootstrap file example](/service-mesh/docs/onboarding/prepare-service-routing-envoy-proxyless#bootstrap_file).\n 2. The node ID must be in the following format as shown in the previous\n example:\n\n ```\n \"projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID\"\n ```\n\n| **Note:** Per policy, we encourage users to check for updates of the TD gRPC bootstrap generator yearly.\n\nAfter you make the preceding changes to your application, build and redeploy it.\n\nThe preceding changes to the bootstrap configuration don't affect gRPC versions\nthat don't support xDS v3. Also, if the preceding changes are not present in\nthe bootstrap configuration, then gRPC versions that support xDS v3 use xDS v2.\n\nFor your convenience, you can use [Cloud Service Mesh gRPC bootstrap generator version 0.16.0](https://github.com/GoogleCloudPlatform/traffic-director-grpc-bootstrap/releases/tag/v0.16.0)\nor later to generate an xDS v3-compatible bootstrap configuration.\n\nVerify that Cloud Service Mesh clients are using xDS v3\n-------------------------------------------------------\n\nTo inspect the configuration that Cloud Service Mesh generates for its\nclients, you can use the\n[client status tool](/service-mesh/docs/service-routing/client-status).\nThis tool states whether the configuration is xDS v2 or xDS v3.\n\nWhat's next\n-----------\n\n- To find general Cloud Service Mesh troubleshooting information, see [Troubleshoot Envoy deployments](/service-mesh/docs/service-routing/troubleshooting).\n- To resolve configuration issues when you deploy proxyless gRPC services, see [Troubleshoot proxyless gRPC deployments](/service-mesh/docs/service-routing/troubleshooting-proxyless)."]]