本部署作業說明如何結合 Cloud Service Mesh 和 Cloud Load Balancing,將服務網格中的應用程式公開發布給網際網路用戶端。
視用戶端所在位置而定,您可透過多種方式向用戶端公開應用程式。本部署作業說明如何結合 Cloud Load Balancing 與 Cloud Service Mesh,將負載平衡器與服務網格整合,向用戶端公開應用程式。這項部署作業適用於執行 Cloud Service Mesh 的進階實務工作者,但也可在 Google Kubernetes Engine 上執行 Istio。
架構
下圖顯示如何使用網格 Ingress 閘道,將負載平衡器與服務網格整合:
在上圖的拓撲中,透過 GKE Gateway 編程的雲端進入層會從服務網格外部取得流量,並將該流量導向網格進入層。網格輸入層接著會將流量導向網格代管的應用程式後端。
上述拓撲有下列注意事項:
- Cloud Ingress:在本參考架構中,您會透過 GKE Gateway 設定Google Cloud 負載平衡器,檢查網格 Ingress 代理程式在公開健康狀態檢查通訊埠上的健康狀態。
- 網格輸入:在網格應用程式中,您可以直接對後端執行健康狀態檢查,以便在本機執行負載平衡和流量管理。
上圖說明從用戶端到 Google Cloud 負載平衡器、從負載平衡器到網格 Ingress Proxy,以及從 Ingress Proxy 到 Sidecar Proxy 的 HTTPS 加密。
目標
- 在 Google Cloud上部署 Google Kubernetes Engine (GKE) 叢集。
- 在 GKE 叢集上部署以 Istio 為基礎的 Cloud Service Mesh。
- 設定 GKE Gateway 終止公開 HTTPS 流量,並將該流量導向服務網格代管的應用程式。
- 在 GKE 叢集上部署 Online Boutique 應用程式,並向網際網路上的用戶端公開。
成本最佳化
在本文件中,您會使用 Google Cloud的下列計費元件:
- Google Kubernetes Engine
- Compute Engine
- Cloud Load Balancing
- Certificate Manager
- Cloud Service Mesh
- Google Cloud Armor
- Cloud Endpoints
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除已建立的資源,避免繼續計費。詳情請參閱清除所用資源一節。
事前準備
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
您將透過 Cloud Shell 執行這項部署作業的所有終端機指令。
升級至最新版 Google Cloud CLI:
gcloud components update
設定預設 Google Cloud 專案:
export PROJECT=PROJECT export PROJECT_NUMBER=$(gcloud projects describe ${PROJECT} --format="value(projectNumber)") gcloud config set project ${PROJECT}
將
PROJECT
替換為您要用於這項部署作業的專案 ID。建立工作目錄:
mkdir -p ${HOME}/edge-to-mesh cd ${HOME}/edge-to-mesh export WORKDIR=`pwd`
完成部署後,您可以刪除工作目錄。
建立 GKE 叢集
本部署作業所述功能需要 GKE 叢集 1.16 以上版本。
在 Cloud Shell 中,建立新的
kubeconfig
檔案。這個步驟可確保您不會與現有的 (預設)kubeconfig
檔案發生衝突。touch edge2mesh_kubeconfig export KUBECONFIG=${WORKDIR}/edge2mesh_kubeconfig
定義 GKE 叢集的環境變數:
export CLUSTER_NAME=edge-to-mesh export CLUSTER_LOCATION=us-central1
啟用 Google Kubernetes Engine API:
gcloud services enable container.googleapis.com
建立 GKE Autopilot 叢集:
gcloud container --project ${PROJECT} clusters create-auto \ ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --release-channel rapid
確認叢集正在執行:
gcloud container clusters list
輸出結果會與下列內容相似:
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS edge-to-mesh us-central1 1.27.3-gke.1700 34.122.84.52 e2-medium 1.27.3-gke.1700 3 RUNNING
安裝服務網格
在本節中,您將透過 Fleet API 設定代管 Cloud Service Mesh。
在 Cloud Shell 中,啟用必要的 API:
gcloud services enable mesh.googleapis.com
在機群上啟用 Cloud Service Mesh:
gcloud container fleet mesh enable
向機群註冊叢集:
gcloud container fleet memberships register ${CLUSTER_NAME} \ --gke-cluster ${CLUSTER_LOCATION}/${CLUSTER_NAME}
將
mesh_id
標籤套用至edge-to-mesh
叢集:gcloud container clusters update ${CLUSTER_NAME} --project ${PROJECT} --region ${CLUSTER_LOCATION} --update-labels mesh_id=proj-${PROJECT_NUMBER}
啟用自動控制層管理和受管理資料層:
gcloud container fleet mesh update \ --management automatic \ --memberships ${CLUSTER_NAME}
幾分鐘後,確認控制層狀態為
ACTIVE
:gcloud container fleet mesh describe
輸出結果會與下列內容相似:
... membershipSpecs: projects/892585880385/locations/us-central1/memberships/edge-to-mesh: mesh: management: MANAGEMENT_AUTOMATIC membershipStates: projects/892585880385/locations/us-central1/memberships/edge-to-mesh: servicemesh: controlPlaneManagement: details: - code: REVISION_READY details: 'Ready: asm-managed-rapid' implementation: TRAFFIC_DIRECTOR state: ACTIVE dataPlaneManagement: details: - code: OK details: Service is running. state: ACTIVE state: code: OK description: 'Revision(s) ready for use: asm-managed-rapid.' updateTime: '2023-08-04T02:54:39.495937877Z' name: projects/e2m-doc-01/locations/global/features/servicemesh resourceState: state: ACTIVE ...
部署 GKE 閘道
在下列步驟中,您將透過 GKE Gateway 控制器部署外部應用程式負載平衡器。GKE Gateway 資源會自動佈建負載平衡器,並檢查後端健康狀態。此外,您可以使用 Certificate Manager 佈建及管理 TLS 憑證,並使用 Endpoints 自動佈建應用程式的公開 DNS 名稱。
安裝服務網格 Ingress 閘道
為確保安全,我們建議您在控制層以外的命名空間中部署 Ingress 閘道。
在 Cloud Shell 中,建立專屬的
ingress-gateway
命名空間:kubectl create namespace ingress-gateway
將命名空間標籤新增至
ingress-gateway
命名空間:kubectl label namespace ingress-gateway istio-injection=enabled
輸出結果會與下列內容相似:
namespace/ingress-gateway labeled
使用
istio-injection=enabled
為ingress-gateway
命名空間加上標籤,即可指示 Cloud Service Mesh 在部署應用程式時,自動插入 Envoy 補充資訊 Proxy。建立 Ingress 閘道使用的自行簽署憑證,終止 Google Cloud 負載平衡器 (稍後透過 GKE Gateway 控制器設定) 與 Ingress 閘道之間的 TLS 連線,並將自行簽署憑證儲存為 Kubernetes 密鑰:
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \ -subj "/CN=frontend.endpoints.${PROJECT}.cloud.goog/O=Edge2Mesh Inc" \ -keyout frontend.endpoints.${PROJECT}.cloud.goog.key \ -out frontend.endpoints.${PROJECT}.cloud.goog.crt kubectl -n ingress-gateway create secret tls edge2mesh-credential \ --key=frontend.endpoints.${PROJECT}.cloud.goog.key \ --cert=frontend.endpoints.${PROJECT}.cloud.goog.crt
如要進一步瞭解 Ingress 閘道憑證的規定,請參閱安全後端通訊協定注意事項指南。
執行下列指令,建立 Ingress 閘道資源 YAML:
mkdir -p ${WORKDIR}/ingress-gateway/base cat <<EOF > ${WORKDIR}/ingress-gateway/base/kustomization.yaml resources: - github.com/GoogleCloudPlatform/anthos-service-mesh-samples/docs/ingress-gateway-asm-manifests/base EOF mkdir ${WORKDIR}/ingress-gateway/variant cat <<EOF > ${WORKDIR}/ingress-gateway/variant/role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: asm-ingressgateway rules: - apiGroups: [""] resources: ["secrets"] verbs: ["get", "watch", "list"] EOF cat <<EOF > ${WORKDIR}/ingress-gateway/variant/rolebinding.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: asm-ingressgateway roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: asm-ingressgateway subjects: - kind: ServiceAccount name: asm-ingressgateway EOF cat <<EOF > ${WORKDIR}/ingress-gateway/variant/service-proto-type.yaml apiVersion: v1 kind: Service metadata: name: asm-ingressgateway spec: ports: - name: status-port port: 15021 protocol: TCP targetPort: 15021 - name: http port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 appProtocol: HTTP2 type: ClusterIP EOF cat <<EOF > ${WORKDIR}/ingress-gateway/variant/gateway.yaml apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: asm-ingressgateway spec: servers: - port: number: 443 name: https protocol: HTTPS hosts: - "*" # IMPORTANT: Must use wildcard here when using SSL, as SNI isn't passed from GFE tls: mode: SIMPLE credentialName: edge2mesh-credential EOF cat <<EOF > ${WORKDIR}/ingress-gateway/variant/kustomization.yaml namespace: ingress-gateway resources: - ../base - role.yaml - rolebinding.yaml patches: - path: service-proto-type.yaml target: kind: Service - path: gateway.yaml target: kind: Gateway EOF
套用輸入閘道 CRD:
kubectl apply -k ${WORKDIR}/ingress-gateway/variant
確認所有部署作業都已啟動並執行:
kubectl wait --for=condition=available --timeout=600s deployment --all -n ingress-gateway
輸出結果會與下列內容相似:
deployment.apps/asm-ingressgateway condition met
套用 Service Mesh Ingress 閘道健康狀態檢查
將服務網格 Ingress 閘道整合至 Google Cloud 應用程式負載平衡器時,必須將應用程式負載平衡器設定為對 Ingress 閘道 Pod 執行健康狀態檢查。HealthCheckPolicy
CRD 提供 API,可設定健康狀態檢查。
在 Cloud Shell 中建立
HealthCheckPolicy.yaml
檔案:cat <<EOF >${WORKDIR}/ingress-gateway-healthcheck.yaml apiVersion: networking.gke.io/v1 kind: HealthCheckPolicy metadata: name: ingress-gateway-healthcheck namespace: ingress-gateway spec: default: checkIntervalSec: 20 timeoutSec: 5 #healthyThreshold: HEALTHY_THRESHOLD #unhealthyThreshold: UNHEALTHY_THRESHOLD logConfig: enabled: True config: type: HTTP httpHealthCheck: #portSpecification: USE_NAMED_PORT port: 15021 portName: status-port #host: HOST requestPath: /healthz/ready #response: RESPONSE #proxyHeader: PROXY_HEADER #requestPath: /healthz/ready #port: 15021 targetRef: group: "" kind: Service name: asm-ingressgateway EOF
套用
HealthCheckPolicy:
kubectl apply -f ${WORKDIR}/ingress-gateway-healthcheck.yaml
定義安全性政策
Google Cloud Armor 提供分散式阻斷服務防護和可自訂的安全政策,您可以透過 Ingress 資源將這些政策附加至負載平衡器。在下列步驟中,您將建立安全性政策,使用預先設定的規則封鎖跨網站指令碼 (XSS) 攻擊。這項規則有助於封鎖符合已知攻擊簽章的流量,但允許所有其他流量。視工作負載而定,您的環境可能會使用不同的規則。
在 Cloud Shell 中,建立名為
edge-fw-policy
的安全性政策:gcloud compute security-policies create edge-fw-policy \ --description "Block XSS attacks"
建立使用預先設定 XSS 篩選器的安全性政策規則:
gcloud compute security-policies rules create 1000 \ --security-policy edge-fw-policy \ --expression "evaluatePreconfiguredExpr('xss-stable')" \ --action "deny-403" \ --description "XSS attack filtering"
建立
GCPBackendPolicy.yaml
檔案,附加至輸入閘道服務:cat <<EOF > ${WORKDIR}/cloud-armor-backendpolicy.yaml apiVersion: networking.gke.io/v1 kind: GCPBackendPolicy metadata: name: cloud-armor-backendpolicy namespace: ingress-gateway spec: default: securityPolicy: edge-fw-policy targetRef: group: "" kind: Service name: asm-ingressgateway EOF
套用
GCPBackendPolicy.yaml
檔案:kubectl apply -f ${WORKDIR}/cloud-armor-backendpolicy.yaml
設定 IP 位址和 DNS
在 Cloud Shell 中,為Google Cloud 負載平衡器建立全域靜態 IP 位址:
gcloud compute addresses create e2m-gclb-ip --global
這個靜態 IP 位址由 GKE 閘道資源使用,即使外部負載平衡器變更,IP 位址也不會改變。
取得靜態 IP 位址:
export GCLB_IP=$(gcloud compute addresses describe e2m-gclb-ip \ --global --format "value(address)") echo ${GCLB_IP}
如要建立穩定且容易記住的對應項目,將應用程式負載平衡器的靜態 IP 位址對應至網域名稱,您必須擁有公開 DNS 記錄。您可以選擇任何 DNS 供應商和自動化功能。 這個部署作業會使用 Endpoints,而不是建立代管 DNS 區域。Endpoints 會為公開 IP 位址提供免費的 Google 管理 DNS 記錄。
執行下列指令,建立名為
dns-spec.yaml
的 YAML 規格檔案:cat <<EOF > ${WORKDIR}/dns-spec.yaml swagger: "2.0" info: description: "Cloud Endpoints DNS" title: "Cloud Endpoints DNS" version: "1.0.0" paths: {} host: "frontend.endpoints.${PROJECT}.cloud.goog" x-google-endpoints: - name: "frontend.endpoints.${PROJECT}.cloud.goog" target: "${GCLB_IP}" EOF
YAML 規格會以
frontend.endpoints.${PROJECT}.cloud.goog
形式定義公開 DNS 記錄,其中${PROJECT}
是專案的專屬 ID。在 Google Cloud 專案中部署
dns-spec.yaml
檔案:gcloud endpoints services deploy ${WORKDIR}/dns-spec.yaml
輸出結果會與下列內容相似:
project [e2m-doc-01]... Operation "operations/acat.p2-892585880385-fb4a01ad-821d-4e22-bfa1-a0df6e0bf589" finished successfully. Service Configuration [2023-08-04r0] uploaded for service [frontend.endpoints.e2m-doc-01.cloud.goog]
設定 IP 位址和 DNS 後,您就可以產生公開憑證,確保前端安全。如要與 GKE Gateway 整合,請使用 Certificate Manager TLS 憑證。
佈建傳輸層安全標準 (TLS) 憑證
在本節中,您將使用 Certificate Manager 建立 TLS 憑證,並透過憑證對應項目將其與憑證對應建立關聯。透過 GKE Gateway 設定的應用程式負載平衡器會使用憑證,在用戶端和 Google Cloud之間提供安全通訊。建立完成後,GKE Gateway 資源會參照憑證對應項目。
在 Cloud Shell 中啟用 Certificate Manager API:
gcloud services enable certificatemanager.googleapis.com --project=${PROJECT}
建立 TLS 憑證:
gcloud --project=${PROJECT} certificate-manager certificates create edge2mesh-cert \ --domains="frontend.endpoints.${PROJECT}.cloud.goog"
建立憑證對應:
gcloud --project=${PROJECT} certificate-manager maps create edge2mesh-cert-map
使用憑證對應項目,將憑證附加至憑證對應關係:
gcloud --project=${PROJECT} certificate-manager maps entries create edge2mesh-cert-map-entry \ --map="edge2mesh-cert-map" \ --certificates="edge2mesh-cert" \ --hostname="frontend.endpoints.${PROJECT}.cloud.goog"
部署 GKE Gateway 和 HTTPRoute
資源
在本節中,您將設定 GKE Gateway 資源,該資源會使用 gke-l7-global-external-managed
gatewayClass
佈建應用程式負載平衡器。 Google Cloud 此外,您還會設定 HTTPRoute
資源,將要求轉送至應用程式,並執行 HTTP 至 HTTP(S) 的重新導向。
在 Cloud Shell 中執行下列指令,將資訊清單建立為
gke-gateway.yaml
:Gateway
cat <<EOF > ${WORKDIR}/gke-gateway.yaml kind: Gateway apiVersion: gateway.networking.k8s.io/v1 metadata: name: external-http namespace: ingress-gateway annotations: networking.gke.io/certmap: edge2mesh-cert-map spec: gatewayClassName: gke-l7-global-external-managed # gke-l7-gxlb listeners: - name: http # list the port only so we can redirect any incoming http requests to https protocol: HTTP port: 80 - name: https protocol: HTTPS port: 443 addresses: - type: NamedAddress value: e2m-gclb-ip # reference the static IP created earlier EOF
套用
Gateway
資訊清單,建立名為external-http
的Gateway
:kubectl apply -f ${WORKDIR}/gke-gateway.yaml
建立預設
HTTPRoute.yaml
檔案:cat << EOF > ${WORKDIR}/default-httproute.yaml apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: default-httproute namespace: ingress-gateway spec: parentRefs: - name: external-http namespace: ingress-gateway sectionName: https rules: - matches: - path: value: / backendRefs: - name: asm-ingressgateway port: 443 EOF
套用預設
HTTPRoute
:kubectl apply -f ${WORKDIR}/default-httproute.yaml
建立額外的
HTTPRoute.yaml
檔案,執行從 HTTP 重新導向至 HTTP(S) 的作業:cat << EOF > ${WORKDIR}/default-httproute-redirect.yaml kind: HTTPRoute apiVersion: gateway.networking.k8s.io/v1 metadata: name: http-to-https-redirect-httproute namespace: ingress-gateway spec: parentRefs: - name: external-http namespace: ingress-gateway sectionName: http rules: - filters: - type: RequestRedirect requestRedirect: scheme: https statusCode: 301 EOF
套用重新導向
HTTPRoute
:kubectl apply -f ${WORKDIR}/default-httproute-redirect.yaml
對帳需要時間。請使用下列指令,直到
programmed=true
:kubectl get gateway external-http -n ingress-gateway -w
安裝 Online Boutique 範例應用程式
在 Cloud Shell 中,建立專屬的
onlineboutique
命名空間:kubectl create namespace onlineboutique
為
onlineboutique
命名空間新增標籤:kubectl label namespace onlineboutique istio-injection=enabled
使用
istio-injection=enabled
標記onlineboutique
命名空間,即可指示 Cloud Service Mesh 在部署應用程式時,自動插入 Envoy 補充資訊 Proxy。下載 Online Boutique 範例應用程式的 Kubernetes YAML 檔案:
curl -LO \ https://raw.githubusercontent.com/GoogleCloudPlatform/microservices-demo/main/release/kubernetes-manifests.yaml
部署 Online Boutique 應用程式:
kubectl apply -f kubernetes-manifests.yaml -n onlineboutique
輸出內容類似於下列內容 (包括有關 GKE Autopilot 設定預設資源要求和限制的警告):
Warning: autopilot-default-resources-mutator:Autopilot updated Deployment onlineboutique/emailservice: adjusted resources to meet requirements for containers [server] (see http://g.co/gke/autopilot-resources) deployment.apps/emailservice created service/emailservice created Warning: autopilot-default-resources-mutator:Autopilot updated Deployment onlineboutique/checkoutservice: adjusted resources to meet requirements for containers [server] (see http://g.co/gke/autopilot-resources) deployment.apps/checkoutservice created service/checkoutservice created Warning: autopilot-default-resources-mutator:Autopilot updated Deployment onlineboutique/recommendationservice: adjusted resources to meet requirements for containers [server] (see http://g.co/gke/autopilot-resources) deployment.apps/recommendationservice created service/recommendationservice created ...
確認所有部署作業都已啟動並執行:
kubectl get pods -n onlineboutique
輸出結果會與下列內容相似:
NAME READY STATUS RESTARTS AGE adservice-64d8dbcf59-krrj9 2/2 Running 0 2m59s cartservice-6b77b89c9b-9qptn 2/2 Running 0 2m59s checkoutservice-7668b7fc99-5bnd9 2/2 Running 0 2m58s ...
請稍候幾分鐘,讓 GKE Autopilot 叢集佈建必要的運算基礎架構,以支援應用程式。
執行下列指令,將
VirtualService
資訊清單建立為frontend-virtualservice.yaml
:cat <<EOF > frontend-virtualservice.yaml apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: frontend-ingress namespace: onlineboutique spec: hosts: - "frontend.endpoints.${PROJECT}.cloud.goog" gateways: - ingress-gateway/asm-ingressgateway http: - route: - destination: host: frontend port: number: 80 EOF
VirtualService
是在應用程式命名空間 (onlineboutique
) 中建立。一般來說,應用程式擁有者會決定及設定流量如何和要轉送至frontend
應用程式,因此VirtualService
是由應用程式擁有者部署。在叢集中部署
frontend-virtualservice.yaml
:kubectl apply -f frontend-virtualservice.yaml
前往下列連結:
echo "https://frontend.endpoints.${PROJECT}.cloud.goog"
系統會顯示 Online Boutique 前端。
如要顯示憑證詳細資料,請依序點選瀏覽器網址列中的
「查看網站資訊」和「憑證 (有效)」。憑證檢視器會顯示受管理憑證的詳細資料,包括到期日和憑證核發者。
您現在擁有全球 HTTPS 負載平衡器,可做為服務網格代管應用程式的前端。
清除所用資源
部署完成後,您可以清除在 Google Cloud 上建立的資源,這樣日後就不需再為這些資源付費。您可以完全刪除專案,也可以刪除叢集資源,然後刪除叢集。
刪除專案
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
刪除個別資源
如要保留您在本部署作業中使用的 Google Cloud 專案,請刪除個別資源:
在 Cloud Shell 中,刪除
HTTPRoute
資源:kubectl delete -f ${WORKDIR}/default-httproute-redirect.yaml kubectl delete -f ${WORKDIR}/default-httproute.yaml
刪除 GKE Gateway 資源:
kubectl delete -f ${WORKDIR}/gke-gateway.yaml
刪除 TLS 憑證資源 (包括憑證對應關係項目和上層憑證對應關係):
gcloud --project=${PROJECT} certificate-manager maps entries delete edge2mesh-cert-map-entry --map="edge2mesh-cert-map" --quiet gcloud --project=${PROJECT} certificate-manager maps delete edge2mesh-cert-map --quiet gcloud --project=${PROJECT} certificate-manager certificates delete edge2mesh-cert --quiet
刪除 Endpoints DNS 項目:
gcloud endpoints services delete "frontend.endpoints.${PROJECT}.cloud.goog"
輸出結果會與下列內容相似:
Are you sure? This will set the service configuration to be deleted, along with all of the associated consumer information. Note: This does not immediately delete the service configuration or data and can be undone using the undelete command for 30 days. Only after 30 days will the service be purged from the system.
系統提示是否要繼續時,請輸入「Y」。
輸出結果會與下列內容相似:
Waiting for async operation operations/services.frontend.endpoints.edge2mesh.cloud.goog-5 to complete... Operation finished successfully. The following command can describe the Operation details: gcloud endpoints operations describe operations/services.frontend.endpoints.edge2mesh.cloud.goog-5
刪除靜態 IP 位址:
gcloud compute addresses delete ingress-ip --global
輸出結果會與下列內容相似:
The following global addresses will be deleted: - [ingress-ip]
系統提示是否要繼續時,請輸入「Y」。
輸出結果會與下列內容相似:
Deleted [https://www.googleapis.com/compute/v1/projects/edge2mesh/global/addresses/ingress-ip].
刪除 GKE 叢集:
gcloud container clusters delete $CLUSTER_NAME --zone $CLUSTER_LOCATION
輸出結果會與下列內容相似:
The following clusters will be deleted. - [edge-to-mesh] in [us-central1]
系統提示是否要繼續時,請輸入「Y」。
幾分鐘後,輸出內容應如下所示:
Deleting cluster edge-to-mesh...done. Deleted [https://container.googleapis.com/v1/projects/e2m-doc-01/zones/us-central1/clusters/edge-to-mesh].
後續步驟
- 瞭解服務網格可用的 GKE Ingress 其他功能。
- 瞭解適用於 GKE 的不同類型 Cloud Load Balancing。
- 瞭解 Cloud Service Mesh 提供的功能。
- 瞭解如何在多個 GKE 叢集中部署 Ingress,以進行多區域負載平衡。
- 如需更多參考架構、圖表和最佳做法,請瀏覽 Cloud 架構中心。