自行設定專案和叢集
使用 asmcli 安裝 Cloud Service Mesh 時,如果您加入 --enable_all 標記或更精細的啟用標記,系統就能為您設定專案和叢集。如果您想自行進行設定,而非由 asmcli 進行變更,請按照本頁的步驟操作。
如果您已安裝舊版 Cloud Service Mesh,請先使用 asmcli 升級至最新版 Cloud Service Mesh,再對專案或叢集進行任何變更。
根據預設,asmcli 不會安裝 istio-ingressgateway。建議您分別部署及管理控制層和閘道。Cloud Service Mesh 支援閘道部署的自動注入功能,可簡化 Cloud Service Mesh 升級作業。升級 Cloud Service Mesh 後,您可以像重新啟動服務一樣重新啟動閘道,以便採用新的控制平面設定。詳情請參閱「安裝及升級閘道」。
事前準備
- 查看前置條件和必要條件 ( Google Cloud 以外,GKE)
- 規劃安裝作業 ( Google Cloud 以外,GKE) 或升級
- 安裝必要工具 (outside Google Cloud、GKE)
設定專案
- 取得叢集建立所在專案的專案 ID。 - gcloud- 執行下列指令: - gcloud projects list- 控制台- 前往Google Cloud 控制台的「資訊主頁」頁面。 
- 按一下頁面頂端的下拉式清單。在隨即顯示的「Select from」(可用的選項) 視窗中,選取所需專案。 - 專案 ID 會顯示在專案資訊主頁的「Project info」資訊卡中。 
 
- 使用專案 ID 為工作負載資源池建立環境變數: - export WORKLOAD_POOL=PROJECT_ID.
- 設定所需的 Identity and Access Management (IAM) 角色。如果您是專案擁有者,則具備完成安裝程序所需的所有權限。如果您不是專案擁有者,就需要由擁有者授予下列特定 IAM 角色。在下列指令中,將 - PROJECT_ID替換為上一個步驟中的專案 ID,並將- GCP_EMAIL_ADDRESS替換為您用來登入 Google Cloud的帳戶。- ROLES=( 'roles/servicemanagement.admin' \ 'roles/serviceusage.serviceUsageAdmin' \ 'roles/meshconfig.admin' \ 'roles/compute.admin' \ 'roles/container.admin' \ 'roles/resourcemanager.projectIamAdmin' \ 'roles/iam.serviceAccountAdmin' \ 'roles/iam.serviceAccountKeyAdmin' \ 'roles/gkehub.admin') for role in "${ROLES[@]}" do gcloud projects add-iam-policy-binding PROJECT_ID \ --member "user:GCP_EMAIL_ADDRESS" \ --role="$role" done- 如果您在執行 - asmcli時加入- --enable_all或- --enable_gcp_iam_roles旗標,系統會為您設定必要的 IAM 角色。
- 啟用必要的 Google API: - gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.com- 除了 - mesh.googleapis.com之外,這個指令還會啟用下列 API:- API - 目的 - 可停用 - meshconfig.googleapis.com- Cloud Service Mesh 會使用 Mesh Configuration API,將設定資料從網格轉送至 Google Cloud。此外,啟用 Mesh Configuration API 後,您就能在 Google Cloud 控制台中存取 Cloud Service Mesh 頁面,並使用 Cloud Service Mesh 憑證授權單位。 - 否 - meshca.googleapis.com- 與代管 Cloud Service Mesh 使用的 Cloud Service Mesh 憑證授權單位相關。 - 否 - container.googleapis.com- 建立 Google Kubernetes Engine (GKE) 叢集時必須使用。 - 否 - gkehub.googleapis.com- 必須將網格管理為機群。 - 否 - monitoring.googleapis.com- 必須取得這項存取權,才能擷取網格工作負載的遙測資料。 - 否 - stackdriver.googleapis.com- 必須提供這項權限,才能使用服務 UI。 - 否 - opsconfigmonitoring.googleapis.com- 必須使用服務 UI 才能管理離線Google Cloud 叢集。 - 否 - connectgateway.googleapis.com- 這是必要的,因為這樣才能讓代管 Cloud Service Mesh 控制層存取網格工作負載。 - 是* - trafficdirector.googleapis.com- 啟用高可用性且可擴充的受管理控制層。 - 是* - networkservices.googleapis.com- 啟用高可用性且可擴充的受管理控制層。 - 是* - networksecurity.googleapis.com- 啟用高可用性且可擴充的受管理控制層。 - 是* - 啟用 API 可能需要一分鐘以上的時間才能完成。啟用 API 後,您會看到類似以下的輸出內容: - Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished successfully. - 如果您在執行 - asmcli時加入- --enable_all或- --enable_apis旗標,系統會為您啟用必要的 API。
設定叢集
如果您加入 --enable_all 標記或其他更精細的啟用標記,asmcli 就會為您設定叢集。
- 初始化專案,讓專案準備好進行安裝。除了其他功能外,這項指令還會建立服務帳戶,讓資料層元件 (例如附屬 Proxy) 安全存取專案的資料和資源。在下列指令中,將 - FLEET_PROJECT_ID替換為車隊主機專案:- curl --request POST \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "Content-Type: application/json" \ --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.","PROJECT_ID."]}' \ "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"- 指令會以空白的捲號回應: - {}
- 針對 Google Cloud 叢集上的 GKE,請設定 Google Cloud CLI 的預設區域或地區。如果您未在此處設定預設值,請務必在本頁的 - gcloud container clusters指令中指定- --zone或- --region選項。- 如果您有單一區域叢集,請設定預設區域: - gcloud config set compute/zone CLUSTER_LOCATION
- 如果您有地區叢集,請設定預設地區: - gcloud config set compute/region CLUSTER_LOCATION
 
- 如要為 Google Cloud 叢集上的 GKE 啟用 Workload Identity: - gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}- 啟用 Workload Identity 最多可能需要 10 到 15 分鐘。 
- 如要啟用 Google Cloud 叢集中的 GKE,請啟用 GKE 上的 Cloud Monitoring 和 Cloud Logging: - gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
您的專案和叢集現在已可使用 asmcli 進行新安裝作業。