為 Kubernetes 工作負載安裝 Cloud Service Mesh Google Cloud
Google Cloud 詳情請參閱「Cloud Service Mesh 總覽」一文。本頁說明如何為 Kubernetes 工作負載安裝非受管理叢內 Cloud Service Mesh (關閉 Google Cloud):
- 執行
asmcli
,重新安裝 Cloud Service Mesh 1.26.4-asm.1。 - 視需要部署 Ingress 閘道。
- 部署或重新部署工作負載,插入補充 Proxy。
如要在 GKE 上安裝叢集內 Cloud Service Mesh,並使用istiod
控制層,請參閱「在 GKE 上安裝叢集內 Cloud Service Mesh Google Cloud」。請注意,如果是Google Cloud上的 Kubernetes 工作負載,建議您佈建代管控制層
如需準備離線安裝 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 | 機群專案 | 以服務帳戶進行驗證。 |
Service Management 管理員 | roles/servicemanagement.admin | 機群專案 | 具備所有 Google Service Management 資源的完整控制權限。 |
服務使用情形管理員 | roles/serviceusage.serviceUsageAdmin | 機群專案 | 可啟用、停用及檢查服務狀態、檢查作業,以及消耗消費者專案的配額和帳單。(附註 1) |
CA 服務管理員 Beta 版 | roles/privateca.admin | 機群專案 | 具備所有 CA 服務資源的完整存取權。 (附註 2) |
注意:
- 服務使用情形管理員 - 這是啟用
mesh.googleapis.com
API 的必要角色,也是初始佈建受管理 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 設定,您需要啟用自動 Sidecar 插入功能,並部署或重新部署工作負載。
如要在多個叢集上安裝 Cloud Service Mesh,請在每個叢集上執行
asmcli install
。執行asmcli install
時,請務必為每個叢集使用相同的FLEET_PROJECT_ID
。安裝 Cloud Service Mesh 後,請參閱相關操作說明,設定多叢集網格 Google Cloud。如果叢集位於不同網路上 (如孤島模式),則應使用
--network_id
標記,將專屬網路名稱傳遞至asmcli
。
安裝預設功能和網格憑證授權單位
本節說明如何執行 asmcli
,為平台安裝 Cloud Service Mesh,並啟用 Cloud Service Mesh 憑證授權機構做為憑證授權機構。安裝時會使用平台支援的預設功能。
地端部署
在 Google Distributed Cloud (僅限軟體) for VMware 或 Google Distributed Cloud (僅限軟體) for Bare Metal 上執行下列指令,安裝具有預設功能和 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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 憑證授權單位,以使用車隊工作負載身分
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示服務水準目標、錯誤記錄或 CPU 和記憶體指標。
AWS
在 AWS 上的 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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 憑證授權單位設定為使用車隊工作負載身分。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示服務水準目標、錯誤記錄或 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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 憑證授權單位設定為使用車隊工作負載身分。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示服務水準目標、錯誤記錄或 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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 憑證授權單位設定為使用車隊工作負載身分。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示服務水準目標、錯誤記錄或 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_ca
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
允許向 GKE Hub 註冊。--fleet_id
機群主專案的專案 ID。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 憑證授權單位設定為使用車隊工作負載身分。
如要在 Cloud Service Mesh 使用者介面中查看 SLO 和基礎架構指標,您也必須執行「啟用應用程式記錄和監控」中的前三個步驟。如果未啟用記錄和監控功能,且未收到自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示服務水準目標、錯誤記錄或 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 基本價格中,且會另外收費。此外,憑證授權單位服務提供明確的服務水準協議,但 Cloud Service Mesh 憑證授權單位則無。
設定 CA 服務
- 在層級
DevOps
中建立 CA 集區,並與其服務的叢集位於相同區域,以免發生延遲時間過長的問題,或潛在的跨區域中斷情形。詳情請參閱「已最佳化調整工作負載的級別」。 - 建立 CA,確保 GKE 叢集所在的專案中,CA 集區至少有一個有效的憑證授權單位。使用下層 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
如要瞭解如何為集區設定政策,請參閱「使用憑證核發政策」。
如果您使用憑證範本,請立即設定。如要瞭解詳情,請參閱 workload identity 憑證的 CA 服務指南。請確認憑證範本與 CA 集區位於相同區域。如果 CA 集區有多個區域,請為每個區域建立憑證範本。
設定 Cloud Service Mesh 以使用憑證授權單位服務
在 Google Distributed Cloud (僅限軟體) for VMware 或 Google Distributed Cloud (僅限軟體) for Bare Metal 上執行下列指令,安裝具備預設功能和 Certificate Authority Service 的控制層。在提供的預留位置中輸入值。
將目前環境設為使用者叢集:
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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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
會設定憑證授權單位服務,以使用車隊工作負載身分。--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 資訊主頁就不會顯示服務水準目標、錯誤記錄或 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.26.4-asm.1
子目錄中。如果您未執行 asmcli validate
,或沒有在本機下載目錄,可以下載 Cloud Service Mesh 安裝檔案並解壓縮內容,取得 Makefile。
切換至
istio-1.26.4-asm.1
目錄。為憑證和金鑰建立目錄:
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 Bare Metal 上執行下列指令,安裝具有預設功能和 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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 default
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
允許向 GKE Hub 註冊。--fleet_id
機群主專案的專案 ID。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 Bare Metal 上執行下列指令,安裝控制平面,並搭配 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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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 資訊主頁就不會顯示服務水準目標、錯誤記錄或 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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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-cluster
HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer
允許向 GKE Hub 註冊。--fleet_id
機群主專案的專案 ID。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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
。
安裝選用功能
疊加層檔案是包含 IstioOperator
自訂資源 (CR) 的 YAML 檔案,您會將該檔案傳遞至 asmcli
,以設定控制平面。您可以將 YAML 檔案傳遞至 asmcli
,藉此覆寫預設控制層設定並啟用選用功能。您可以疊加更多覆疊,每個覆疊檔案都會覆寫前幾層的設定。建議您最好將疊加層檔案儲存在版本控制系統中。
您可以透過下列兩種方式啟用選用功能:--option
和 --custom_overlay
。
如果不需要變更疊加檔案,請使用 --option
。使用這個方法時,asmcli
會為您從 GitHub 存放區擷取檔案。
如要自訂疊加層檔案,請使用 --custom_overlay
。
詳情請參閱「在叢內控制層上啟用選用功能」。
在 Google Distributed Cloud (僅限軟體) for VMware、Google Distributed Cloud (僅限軟體) for Bare Metal、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。--kubeconfig
kubeconfig
檔案的完整路徑。 環境變數$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
指定疊加檔案的名稱。
安裝閘道
您可以選擇在服務網格中部署及管理閘道。閘道說明在網格邊緣運作的負載平衡器,可接收傳入或傳出的 HTTP/TCP 連線。閘道是 Envoy 代理程式,可讓您精細控管進出網格的流量。
如果還沒有 Ingress 閘道的命名空間,請建立一個。閘道是使用者工作負載,最佳做法是不應部署在控制層命名空間中。將
GATEWAY_NAMESPACE
替換成命名空間名稱。kubectl create namespace GATEWAY_NAMESPACE
預期輸出內容:
namespace/GATEWAY_NAMESPACE created
在閘道上啟用自動插入功能。所需步驟取決於您要使用預設插入標籤 (例如
istio-injection=enabled
),還是閘道命名空間的修訂版本標籤。預設修訂版本標記和修訂版本標籤會由 Sidecar 注入器 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-1264-1
將修訂版本標籤套用至命名空間。在下列指令中,
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-ingressgateway
Pod 會失敗並顯示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 使用邊車模式 (side-car) Proxy,提升網路安全性、可靠性和可觀測性。如果採用 Cloud Service Mesh,這些功能將會從應用程式的主要容器中移除,並且會在相同的 Pod 中以各自獨立的容器,透過程序以外的共用 Proxy 執行。
您必須啟用自動 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-1264-1-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1264-1,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1264-1-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1264-1,istio=istiod,pod-template-hash=5788d57586
在輸出內容的
LABELS
欄下方,記下istiod
修訂版本標籤的值 (前置字串為istio.io/rev=
)。在本範例中,這個值為asm-1264-1
。套用修訂版本標籤,並移除
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外部設定多叢集網格」。