asmcli 參考資料

<0x0

總覽

asmcli 是 Google 提供的工具,可用於安裝或升級 Cloud Service Mesh。獲得您的授權後,asmcli 就能為專案和叢集進行下列設定:

  • 授予您Google Cloud 專案的必要 Identity and Access Management (IAM) 權限。
  • 在專案中啟用必要的 Google API。 Google Cloud
  • 為叢集加上標籤來識別網格。
  • 建立服務帳戶,讓 Sidecar Proxy 等資料層元件能安全存取專案的資料與資源。
  • 向機群註冊叢集 (如尚未註冊)。

執行 asmcli 時加入 --enable_all 標記,即可讓工具設定專案和叢集。如要進一步瞭解 asmcli 選項和標記,請參閱 asmcli 參考資料。

接著,asmcli 會使用專案和叢集資訊設定 YAML 檔案。安裝 Cloud Service Mesh 控制層時,需要這些設定檔。

如果您是 Cloud Service Mesh 和 Istio 的新手,請直接前往「支援的平台」一節。下一節旨在協助現有 Cloud Service Mesh 升級至 1.30。

正在轉換至「asmcli」

asmcli 會取代 istioctl install 和 install_asm。雖然您仍可在 Cloud Service Mesh 1.11 中使用舊版工具,但我們將淘汰這些工具,且 Cloud Service Mesh 1.12 以上版本將不再支援這些工具。請更新指令碼和工具,改用 asmcli。

所有叢集都必須註冊至機群。詳情請參閱「車隊規定」。

從 install_asm 轉移

如果您熟悉 install_asm,asmcli 類似於,但有下列顯著差異:

  • 您可以使用 asmcli install 進行新安裝和升級。 不像 install_asm,沒有 --mode 選項。執行 asmcli install 時,系統會檢查叢集上是否有現有的控制層。如果沒有現有的控制層,asmcli 會安裝 Cloud Service Mesh。如果叢集已有控制層 (Cloud Service Mesh 控制層或開放原始碼 Istio 控制層):

  • 大部分的 asmcli 選項和標記行為都與 install_asm 的相同。

從 istioctl install 轉移

如果您熟悉 istioctl install,且通常會透過 -f 指令列引數傳遞 IstioOperator YAML 檔案來設定控制層,則可以使用 --custom_overlay 選項將檔案傳遞至 asmcli。在 Cloud Service Mesh 說明文件中,這些檔案稱為「疊加檔案」。

支援的平台

您可以使用 asmcli,設定或升級「支援的平台」清單中的 Cloud Service Mesh 安裝項目。

不過,部分功能僅適用於 Google Cloud以外的平台。詳情請參閱「叢集內控制層支援的功能」。

asmcli 參考資料

本節說明 asmcli 的可用引數。

選項

找出叢集 您可以透過下列選項找出叢集:

僅限 GKE

-p|--project_id CLUSTER_PROJECT_ID
叢集建立所在的專案 ID。
-n|--cluster_name CLUSTER_NAME
叢集名稱。
-l|--cluster_location CLUSTER_LOCATION
叢集建立所在的可用區 (單一可用區叢集) 或區域 (區域叢集)。

所有平台

--kubeconfig KUBECONFIG_FILE kubeconfig 檔案的完整路徑。環境變數 $PWD 在這裡無法運作。

--ctx|--context KUBE_CONTEXT 要使用的 kubeconfig 內容。如未指定,asmcli 會使用預設環境。

-c|--ca {mesh_ca|gcp_cas|citadel}

用於管理雙向 TLS 憑證的憑證授權單位 (CA)。指定mesh_ca使用 Cloud Service Mesh 憑證授權單位 (Cloud Service Mesh 憑證授權單位)、gcp_cas使用憑證授權單位服務,或citadel使用 Istio CA。代管 Cloud Service Mesh 不支援 Istio CA。詳情請參閱下列文章:

--channel CLOUD_SERVICE_MESH_CHANNEL

使用 --channel 和特定 Cloud Service Mesh 發布管道,佈建與該發布管道相關聯的控制層修訂版本。例如 --channel rapid、--channel regular 和 --channel stable。在 GKE Autopilot 叢集上設定特定 Cloud Service Mesh 功能時,必須使用這個旗標。

如 CSM 版本資訊所述,受管理 Cloud Service Mesh 不再支援 --channel 選項。發布管道取決於 GKE 叢集發布管道。 詳情請參閱「代管 Cloud Service Mesh 發布管道」。

--co|--custom_overlay OVERLAY_FILE
使用 --custom_overly 和 YAML 檔案的名稱 (稱為疊加檔案),其中包含 IstioOperator 自訂資源,可設定叢內控制層。指定疊加檔案,以啟用預設未啟用的功能。代管 Cloud Service Mesh 不支援 IstioOperator API,因此您無法使用 --custom_overlay 設定代管控制層。asmcli 必須能夠找到疊加檔案,因此該檔案必須與 asmcli 位於同一目錄,或是您可以指定相對路徑。如要新增多個檔案,請指定 --co|--custom_overlay 和檔案名稱,例如: --co overlay_file1.yaml --co overlay_file2.yaml --co overlay_file3.yaml
--hub-registration-extra-flags HUB_REGISTRATION_EXTRA_FLAGS
如果使用附加的 Amazon EKS 叢集,請使用 --hub-registration-extra-flags 將叢集註冊至機群 (如尚未註冊)。
-k|--key_file FILE_PATH
服務帳戶的金鑰檔案。如果未使用服務帳戶,請省略這個選項。
--network_id NETWORK_ID
使用 --network_id 設定套用至 istio-system 命名空間的 topology.istio.io/network 標籤。如果是 GKE,--network_id 預設為叢集的網路名稱。其他環境則會使用 default。
-o|--option OVERLAY_FILE

疊加層檔案的名稱 (不含 .yaml 副檔名),asmcli 會從 anthos-service-mesh 存放區下載此檔案,以啟用選用功能。必須連上網路才能使用「--option」,--option 和 --custom_overlay 選項類似,但行為略有不同:

  • 如要變更疊加層檔案中的設定,請使用 --custom_overlay。

  • 使用 --option 啟用不需要變更疊加層檔案的功能,例如設定服務的稽核政策。

如要新增多個檔案,請指定 -o|--option 和檔案名稱,例如:-o option_file1 -o option_file2 -o option_file3

-D|--output_dir DIR_PATH

如未指定,asmcli 會建立臨時目錄,下載安裝 Cloud Service Mesh 時所需的檔案和設定。指定 --output-dir 旗標,改為指定要使用的目錄相對路徑。完成後,指定目錄會包含 asm 和 istio-1.30.4-asm.14 子目錄。asm 目錄包含安裝設定。istio-1.30.4-asm.14 目錄包含安裝檔案的解壓縮內容,內含 istioctl、範例和資訊清單。如果指定 --output-dir,且目錄已包含必要檔案,asmcli 會使用這些檔案,而不會再次下載。

--platform PLATFORM {gcp|multicloud}

Kubernetes 叢集的平台或供應商。預設值為 gcp (適用於 GKE 叢集)。如要使用其他平台,請multicloud。

-r|--revision_name REVISION NAME

修訂版本標籤是控制層上設定的鍵/值組合。修訂版本標籤鍵一律為 istio.io/rev。根據預設,asmcli 會根據 Cloud Service Mesh 版本設定修訂版本標籤的值,例如:asm-1297-18。如要覆寫預設值並指定自己的值,請加入這個選項。REVISION NAME 引數必須是 DNS-1035 標籤。也就是說,名稱必須:

  • 不得超過 63 個半形字元
  • 只能包含小寫英數字元或「-」
  • 開頭須為英文字母
  • 結尾須為英數字元

用於驗證的規則運算式為:'[a-z]([-a-z0-9]*[a-z0-9])?'

-s|--service_account ACCOUNT
用於安裝 Cloud Service Mesh 的服務帳戶名稱。如未指定,系統會使用目前 gcloud 設定中的有效使用者帳戶。如要變更目前登入的使用者帳戶,請執行 gcloud auth login。

Istio CA 自訂憑證的選項

如果您指定 --ca citadel 並使用自訂 CA,請加入下列選項:

  • --ca_cert FILE_PATH:中繼憑證
  • --ca_key FILE_PATH:中繼憑證的金鑰
  • --root_cert FILE_PATH:根憑證
  • --cert_chain FILE_PATH:憑證鏈結

詳情請參閱「插入現有 CA 憑證」。

啟用旗標

以 --enable 開頭的旗標可讓 asmcli 啟用必要的 Google API、設定必要的 Identity and Access Management (IAM) 權限,以及更新叢集。您也可以先自行更新專案和叢集,再執行 asmcli。所有啟用旗標都與 asmcli validate 不相容。如果您在執行 asmcli validate 時指定啟用旗標,指令會終止並顯示錯誤。

-e|--enable_all
允許 asmcli 執行下列所有個別啟用動作。
--enable_cluster_roles
允許 asmcli 嘗試將執行 asmcli 的 Google Cloud 使用者或服務帳戶 繫結至叢集中的 cluster-admin角色。asmcli 會根據 gcloud config get core/account 指令判斷使用者帳戶。如果您在本機使用使用者帳戶執行 asmcli,請務必先呼叫 gcloud auth login 指令,再執行 asmcli。如要變更使用者帳戶,請執行 gcloud config set core/account GCP_EMAIL_ADDRESS 命令,其中 GCP_EMAIL_ADDRESS 是您用來登入 Google Cloud的帳戶。
--enable_cluster_labels
允許 asmcli 設定必要的叢集標籤。
--enable_gcp_components

允許 asmcli 啟用下列必要 Google Cloud 受管理服務和元件:

--enable_gcp_apis

允許 asmcli 啟用所有必要的 Google API。

--enable_gcp_iam_roles

允許 asmcli 設定必要的 IAM 權限。

--enable_meshconfig_init

允許指令碼代您初始化 meshconfig 端點。--enable_gcp_components 和 --managed 隱含。

--enable_namespace_creation

允許 asmcli 建立根 istio-system 命名空間。

--enable_registration

允許 asmcli 向叢集所在的專案註冊叢集。如果未提供這個標記,請按照「註冊叢集」一文中的步驟手動註冊叢集。請注意,與其他啟用旗標不同,只有在指定需要叢集註冊的選項 (例如 --option hub-meshca) 時,--enable_registration 才會包含在 --enable_all 中。否則,您必須另外指定這個旗標。

其他旗標

--dry_run
列印指令,但不要執行。
--fleet_id
使用機群的主機專案 ID,向機群註冊叢集。這個旗標是Google Cloud 叢集的必要旗標。如未提供Google Cloud 叢集,則預設為叢集的專案 ID。您可以在安裝前執行 asmcli install 和 --fleet_id,也可以傳遞 --enable-registration 和 --fleet-id 旗標,在安裝期間執行。設定完成後即無法變更。
--managed
已淘汰。佈建遠端代管控制層,而非在叢集中安裝控制層。
--offline
使用輸出目錄中預先下載的套件,執行離線安裝。如果未指定目錄或目錄不含必要檔案,指令碼會因錯誤而結束。
--only_enable
執行指定步驟,設定目前的使用者/叢集,但不安裝任何項目。
--only_validate
執行驗證,但不更新專案或叢集,也不安裝 Cloud Service Mesh。這個標記與啟用標記不相容。如果您使用任何啟用旗標指定 --only_validate,asmcli 會因錯誤而終止。
--print_config
列印所有編譯的 YAML 至標準輸出 (stdout),而非安裝 Cloud Service Mesh。所有其他輸出內容都會寫入標準錯誤 (stderr),即使通常會寫入 stdout 也是如此。指定此旗標時,asmcli 會略過所有驗證和設定。
--disable_canonical_service
已淘汰。系統一律會佈建代管的 Canonical 服務控制器。
-h|--help
顯示說明訊息,說明選項和標記,然後結束。
--use_managed_cni
使用受管理 CNI。如果未傳遞這個旗標,asmcli 會套用靜態 CNI 資訊清單。
--use_vpcsc
如果貴機構對專案強制執行 VPC Service Controls,您必須使用 --use_vpcsc 旗標設定受管理 Cloud Service Mesh。否則安裝作業會因安全控管措施而失敗。
-v|--verbose
執行時,asmcli會列印接下來要執行的指令。使用 --verbose 旗標時,asmcli 也會在執行後列印指令。
--version
列印 asmcli 版本並結束。如果沒有最新版本,請下載最新版 asmcli_1.30。