Cloud Service Mesh 先決條件
本頁面說明安裝 Cloud Service Mesh 的必要條件和需求,例如 GKE Enterprise 授權、叢集需求、機群需求和一般需求。
Cloud 專案
事前準備:
GKE Enterprise 授權
GKE
您可以透過 GKE Enterprise 使用 Cloud Service Mesh,或是單獨使用這項服務。Google API 會決定計費方式。如要將 Cloud Service Mesh 做為獨立服務使用,請勿在專案中啟用 GKE Enterprise API。asmcli 會為您啟用所有其他必要的 Google API。如要瞭解 Cloud Service Mesh 定價,請參閱「定價」一文。
- GKE Enterprise 訂閱者請務必啟用 GKE Enterprise API。
如果您不是 GKE Enterprise 訂閱者,仍可安裝 Cloud Service Mesh,但 Google Cloud 控制台中的某些 UI 元素和功能僅供 GKE Enterprise 訂閱者使用。如要瞭解訂閱者和非訂閱者可使用的功能,請參閱「GKE Enterprise 和 Cloud Service Mesh UI 差異」。
如果您已啟用 GKE Enterprise API,但想將 Cloud Service Mesh 做為獨立服務使用,請停用 GKE Enterprise API。
Google Cloud 以外
如要在地端部署、AWS 上的 GKE、Amazon EKS 或 Microsoft AKS 安裝 Cloud Service Mesh,您必須是 GKE Enterprise 客戶。GKE Enterprise 定價已涵蓋 Cloud Service Mesh 的費用,因此 GKE Enterprise 客戶無須另外支付費用。詳情請參閱 GKE Enterprise 定價指南。
一般規定
如要納入服務網格,服務通訊埠必須命名,且名稱必須包含通訊埠的通訊協定,語法如下:
name: protocol[-suffix]方括號表示選用後置字元,且必須以破折號開頭。詳情請參閱「命名服務通訊埠」。如果您已在機構中建立服務邊界,可能需要將 Cloud Service Mesh 憑證授權單位服務新增至該邊界。詳情請參閱「將 Cloud Service Mesh 憑證授權單位新增至服務邊界」。
如要變更
istio-proxy邊車容器的預設資源限制,新值必須大於預設值,才能避免發生記憶體不足 (OOM) 事件。Google Cloud 專案只能有一個關聯的網格。
叢集需求
GKE
確認叢集版本是否列於「支援的平台」中。
GKE 叢集必須符合下列規定:
GKE 叢集必須是標準叢集。Autopilot 叢集僅支援代管 Cloud Service Mesh。
至少有 4 個 vCPU 的機型,例如
e2-standard-4。如果叢集的機型沒有至少 4 個 vCPU,請按照「將工作負載遷移至其他機型」一文的說明變更機型。節點數量下限取決於機型。Cloud Service Mesh 至少需要 8 個 vCPU。如果機型有 4 個 vCPU,叢集必須至少有 2 個節點。如果機型有 8 個 vCPU,叢集只需要 1 個節點。如要新增節點,請參閱調整叢集大小。
必須提供 GKE Workload Identity。建議您先啟用 Workload Identity,再安裝 Cloud Service Mesh。啟用 Workload Identity 後,工作負載對 Google API 的呼叫安全機制會有所變更,詳情請參閱「Workload Identity 限制」。請注意,您不需要在現有節點集區上啟用 GKE 中繼資料伺服器。
建議您在發布管道中註冊叢集 (選用)。 建議您加入「定期發布」管道,因為其他管道可能採用 Cloud Service Mesh 1.29.5不支援的 GKE 版本。詳情請參閱「支援的平台」。如果使用靜態 GKE 版本,請按照「在發布管道中註冊現有叢集」一文中的操作說明進行。
如果您要在私人叢集上安裝 Cloud Service Mesh,必須在防火牆中開啟通訊埠 15017,才能取得用於自動插入 Sidecar 和設定驗證的 Webhook。詳情請參閱「在私人叢集中開啟通訊埠」。
確認您用來安裝 Cloud Service Mesh 的用戶端電腦已連線至 API 伺服器。
Cloud Service Mesh 不支援 Windows Server 工作負載。如果叢集同時有 Linux 和 Windows Server 節點集區,您仍可安裝 Cloud Service Mesh,並用於 Linux 工作負載。
外部 Google Cloud
請確認您要在其中安裝 Cloud Service Mesh 的使用者叢集,至少有 4 個 vCPU、15 GB 記憶體和 4 個節點。
確認叢集版本是否列於「支援的平台」中。
確認您用來安裝 Cloud Service Mesh 的用戶端電腦已連線至 API 伺服器。
如果您在應用程式 Pod 中部署 Sidecar,但無法直接連線至 CA 服務 (例如
meshca.googleapis.com和privateca.googleapis.com),則必須設定以CONNECT為基礎的明確 HTTPS Proxy。如果公開叢集已設定輸出防火牆規則,且這些規則會封鎖隱含規則,請務必設定 HTTP/HTTPS 和 DNS 規則,以便存取 Google API。
車隊需求
使用 Cloud Service Mesh 1.11 以上版本時,所有叢集都必須註冊至機群,且必須啟用機群 Workload Identity。您可以自行設定叢集,也可以讓 asmcli 註冊叢集,只要叢集符合下列條件即可:
GKE:(適用於叢集內和代管的 Cloud Service Mesh) 在 Google Kubernetes Engine 叢集上啟用 GKE Workload Identity (如果尚未啟用)。此外,您「必須」使用機群 Workload Identity 註冊叢集。
外部 GKE 叢集 Google Cloud: (適用於叢集內 Cloud Service Mesh) Google Distributed Cloud、 Google Distributed Cloud、 GKE on AWS 和 GKE on Azure 會在建立叢集時自動註冊至專案機群。從 GKE Enterprise 1.8 開始,註冊時,所有這些叢集類型都會自動啟用機群 Workload Identity。註冊的現有叢集升級至 GKE Enterprise 1.8 時,會更新為使用機群 Workload Identity。
Amazon EKS 叢集:(適用於叢集內 Cloud Service Mesh) 叢集必須具備公開的 IAM OIDC 身分識別提供者。按照「為叢集建立 IAM OIDC 供應商」一文中的說明,檢查供應商是否存在,並視需要建立供應商。
執行 asmcli install 時,請指定機群主專案的專案 ID。如果叢集尚未註冊,asmcli 會註冊叢集。