為 Kubernetes 工作負載安裝 Cloud Service Mesh (關閉) Google Cloud
<0x0本頁說明如何為 Kubernetes 工作負載安裝非受管理叢內 Cloud Service Mesh ( Google Cloud):
- 執行
asmcli重新安裝 Cloud Service Mesh 1.30.4-asm.14。 - 視需要部署 Ingress 閘道。
- 部署或重新部署工作負載,插入補充 Proxy。
如需準備離線安裝 Cloud Service Mesh 的操作說明,請參閱「準備離線安裝 Cloud Service Mesh」。執行 asmcli install 時,您需要指定 --offline 和 --output_dir 選項。
限制
請注意下列限制:
如要使用 Cloud Service Mesh,一個網格的所有 Cloud Service Mesh 叢集都必須隨時註冊至同一個機群。Cloud Service Mesh 叢集專案中的其他叢集,不得註冊至其他機群。
asmcli工具必須有權存取 Google Kubernetes Engine (GKE) 端點。您可以透過「跳躍」伺服器 (例如虛擬私有雲 (VPC) 內的 Compute Engine VM,提供特定存取權) 設定存取權。
事前準備
開始前,請確認下列事項:
在叢集內安裝 Cloud Service Mesh 時所需的角色
下表說明在叢集內安裝 Cloud Service Mesh 時所需的角色。
| 角色名稱 | 角色 ID | 授予位置資訊存取權 | 說明 |
|---|---|---|---|
| GKE Hub 管理員 | roles/gkehub.admin | 機群專案 | 具備 GKE Hub 和相關資源的完整存取權限。 |
| Kubernetes Engine 管理員 | roles/container.admin | 叢集專案。請注意,如要進行跨專案繫結,必須在機群和叢集專案中授予這個角色。 | 提供容器叢集和相關 Kubernetes API 物件的完整管理權。 |
| 網格設定管理員 | roles/meshconfig.admin | 機群和叢集專案 | 提供初始化 Cloud Service Mesh 代管元件所需的權限,例如代管控制層和後端權限,可讓工作負載與 Stackdriver 通訊,不必個別授權 (適用於代管和叢集內控制層)。 |
| 專案 IAM 管理員 | roles/resourcemanager.projectIamAdmin | 叢集專案 | 提供管理專案 IAM 政策的權限。 |
| 服務帳戶管理員 | roles/iam.serviceAccountAdmin | 機群專案 | 以服務帳戶的身分進行驗證。 |
| 服務管理員 | roles/servicemanagement.admin | 機群專案 | 具備所有 Google Service Management 資源的完整控制權限。 |
| 服務使用情形管理員 | roles/serviceusage.serviceUsageAdmin | 機群專案 | 可啟用、停用及檢查服務狀態、檢查作業,以及消耗消費者專案的配額和帳單。(附註 1) |
| CA 服務管理員 Beta 版 | roles/privateca.admin | 機群專案 | 具備所有 CA 服務資源的完整存取權限。 (Note 2) |
注意:
- 服務使用情形管理員 - 這是啟用
mesh.googleapis.comAPI 的必要角色,也是初始佈建受管理 Cloud Service Mesh 的先決條件。 - CA 服務管理員 - 只有在整合 CA 服務時,才需要這個角色。
安裝 Cloud Service Mesh
以下說明如何安裝 Cloud Service Mesh:
執行
asmcli install,在單一叢集上安裝叢內控制層。如需指令列範例,請參閱以下各節。範例包含必要引數和選用引數,您可能會覺得很有用。建議您一律指定output_dir引數,以便找到範例閘道和istioctl等工具。如需範例清單,請參閱右側的導覽列。(選用) 安裝 Ingress 閘道。根據預設,
asmcli不會安裝istio-ingressgateway。建議您分別部署及管理控制層和閘道。如要使用叢集內控制層安裝預設istio-ingressgateway,請加入--option legacy-default-ingressgateway引數。如要完成 Cloud Service Mesh 設定,您需要啟用自動加入邊車容器功能,並部署或重新部署工作負載。
如要在多個叢集上安裝 Cloud Service Mesh,請在每個叢集上執行
asmcli install。執行asmcli install時,請務必為每個叢集使用相同的FLEET_PROJECT_ID。安裝 Cloud Service Mesh 後,請參閱相關操作說明,設定多叢集網格 Google Cloud。如果叢集位於不同網路上 (如島嶼模式),則應使用
--network_id旗標,將專屬網路名稱傳遞至asmcli。
安裝預設功能和 Mesh CA
本節說明如何執行 asmcli,為平台安裝 Cloud Service Mesh,並啟用 Cloud Service Mesh 憑證授權單位做為憑證授權單位。安裝時會使用平台支援的預設功能。
地端部署
在 Google Distributed Cloud (僅限軟體) for VMware 或 Google Distributed Cloud (僅限軟體) for 裸機 上執行下列指令,安裝具有預設功能和 Cloud Service Mesh 憑證授權單位的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--ca mesh_ca使用 Cloud Service Mesh 憑證授權單位做為憑證授權單位。asmcli設定 Cloud Service Mesh 憑證授權單位,以使用機群 Workload Identity
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控功能」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示 SLO、錯誤記錄或 CPU 和記憶體指標。
AWS
在 GKE on AWS 上執行下列指令,安裝預設功能和 Cloud Service Mesh 憑證授權單位的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--ca mesh_ca使用 Cloud Service Mesh 憑證授權單位做為憑證授權單位。asmcli設定 Cloud Service Mesh 憑證授權單位,以使用機群 Workload Identity。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控功能」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示 SLO、錯誤記錄或 CPU 和記憶體指標。
Azure
在 Azure 上的 GKE 執行下列指令,安裝具有預設功能和 Cloud Service Mesh 憑證授權單位的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--ca mesh_ca使用 Cloud Service Mesh 憑證授權單位做為憑證授權單位。asmcli設定 Cloud Service Mesh 憑證授權單位,以使用機群 Workload Identity。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控功能」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示 SLO、錯誤記錄或 CPU 和記憶體指標。
Amazon EKS
在 Amazon EKS 上執行下列指令,安裝具有預設功能和 Cloud Service Mesh 憑證授權單位的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_ca--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--option attached-cluster將預設簽署公用程式變更為 istiod。--network_id如果要設定多重網路網狀架構,請為網狀架構中的每個叢集設定專屬值。--network_id--ca mesh_ca使用 Cloud Service Mesh 憑證授權單位做為憑證授權單位。asmcli設定 Cloud Service Mesh 憑證授權單位,以使用機群 Workload Identity。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控功能」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示 SLO、錯誤記錄或 CPU 和記憶體指標。
Microsoft AKS
在 Microsoft AKS 上執行下列指令,安裝具有預設功能和 Cloud Service Mesh 憑證授證機構的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --network_id default \ --ca mesh_caHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer允許向 GKE 機群註冊。--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--option attached-cluster將預設簽署公用程式變更為 istiod。--network_id如果要設定多重網路網狀架構,請為網狀架構中的每個叢集設定專屬值。--network_id--ca mesh_ca使用 Cloud Service Mesh 憑證授權單位做為憑證授權單位。asmcli設定 Cloud Service Mesh 憑證授權單位,以使用機群 Workload Identity。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控功能」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示 SLO、錯誤記錄或 CPU 和記憶體指標。
安裝預設功能和憑證授權單位 (CA) 服務
本節說明如何執行 asmcli,為平台安裝 Cloud Service Mesh,並啟用 CA 服務做為憑證授權單位。安裝時會使用平台支援的預設功能。
除了 Cloud Service Mesh 憑證授權單位,您也可以設定 Cloud Service Mesh 使用憑證授權單位服務。本指南提供與 CA 服務整合的機會,建議用於下列用途:
- 您需要在不同叢集上,使用不同的憑證授權單位簽署工作負載憑證。
- 如需在 Cloud HSM 中備份簽署金鑰。
- 如果您所處的產業受到嚴格監管,且必須遵守法規。
- 如要將 Cloud Service Mesh CA 鏈結至自訂企業根憑證,以簽署工作負載憑證。
Cloud Service Mesh 憑證授權單位的費用已包含在 Cloud Service Mesh 定價中。CA 服務不包含在 Cloud Service Mesh 基本價格中,而是另外計費。此外,CA 服務提供明確的服務水準協議,但 Cloud Service Mesh 憑證授權單位則無。
設定 CA 服務
- 在
DevOps層級中建立 CA 集區,並與其服務的叢集位於相同區域,以免發生延遲過長的問題,或潛在的跨區域服務中斷。詳情請參閱「工作負載最佳化層級」。 - 建立 CA,確保 CA 集區中至少有一個有效的憑證授權單位,且該集區與 GKE 叢集位於同一個專案。使用下層 CA 簽署 Cloud Service Mesh 工作負載憑證。記下從屬 CA 對應的 CA 集區。
如果只打算為 Cloud Service Mesh 工作負載提供服務憑證,請為 CA 集區設定下列核發政策:
policy.yaml
baselineValues: keyUsage: baseKeyUsage: digitalSignature: true keyEncipherment: true extendedKeyUsage: serverAuth: true clientAuth: true caOptions: isCa: false identityConstraints: allowSubjectPassthrough: false allowSubjectAltNamesPassthrough: true celExpression: expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )如要更新 CA 集區的簽發政策,請使用下列指令:
gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
如要瞭解如何設定集區政策,請參閱「使用憑證核發政策」。
如果您使用憑證範本,請立即設定。如要瞭解詳情,請參閱工作負載身分憑證的 CA 服務指南。請確認憑證範本與 CA 集區位於相同區域。如果 CA 集區有多個區域,請為每個區域建立憑證範本。
設定 Cloud Service Mesh 使用 CA 服務
在 Google Distributed Cloud (僅限軟體) for VMware 或 Google Distributed Cloud (僅限軟體) for 裸機 上執行下列指令,安裝具有預設功能和 憑證授權單位服務 的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --kubeconfig KUBECONFIG_FILE \ --fleet_id FLEET_PROJECT_ID \ --output_dir DIR_PATH \ --enable_all \ --ca gcp_cas \ --platform multicloud \ --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--ca gcp_cas使用憑證授權單位服務做為憑證授權單位。在升級期間變更憑證授權單位會導致停機。asmcli會設定憑證授權單位服務,以使用機群 Workload Identity。--ca_pool憑證授權單位服務 CA 集區的完整 ID。如果使用憑證範本,請附加以:分隔的範本 ID。例如:--ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控功能」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示 SLO、錯誤記錄或 CPU 和記憶體指標。
使用 Istio CA 安裝預設功能
本節將說明如何:
- 為 Istio CA 產生憑證和金鑰,供 Cloud Service Mesh 用來簽署工作負載。
- 執行
asmcli安裝 Cloud Service Mesh,並啟用 Istio CA。
根據預設,使用 Istio CA 安裝 Cloud Service Mesh 的環境會向 Prometheus 回報指標。如要使用 Cloud Service Mesh 資訊主頁,請啟用 Stackdriver。詳情請參閱「安裝選用功能」。
為確保安全性,我們強烈建議您維護離線根憑證授權單位,並使用下層憑證授權單位為每個叢集核發憑證。詳情請參閱「插入 CA 憑證」。在此設定中,服務網格中的所有工作負載都使用相同的根憑證授權單位 (CA)。每個 Cloud Service Mesh CA 都會使用中繼 CA 簽署金鑰和憑證,並由根 CA 簽署。如果網格內有多個 CA,這會建立 CA 之間的信任階層。您可以重複這些步驟,為任意數量的憑證授權單位佈建憑證和金鑰。
產生憑證的 Makefile 位於 asmcli validate 指令中指定的 --output_dir 目錄的 istio-1.30.4-asm.14 子目錄中。如果您未執行 asmcli validate,或沒有在本機下載目錄,可以下載 Cloud Service Mesh 安裝檔案並解壓縮內容,取得 Makefile。
切換至
istio-1.30.4-asm.14目錄。為憑證和金鑰建立目錄:
mkdir -p certs && \ pushd certs
產生根憑證和金鑰:
make -f ../tools/certs/Makefile.selfsigned.mk root-ca
這會產生下列檔案:
- root-cert.pem:根憑證
- root-key.pem:根金鑰
- root-ca.conf:openssl 的設定,用於產生根憑證
- root-cert.csr:根憑證的 CSR
產生中繼憑證和金鑰:
make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts
這會在名為
cluster1的目錄中產生下列檔案:- ca-cert.pem:中繼憑證
- ca-key.pem:中繼金鑰
- cert-chain.pem:
istiod使用的憑證鏈結 - root-cert.pem:根憑證
如果您是在離線電腦上執行這些步驟,請將產生的目錄複製到可存取叢集的電腦。
返回上一個目錄:
popd
執行
asmcli,使用 Istio CA 安裝網格:地端部署
在 Google Distributed Cloud (僅限軟體) for VMware 或 Google Distributed Cloud (僅限軟體) for 裸機 上執行下列指令,安裝具備預設功能和 Istio CA 的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證--ca_key中繼憑證的金鑰--root_cert根憑證--cert_chain憑證鏈結
AWS
在 AWS 上的 GKE 執行下列指令,安裝具有預設功能和 Istio CA 的控制平面。在提供的預留位置中輸入值。您可以選擇為公開子網路或私有子網路啟用 Ingress。
公開
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。
私人
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME將下列 YAML 儲存至名為
istio-operator-internal-lb.yaml的檔案:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。--custom_overlay建立的疊加檔案名稱。如要進一步瞭解疊加檔案,請參閱「在叢集內控制層上啟用選用功能」一文。
Azure
在 Azure 上的 GKE 執行下列指令,安裝具有預設功能和 Istio CA 的控制層。在提供的預留位置中輸入值。您可以選擇為公開子網路或私有子網路啟用 Ingress。
公開
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。
私人
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME將下列 YAML 儲存至名為
istio-operator-internal-lb.yaml的檔案:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH \ --custom_overlay istio-operator-internal-lb.yaml--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。--custom_overlay建立的疊加檔案名稱。如要進一步瞭解疊加檔案,請參閱「在叢集內控制層上啟用選用功能」一文。
Amazon EKS
在 Amazon EKS 上執行下列指令,安裝具有預設功能和 Istio CA 的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id default--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--option attached-cluster將預設簽署公用程式變更為 istiod。-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證--ca_key中繼憑證的金鑰--root_cert根憑證--cert_chain憑證鏈結--network_id如果要設定多重網路網狀架構,請為網狀架構中的每個叢集設定不重複的--network_id值。
Microsoft AKS
在 Microsoft AKS 上執行下列指令,安裝具有預設功能和 Istio CA 的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --option attached-cluster \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --network_id defaultHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer允許向 GKE 機群註冊。--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--option attached-cluster將預設簽署公用程式變更為 istiod。-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證--ca_key中繼憑證的金鑰--root_cert根憑證--cert_chain憑證鏈結--network_id如果要設定多重網路網狀架構,請為網狀架構中的每個叢集設定不重複的--network_id值。
安裝 Istio CA,並啟用 Google Cloud Observability
如要使用 Cloud Service Mesh 資訊主頁,請啟用 Stackdriver。
地端部署
在 Google Distributed Cloud (僅限軟體) for VMware 或 Google Distributed Cloud (僅限軟體) for 裸機 上執行下列指令,安裝控制層,並搭配 Stackdriver 和其他選用功能,以及 Istio CA。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證--ca_key中繼憑證的金鑰--root_cert根憑證--cert_chain憑證鏈結--option stackdriver啟用 Stackdriver 選項。請注意,您也可以使用--option prometheus-and-stackdriver同時啟用 Stackdriver 和 Prometheus。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控功能」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示 SLO、錯誤記錄或 CPU 和記憶體指標。
AWS
在 AWS 上的 GKE 執行下列指令,安裝控制平面,並使用 Stackdriver 和其他選用功能,以及 Istio CA。在提供的預留位置中輸入值。您可以選擇為公開子網路或私有子網路啟用 Ingress。
公開
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。--option stackdriver啟用 Stackdriver 選項。請注意,您也可以使用--option prometheus-and-stackdriver同時啟用 Stackdriver 和 Prometheus。
私人
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME將下列 YAML 儲存至名為
istio-operator-internal-lb.yaml的檔案:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。--custom_overlay建立的疊加層檔案名稱。如要進一步瞭解疊加檔案,請參閱「在叢集內控制層啟用選用功能」。--option stackdriver啟用 Stackdriver 選項。請注意,您也可以使用--option prometheus-and-stackdriver同時啟用 Stackdriver 和 Prometheus。或者,您也可以使用--custom_overlay stackdriver.yaml啟用 Stackdriver。您必須 下載 anthos-service-mesh-package,或從提供的資訊清單建立stackdriver.yaml。
Azure
在 Azure 上的 GKE 執行下列指令,安裝 Stackdriver 和其他選用功能,以及 Istio CA 的控制層。在提供的預留位置中輸入值。您可以選擇為公開子網路或私有子網路啟用 Ingress。
公開
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。--option stackdriver啟用 Stackdriver 選項。請注意,您也可以使用--option prometheus-and-stackdriver同時啟用 Stackdriver 和 Prometheus。
私人
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME將下列 YAML 儲存至名為
istio-operator-internal-lb.yaml的檔案:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - enabled: true k8s: serviceAnnotations: service.beta.kubernetes.io/aws-load-balancer-internal: "true" name: istio-ingressgateway執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH --custom_overlay istio-operator-internal-lb.yaml \ --option stackdriver--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證。--ca_key中繼憑證的金鑰。--root_cert根憑證。--cert_chain憑證鏈結。--custom_overlay建立的疊加層檔案名稱。如要進一步瞭解疊加檔案,請參閱「在叢集內控制層啟用選用功能」。--option stackdriver啟用 Stackdriver 選項。請注意,您也可以使用--option prometheus-and-stackdriver同時啟用 Stackdriver 和 Prometheus。或者,您也可以使用--custom_overlay stackdriver.yaml啟用 Stackdriver。您必須 下載 anthos-service-mesh-package,或從提供的資訊清單建立stackdriver.yaml。
Amazon EKS
在 Amazon EKS 上執行下列指令,安裝具有 Stackdriver 和其他選用功能,以及 Istio CA 的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-cluster--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證--ca_key中繼憑證的金鑰--root_cert根憑證--cert_chain憑證鏈結--option stackdriver啟用 Stackdriver 選項。請注意,您也可以使用--option prometheus-and-stackdriver同時啟用 Stackdriver 和 Prometheus。--option stackdriver將預設簽署公用程式變更為istiod。
Microsoft AKS
在 Microsoft AKS 上執行下列指令,安裝具有預設功能和 Istio CA 的控制層。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install:HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca citadel \ --ca_cert CA_CERT_FILE_PATH \ --ca_key CA_KEY_FILE_PATH \ --root_cert ROOT_CERT_FILE_PATH \ --cert_chain CERT_CHAIN_FILE_PATH \ --option stackdriver \ --option attached-clusterHUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer允許向 GKE 機群註冊。--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置也不會運作。--output_dir加入這個選項即可指定目錄,asmcli會將anthos-service-mesh套件下載至該目錄,並解壓縮安裝檔案,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
-ca citadel使用 Istio CA 做為憑證授權單位。--ca_cert中繼憑證--ca_key中繼憑證的金鑰--root_cert根憑證--cert_chain憑證鏈結--option stackdriver啟用 Stackdriver 選項。請注意,您也可以使用--option prometheus-and-stackdriver同時啟用 Stackdriver 和 Prometheus。--option stackdriver將預設簽署公用程式變更為istiod。
安裝選用功能
疊加檔案是 YAML 檔案,內含您傳遞至 asmcli 的 IstioOperator 自訂資源 (CR),用於設定控制層。您可以將 YAML 檔案傳遞至 asmcli,藉此覆寫預設控制層設定,並啟用選用功能。您可以疊加更多疊加層,每個疊加層檔案都會覆寫前幾層的設定。最佳做法是將重疊檔案儲存在版本管控系統中。
啟用選用功能的方法有兩種:--option 和 --custom_overlay。
如不需要變更疊加檔案,請使用 --option。這個方法asmcli會為您從 GitHub 存放區擷取檔案。
如需自訂疊加層檔案,請使用 --custom_overlay。
詳情請參閱「在叢集內控制層上啟用選用功能」。
在 Google Distributed Cloud (僅限軟體) for VMware、Google Distributed Cloud (僅限軟體) for 裸機、GKE on AWS、GKE on Azure、Amazon EKS 或 Microsoft AKS 上執行下列指令。在提供的預留位置中輸入值。
將目前環境設定為使用者叢集:
kubectl config use-context CLUSTER_NAME執行
asmcli install安裝控制層,並視需要加入功能。如要新增多個檔案,請指定--custom_overlay和檔案名稱,例如:--custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml./asmcli install \ --fleet_id FLEET_PROJECT_ID \ --kubeconfig KUBECONFIG_FILE \ --output_dir DIR_PATH \ --platform multicloud \ --enable_all \ --ca mesh_ca \ --custom_overlay OVERLAY_FILE--fleet_id機群主專案的專案 ID。--kubeconfigkubeconfig檔案的完整路徑。環境變數$PWD在這裡無法運作。此外,使用 `~` 的相對kubeconfig檔案位置將無法運作。--output_dir加入這個選項,即可指定asmcli下載anthos-service-mesh套件並解壓縮安裝檔案的目錄,其中包含istioctl、範例和資訊清單。否則asmcli會將檔案下載至tmp目錄。你可以指定相對路徑或完整路徑。環境變數$PWD在這裡無法運作。--platform multicloud指定平台不是 Google Cloud,例如地端部署或多雲端。-
--enable_all允許指令碼執行下列操作:- 授予必要的 IAM 權限。
- 啟用必要的 Google API。
- 為叢集加上標籤來識別網格。
- 將叢集註冊至機群 (如尚未註冊)。
--ca mesh_ca使用 Cloud Service Mesh 憑證授權單位做為憑證授權單位。請注意,asmcli會設定 Cloud Service Mesh 憑證授權單位,以使用機群 workload identity--custom_overlay指定疊加檔案的名稱。
安裝閘道
使用 Cloud Service Mesh 時,您可以選擇將閘道做為服務網格的一部分來部署及管理。閘道是指在網格邊緣運作的負載平衡器,負責接收傳入或傳出網格的 HTTP/TCP 連線。換句話說,閘道其實就是 Envoy Proxy,能讓您精細控管進出網格的流量。
如果尚未建立命名空間,請先為 Ingress 閘道建立一個。 閘道屬於使用者工作負載,建議不要部署於控制層命名空間。將
GATEWAY_NAMESPACE替換為命名空間名稱。kubectl create namespace GATEWAY_NAMESPACE預期輸出內容:
namespace/GATEWAY_NAMESPACE created為閘道啟用自動插入功能。所需步驟取決於您要在閘道命名空間使用預設插入標籤 (例如
istio-injection=enabled),還是修訂版本標籤。邊車容器加入器 Webhook 會使用預設的修訂版本標記和修訂版本標籤,將插入的 Proxy 與特定控制層修訂版本建立關聯。預設 (建議選項)
如果您使用預設標籤修訂版本在閘道上啟用自動插入功能,請確認預設標籤位於您在
--output_dir中指定的目錄,且指向新安裝的修訂版本。DIR_PATH/istioctl tag list將預設插入標籤套用至命名空間。
kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
修訂版本標籤
使用下列指令,找出
istiod的修訂版本標籤:kubectl get deploy -n istio-system -l app=istiod -o \ "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"這項指令會輸出與 Cloud Service Mesh 版本對應的修訂版本標籤,例如:
asm-1297-18將修訂版本標籤套用至命名空間。在下列指令中,
REVISION是您在上一步記下的istiod修訂版本標籤值。kubectl label namespace GATEWAY_NAMESPACE \ istio.io/rev=REVISION --overwrite預期輸出內容:
namespace/GATEWAY_NAMESPACE labeled
您可以忽略輸出內容中的
"istio.io/rev" not found訊息。這表示該命名空間先前並未設定istio.io/rev標籤,在初次安裝 Cloud Service Mesh 或剛開始部署時,看到這則訊息很正常。如果命名空間同時具有istio.io/rev和istio-injection標籤,自動插入作業就會失敗,因此 Cloud Service Mesh 文件中的所有kubectl label指令都會明確指定這兩個標籤。如果閘道命名空間未加上標籤,閘道嘗試提取
auto映像檔時,istio-ingressgatewayPod 會因ImagePullBackOff錯誤而失敗。這張圖片應由 Webhook 取代。從
anthos-service-mesh-packages存放區下載 Ingress 閘道的 .yaml 設定檔範例。直接套用範例 Ingress 閘道 .yaml 設定,或視需要修改。
kubectl apply -n GATEWAY_NAMESPACE \ -f CONFIG_PATH/istio-ingressgateway預期輸出內容:
deployment.apps/istio-ingressgateway created poddisruptionbudget.policy/istio-ingressgateway created horizontalpodautoscaler.autoscaling/istio-ingressgateway created role.rbac.authorization.k8s.io/istio-ingressgateway created rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created service/istio-ingressgateway created serviceaccount/istio-ingressgateway created
進一步瞭解閘道的最佳做法。
部署及重新部署工作負載
Cloud Service Mesh 採用 Sidecar Proxy 來強化網路的安全、穩定和可觀測性。使用 Cloud Service Mesh,就不必在應用程式的主要容器中實作上述功能,可以改由通用的獨立處理程序 Proxy 執行。這個 Proxy 會以獨立容器的形式,與應用程式部署在同一個 Pod 中。
您必須啟用自動 Sidecar Proxy 插入功能 (自動插入),並重新啟動在安裝 Cloud Service Mesh 前於叢集上執行的所有工作負載的 Pod,安裝作業才算完成。
如要啟用自動插入功能,請使用預設插入標籤為命名空間加上標籤 (如果已設定預設標籤),或使用您在安裝 Cloud Service Mesh 時,於 istiod 設定的修訂版本標籤。Sidecar 插入程式 Webhook 會使用預設修訂版本標記和修訂版本標籤,將插入的 Sidecar 與 istiod 修訂版本建立關聯。新增標籤後,必須重新啟動命名空間中的所有現有 Pod,才能注入 Sidecar。
在新命名空間中部署新工作負載前,請務必設定自動插入功能,Cloud Service Mesh 才能監控並保護流量。
啟用自動插入功能時,您可以使用預設插入標籤或修訂版本標籤,步驟如下:
預設 (建議選項)
如果您使用預設標籤修訂版本在閘道上啟用自動插入功能,請確認預設標籤位於您在
--output_dir中指定的目錄,且指向新安裝的修訂版本。DIR_PATH/istioctl tag list執行下列指令。
NAMESPACE是要啟用自動插入功能的命名空間名稱。kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
預設插入標籤會插入預設代碼指向的修訂版本。
修訂版本標籤
使用下列指令,找出
istiod的修訂版本標籤:kubectl -n istio-system get pods -l app=istiod --show-labels輸出看起來類似以下內容:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1297-18-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1297-18,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1297-18-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1297-18,istio=istiod,pod-template-hash=5788d57586
在輸出內容的「
LABELS」欄下方,記下「istiod」修訂版本標籤的值 (前置字串為「istio.io/rev=」)。在本範例中,值為asm-1297-18。套用修訂版本標籤並移除
istio-injection標籤 (如有)。在下列指令中,NAMESPACE是要啟用自動插入功能的命名空間名稱,REVISION是您在上一步記下的修訂版本標籤值。kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite您可以忽略輸出內容中的
"istio-injection not found"訊息。這表示該命名空間先前並未設定istio-injection標籤,在初次安裝 Cloud Service Mesh 或剛開始部署時,看到這則訊息很正常。由於命名空間同時具有istio-injection和修訂版本標籤時,自動插入行為未定義,因此 Cloud Service Mesh 文件中的所有kubectl label指令都會明確確保只設定一個標籤。
如果您在安裝 Cloud Service Mesh 前,叢集上已執行工作負載,請重新啟動 Pod,觸發重新插入作業。
重新啟動 Pod 的方式取決於應用程式和叢集所在的環境。舉例來說,在暫存環境中,您可能只是刪除所有 Pod,導致這些 Pod 重新啟動。但在生產環境中,您可能會有實作藍綠部署的程序,以便安全地重新啟動 Pod,避免流量中斷。
您可以使用
kubectl執行滾動重新啟動:kubectl rollout restart deployment -n NAMESPACE
後續步驟
如果網格包含 Google Cloud以外的叢集,請參閱「在 Google Cloud以外設定多叢集網格」。