xDS 控制層 API
Cloud Service Mesh 及其用戶端 (Envoy 代理程式或無代理程式的 gRPC 程式庫) 會使用 開放原始碼 xDS API 交換資訊。設定 Cloud Service Mesh 時 (例如使用轉送規則和後端服務等資源),Cloud Service Mesh 會將這些資源轉換為 xDS 設定,並與客戶端共用。
xDS 版本支援
Cloud Service Mesh 僅支援 xDS 3 版。
如要判斷哪些 Envoy 和 gRPC 版本支援 xDS 3.0,請參閱 Envoy 和 gRPC 說明文件。
如果您仍在使用 xDS 第 2 版,請按照下列操作說明,將其遷移至 xDS 第 3 版。
從 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 Cloud Service Mesh 用戶端角色 (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
如果您使用自動 Envoy 注入功能搭配 Google Kubernetes Engine (GKE),請在您搭配 Cloud Service Mesh 使用的 GKE 叢集上重新安裝側載注入器。建立新 Pod 時,系統會自動在工作負載 Pod 中注入支援 xDS v3 的 Envoy 附屬 Proxy。
如果您在 GKE 上使用手動側載物植入功能,請在每個 GKE 叢集中重新部署側載物 Proxy。
無 Proxy gRPC
遷移程序分為兩個步驟:
請確認您使用的 gRPC 版本支援 xDS 3.0。詳情請參閱「gRPC 中的 xDS 功能」。
請按照下列步驟更新 Bootstrap 設定:
- 在
"xds_servers"
欄位中,新增"server_features": ["xds_v3"]
,如這個 Bootstrap 檔案範例所示。 節點 ID 必須採用以下格式,如上一個範例所示:
"projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID"
- 在
對應用程式進行上述變更後,請建構並重新部署應用程式。
上述對引導設定所做的變更,不會影響不支援 xDS 3.0 的 gRPC 版本。此外,如果上述變更未出現在引導設定中,則支援 xDS v3 的 gRPC 版本會使用 xDS v2。
為方便起見,您可以使用 Cloud Service Mesh gRPC 啟動輔助程式產生器 0.16.0 以上版本產生與 xDS 3 相容的啟動輔助設定。
確認 Cloud Service Mesh 用戶端是否使用 xDS 3.0
如要檢查 Cloud Service Mesh 為其用戶端產生的設定,您可以使用用戶端狀態工具。這項工具會指出設定是 xDS v2 還是 xDS v3。
後續步驟
- 如需一般 Cloud Service Mesh 疑難排解資訊,請參閱「排解 Envoy 部署問題」。
- 如要解決部署無 Proxy gRPC 服務時的設定問題,請參閱「排解無 Proxy gRPC 部署問題」。