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,請參閱 Envoy 和 gRPC 說明文件。
如果您仍在使用 xDS v2,請按照下列操作說明遷移至 xDS v3。
從 xDS v2 遷移至 xDS v3
遷移程序分為兩個步驟:
- 更新授予服務帳戶的 Identity and Access Management (IAM) 權限。用戶端 (Envoy Proxy 或無 Proxy 的 gRPC 程式庫) 連線至 Cloud Service Mesh 時,會使用這個服務帳戶。
- 更新並重新部署應用程式。具體步驟因部署方式而異,請參閱以下各節的說明。
更新服務帳戶的 IAM 權限
請確認 Cloud Service Mesh 用戶端 (Envoy、無 Proxy 的 gRPC) 使用的服務帳戶具有 trafficdirector.networks.reportMetrics 和 trafficdirector.networks.getConfigs 權限。IAM Traffic Director 用戶端角色 (roles/trafficdirector.client) 包含這些權限。
如果您使用自訂 IAM 角色,可以將這些權限新增至自訂角色。新增權限後,您可以從服務帳戶移除 Compute 網路檢視者角色 (roles/compute.networkViewer)、Compute 網路管理員角色 (roles/compute.networkAdmin),或兩者皆移除。
建議您使用 Cloud Service Mesh 用戶端角色,而非 Compute Network 檢視者角色 (roles/compute.networkViewer) 或 Compute Network 管理員角色 (roles/compute.networkAdmin)。使用 Cloud Service Mesh 用戶端角色可限制授予服務帳戶的權限,避免授予過於廣泛的權限。
更新應用程式
更新服務帳戶的 IAM 權限後,請更新應用程式。
Compute Engine 上的 Envoy
如要使用 Compute Engine 更新 Envoy 上的應用程式,請滾動式重新啟動或取代代管執行個體群組。系統會自動將支援 xDS v3 的 Envoy 版本新增至虛擬機器 (VM) 執行個體。
GKE 上的 Envoy
如果您使用 Google Kubernetes Engine (GKE) 自動注入 Envoy,請在搭配 Cloud Service Mesh 使用的 GKE 叢集上重新安裝 Sidecar 注入器。建立新的 Pod 時,系統會自動在工作負載 Pod 旁插入支援 xDS v3 的 Envoy Sidecar Proxy。
如果您在 GKE 上使用手動補充容器注入功能,請在每個 GKE 叢集上重新部署補充容器 Proxy。
遷移程序分為兩個步驟:
確認您使用的 gRPC 版本支援 xDS v3。詳情請參閱 gRPC 中的 xDS 功能。
請按照下列步驟更新啟動程序設定:
- 在
"xds_servers"欄位中新增"server_features": ["xds_v3"],如這個自我啟動檔案範例所示。 節點 ID 必須採用以下格式,如上一個範例所示:
"projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID"
- 在
對應用程式進行上述變更後,請建構並重新部署應用程式。
上述對啟動程序設定的變更不會影響不支援 xDS v3 的 gRPC 版本。此外,如果啟動程序設定中沒有上述變更,支援 xDS v3 的 gRPC 版本會使用 xDS v2。
為方便起見,您可以使用 Cloud Service Mesh gRPC 啟動程序產生器 0.16.0 版以上版本,產生與 xDS v3 相容的啟動程序設定。
確認 Cloud Service Mesh 用戶端使用 xDS v3
如要檢查 Cloud Service Mesh 為用戶端產生的設定,可以使用用戶端狀態工具。這項工具會指出設定是 xDS v2 還是 xDS v3。
後續步驟
- 如需 Cloud Service Mesh 的一般疑難排解資訊,請參閱「排解 Envoy 部署問題」。
- 如要解決部署無 Proxy gRPC 服務時發生的設定問題,請參閱「排解無 Proxy gRPC 部署項目的問題」。