為 Kubernetes 工作負載安裝 Cloud Service Mesh Google Cloud
本頁面說明如何為 Kubernetes 工作負載安裝叢集中的未管理 Cloud Service Mesh Google Cloud:
- 執行
asmcli
即可安裝新的 Cloud Service Mesh 1.25.2-asm.3。 - 視需要部署入口網站閘道。
- 部署或重新部署工作負載,以便插入補充 Proxy。
如果您需要在 GKE 上安裝未管理的叢集內 Cloud Service Mesh,並使用 istiod
控制層,請參閱「在 Google Cloud上安裝叢集內 Cloud Service Mesh」。請注意,對於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) |
注意:
- 服務使用情形管理員:這個角色是必要的先決條件,可在初始佈建 Managed Cloud Service Mesh 時啟用
mesh.googleapis.com
API。 - CA 服務管理員:只有在您要整合 CA 服務時,才需要這個角色。
安裝 Cloud Service Mesh
以下概述如何安裝 Cloud Service Mesh:
執行
asmcli install
,即可在單一叢集中安裝叢集內控制層。如需指令列範例,請參閱下列各節。這些範例包含您可能會覺得實用的必要引數和選用引數。建議您一律指定output_dir
引數,以便找出istioctl
等樣本閘道和工具。請參閱右側的導覽列,查看範例清單。您可以選擇安裝入口閘道。根據預設,
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
。
安裝預設功能和網格憑證授權單位
本節說明如何執行 asmcli
,以便使用平台的預設支援功能安裝 Cloud Service Mesh,並將 Cloud Service Mesh 憑證授權機構設為憑證授權機構。
地端部署
在 VMware 適用的 Google Distributed Cloud (僅限軟體) 或裸機適用的 Google Distributed Cloud (僅限軟體) 上執行下列指令,即可安裝控制層,並取得預設功能和 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 UI 中查看 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 UI 中查看 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 UI 中查看 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 UI 中查看 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 UI 中查看 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 的基本價格中,須另外收費。此外,CA 服務還提供明確的服務水準協議,但 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
如要瞭解如何在集區中設定政策,請參閱「使用憑證核發政策」。
如果您使用的是憑證範本,請立即設定。詳情請參閱 CA 服務指南,瞭解工作負載身分憑證。請確認憑證範本是在 CA 集區所在的區域建立。如果 CA 集區有多個區域,請為每個區域建立憑證範本。
設定 Cloud Service Mesh 以使用 CA 服務
在 VMware 適用的 Google Distributed Cloud (僅限軟體) 或裸機適用的 Google Distributed Cloud (僅限軟體) 上執行下列指令,即可安裝內含預設功能和憑證授權單位服務的控制層。在提供的預留位置中輸入值。
將目前的結構定義設為使用者叢集:
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 UI 中查看 SLO 和基礎架構指標,您必須同時執行「啟用應用程式記錄和監控」中的前三個步驟。如果未啟用記錄和監控功能,且未接收自訂記錄和指標,Cloud Service Mesh 資訊主頁就不會顯示服務水準目標、錯誤記錄或 CPU 和記憶體指標。
使用 Istio CA 安裝預設功能
本節將說明如何:
- 為 Cloud Service Mesh 用來簽署工作負載的 Istio CA 產生憑證和金鑰。
- 執行
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.25.2-asm.3
子目錄中。如果您沒有執行 asmcli validate
,或是本機沒有下載的目錄,可以下載 Cloud Service Mesh 安裝檔案並擷取內容,取得 Makefile。
切換至
istio-1.25.2-asm.3
目錄。建立憑證和金鑰的目錄:
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 安裝網格:地端部署
在 VMware 適用的 Google Distributed Cloud (僅限軟體) 或裸機適用的 Google Distributed Cloud (僅限軟體) 上執行下列指令,安裝控制平面,並納入預設功能和 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
設為網狀結構中每個叢集的唯一值。
啟用 Google Cloud Observability 的 Istio CA 安裝程序
如要使用 Cloud Service Mesh 資訊主頁,您必須啟用 Stackdriver。
地端部署
在 VMware 適用的 Google Distributed Cloud (僅限軟體) 或裸機適用的 Google Distributed Cloud (僅限軟體) 上執行下列指令,即可安裝 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 UI 中查看 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
。
詳情請參閱「在叢集內控制平面啟用選用功能」。
在 VMware 適用的 Google Distributed Cloud (僅限軟體)、裸機適用的 Google Distributed Cloud (僅限軟體)、AWS 上的 GKE、Azure 上的 GKE、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 憑證授權單位設定為使用車隊工作負載身分--custom_overlay
指定覆蓋檔案名稱。
安裝閘道
Cloud Service Mesh 可讓您選擇部署及管理服務網格中的閘道。閘道是指在邊緣運作的負載平衡器,用於接收或傳送 HTTP/TCP 連線。閘道是 Envoy 代理程式,可讓您精細控管進入及離開網格的流量。
如果尚未建立入口閘道,請建立一個命名空間。閘道是使用者工作負載,因此最佳做法是不要將其部署在控制層命名空間中。請將
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-1252-3
將修訂標籤套用至命名空間。在下列指令中,
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 使用邊車模式 Proxy 提升網路安全性、可靠性和可觀察性。在 Cloud Service Mesh 中,這些功能會從應用程式的主要容器中移除,並且會在相同的 Pod 中以各自獨立的容器,透過程序以外的共用 Proxy 執行。
您必須啟用自動側邊代理程式注入 (自動注入) 功能,並重新啟動叢集中執行的所有工作負載,安裝 Cloud Service Mesh 前,安裝作業才算完成。
如要啟用自動注入功能,請使用預設注入標籤標記命名空間 (如果已設定預設標籤),或是在您安裝 Cloud Service Mesh 時,在 istiod
上設定的修訂版本標籤。側載器注入器 webhook 會使用預設修訂版本標記和修訂版本標籤,將注入的側載器與 istiod
修訂版本建立關聯。新增標籤後,必須重新啟動命名空間中的所有現有 Pod,才能注入側邊車。
在新的命名空間中部署新工作負載前,請務必設定自動插入功能,讓 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-1252-3-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1252-3,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1252-3-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1252-3,istio=istiod,pod-template-hash=5788d57586
在輸出內容的
LABELS
欄下,請記下istiod
修訂版本標籤的值,該值位於前置字串istio.io/rev=
之後。在這個範例中,這個值為asm-1252-3
。套用修訂版本標籤,並移除
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外部設定多叢集網格。