本教學課程說明如何使用多叢集 Ingress,升級多叢集 Google Kubernetes Engine (GKE) 環境。本教學課程延續使用多叢集 Ingress 升級多叢集 GKE 的文件,更詳細地說明相關程序、架構和術語。建議您先閱讀概念文件,再進行本教學課程。
如要詳細比較多叢集 Ingress (MCI)、多叢集閘道 (MCG) 和具備獨立網路端點群組的負載平衡器 (LB 和獨立 NEG),請參閱「為 GKE 選擇多叢集負載平衡 API」。
本文適用於負責維護 GKE 叢集車隊的管理員。 Google Cloud
建議您自動升級 GKE 叢集。 自動升級是全代管功能,可根據Google Cloud決定的發布時間表,自動更新叢集 (控制層和節點)。這不需要運算子介入。不過,如果您想進一步控管叢集的升級方式和時間,本教學課程將逐步說明如何升級多個叢集,讓應用程式在所有叢集上執行。接著,它會使用多叢集 Ingress 逐一排空叢集,然後再升級。
架構
本教學課程使用下列架構。共有三個叢集:兩個叢集 (blue 和 green) 是相同的叢集,部署的應用程式也相同,另一個叢集 (ingress-config) 則是控制層叢集,用於設定多叢集 Ingress。在本教學課程中,您會將範例應用程式部署至兩個應用程式叢集 (blue 和 green 叢集)。

目標
- 建立三個 GKE 叢集,並註冊為機群。
- 將一個 GKE 叢集 (
ingress-config) 設定為中央設定叢集。 - 將範例應用程式部署至其他 GKE 叢集。
- 設定多叢集 Ingress,將用戶端流量傳送至在兩個應用程式叢集上執行的應用程式。
- 為應用程式設定負載產生器,並設定監控功能。
- 從多叢集 Ingress 移除 (排空) 一個應用程式叢集,並升級排空的叢集。
- 使用多叢集 Ingress 將流量溢回升級後的叢集。
費用
在本文件中,您會使用下列 Google Cloud計費元件:
如要根據預測用量估算費用,請使用 Pricing Calculator。
完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」。
事前準備
- 本教學課程需要您設定多叢集 Ingress,
以便設定下列項目:
- 兩個以上的叢集具有相同應用程式,例如命名空間、部署和服務,且這些應用程式會在所有叢集上執行。
- 所有叢集都已停用自動升級功能。
- 叢集是虛擬私有雲原生叢集,使用別名 IP 位址範圍
- 啟用 HTTP 負載平衡 (預設為啟用)。
gcloud --version必須為 369 以上。 GKE 叢集註冊步驟取決於這個版本或更高版本。
-
在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
選取或建立專案所需的角色
- 選取專案:選取專案時,不需具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
-
建立專案:如要建立專案,您必須具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
在 Google Cloud 控制台中啟用 Cloud Shell。
設定您的預設專案:
export PROJECT=$(gcloud info --format='value(config.project)') gcloud config set project ${PROJECT}啟用 GKE、Hub 和
multiclusteringressAPI:gcloud services enable container.googleapis.com \ gkehub.googleapis.com \ multiclusteringress.googleapis.com \ multiclusterservicediscovery.googleapis.com
設定環境
在 Cloud Shell 中複製存放區,取得本教學課程的檔案:
cd ${HOME} git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples建立
WORKDIR目錄:cd kubernetes-engine-samples/networking/gke-multicluster-upgrade-mci/ export WORKDIR=`pwd`
建立 GKE 叢集並註冊至 Hub
在本節中,您將建立三個 GKE 叢集,並註冊至 GKE Hub。
建立 GKE 叢集
在 Cloud Shell 中建立三個 GKE 叢集:
gcloud container clusters create ingress-config --location us-west1-a \ --no-enable-autoupgrade --num-nodes=4 \ --enable-ip-alias --workload-pool=${PROJECT}.svc.id.goog --quiet --async gcloud container clusters create blue --location us-west1-b --num-nodes=3 \ --no-enable-autoupgrade --enable-ip-alias \ --workload-pool=${PROJECT}.svc.id.goog --quiet --async gcloud container clusters create green --location us-west1-c --num-nodes=3 \ --no-enable-autoupgrade --enable-ip-alias \ --workload-pool=${PROJECT}.svc.id.goog --quiet在本教學課程中,您會在單一區域的三個不同可用區建立叢集:
us-west1-a、us-west1-b和us-west1-c。如要進一步瞭解區域和可用區,請參閱「地理位置與區域」一文。請稍候幾分鐘,等待所有叢集建立完成。確認叢集正在執行:
gcloud container clusters list輸出結果會與下列內容相似:
NAME: ingress-config LOCATION: us-west1-a MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.233.186.135 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 4 STATUS: RUNNING NAME: blue LOCATION: us-west1-b MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 34.82.35.222 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING NAME: green LOCATION: us-west1-c MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.185.204.26 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING建立
kubeconfig檔案,並連線至所有叢集,在kubeconfig檔案中產生項目:touch gke-upgrade-kubeconfig export KUBECONFIG=gke-upgrade-kubeconfig gcloud container clusters get-credentials ingress-config \ --location us-west1-a --project ${PROJECT} gcloud container clusters get-credentials blue --location us-west1-b \ --project ${PROJECT} gcloud container clusters get-credentials green --location us-west1-c \ --project ${PROJECT}您可以使用
kubeconfig檔案,為每個叢集建立使用者和情境,藉此建立叢集的驗證。建立kubeconfig檔案後,即可在叢集之間快速切換環境。確認
kubeconfig檔案中有三個叢集:kubectl config view -ojson | jq -r '.clusters[].name'輸出內容如下:
gke_gke-multicluster-upgrades_us-west1-a_ingress-config gke_gke-multicluster-upgrades_us-west1-b_blue gke_gke-multicluster-upgrades_us-west1-c_green取得三個叢集的結構定義,以供後續使用:
export INGRESS_CONFIG_CLUSTER=$(kubectl config view -ojson | jq \ -r '.clusters[].name' | grep ingress-config) export BLUE_CLUSTER=$(kubectl config view -ojson | jq \ -r '.clusters[].name' | grep blue) export GREEN_CLUSTER=$(kubectl config view -ojson | jq \ -r '.clusters[].name' | grep green) echo -e "${INGRESS_CONFIG_CLUSTER}\n${BLUE_CLUSTER}\n${GREEN_CLUSTER}"輸出內容如下:
gke_gke-multicluster-upgrades_us-west1-a_ingress-config gke_gke-multicluster-upgrades_us-west1-b_blue gke_gke-multicluster-upgrades_us-west1-c_green
將 GKE 叢集註冊至機群
將叢集註冊至機群後,您就能在混合式環境中運作 Kubernetes 叢集。向機群註冊的叢集可以使用進階 GKE 功能,例如多叢集 Ingress。如要將 GKE 叢集註冊至機群,可以直接使用 Google Cloud服務帳戶,或採用建議的 Workload Identity Federation for GKE 方法,讓 GKE 叢集中的 Kubernetes 服務帳戶做為 Identity and Access Management 服務帳戶。
將三個叢集註冊為機群:
gcloud container fleet memberships register ingress-config \ --gke-cluster=us-west1-a/ingress-config \ --enable-workload-identity gcloud container fleet memberships register blue \ --gke-cluster=us-west1-b/blue \ --enable-workload-identity gcloud container fleet memberships register green \ --gke-cluster=us-west1-c/green \ --enable-workload-identity確認叢集已註冊:
gcloud container fleet memberships list輸出結果會與下列內容相似:
NAME: blue EXTERNAL_ID: 401b4f08-8246-4f97-a6d8-cf1b78c2a91d NAME: green EXTERNAL_ID: 8041c36a-9d42-40c8-a67f-54fcfd84956e NAME: ingress-config EXTERNAL_ID: 65ac48fe-5043-42db-8b1e-944754a0d725透過 Hub 啟用
multiclusteringress功能,將ingress-config叢集設為多叢集 Ingress 的設定叢集:gcloud container fleet ingress enable --config-membership=ingress-config上述指令會將
MulticlusterIngress和MulticlusterServiceCRD (自訂資源定義) 新增至ingress-config叢集。這個指令需要幾分鐘才能完成。請稍候片刻,再進行下一個步驟。確認
ingress-cluster叢集已成功設定多叢集 Ingress:watch gcloud container fleet ingress describe請等待輸出內容如下所示:
createTime: '2022-07-05T10:21:40.383536315Z' membershipStates: projects/662189189487/locations/global/memberships/blue: state: code: OK updateTime: '2022-07-08T10:59:44.230329189Z' projects/662189189487/locations/global/memberships/green: state: code: OK updateTime: '2022-07-08T10:59:44.230329950Z' projects/662189189487/locations/global/memberships/ingress-config: state: code: OK updateTime: '2022-07-08T10:59:44.230328520Z' name: projects/gke-multicluster-upgrades/locations/global/features/multiclusteringress resourceState: state: ACTIVE spec: multiclusteringress: configMembership: projects/gke-multicluster-upgrades/locations/global/memberships/ingress-config state: state: code: OK description: Ready to use updateTime: '2022-07-08T10:57:33.303543609Z' updateTime: '2022-07-08T10:59:45.247576318Z'如要結束
watch指令,請按 Control+C 鍵。
將範例應用程式部署至藍色和綠色叢集
在 Cloud Shell 中,將範例
whereami應用程式部署至blue和green叢集:kubectl --context ${BLUE_CLUSTER} apply -f ${WORKDIR}/application-manifests kubectl --context ${GREEN_CLUSTER} apply -f ${WORKDIR}/application-manifests稍候幾分鐘,確認
blue和green叢集中的所有 Pod 狀態都為Running:kubectl --context ${BLUE_CLUSTER} get pods kubectl --context ${GREEN_CLUSTER} get pods輸出結果會與下列內容相似:
NAME READY STATUS RESTARTS AGE whereami-deployment-756c7dc74c-zsmr6 1/1 Running 0 74s NAME READY STATUS RESTARTS AGE whereami-deployment-756c7dc74c-sndz7 1/1 Running 0 68s.
設定多叢集 Ingress
在本節中,您將建立多叢集 Ingress,將流量傳送至 blue 和 green 叢集上執行的應用程式。您可以使用 Cloud Load Balancing 建立負載平衡器,並將 blue 和 green 叢集中的 whereami 應用程式設為後端。如要建立負載平衡器,您需要兩項資源:MultiClusterIngress 和一或多個 MultiClusterServices。MultiClusterIngress 和 MultiClusterService 物件是多叢集類似項目,適用於單一叢集環境中現有的 Kubernetes Ingress 和 Service 資源。
在 Cloud Shell 中,將
MulticlusterIngress資源部署至ingress-config叢集:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply -f ${WORKDIR}/multicluster-manifests/mci.yaml輸出內容如下:
multiclusteringress.networking.gke.io/whereami-mci created將
MulticlusterService資源部署至ingress-config叢集:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply -f ${WORKDIR}/multicluster-manifests/mcs-blue-green.yaml輸出內容如下:
multiclusterservice.networking.gke.io/whereami-mcs created如要比較這兩項資源,請按照下列步驟操作:
檢查
MulticlusterIngress資源:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusteringress -o yaml輸出內容包含下列項目:
spec: template: spec: backend: serviceName: whereami-mcs servicePort: 8080MulticlusterIngress資源與 Kubernetes Ingress 資源類似,但serviceName規格指向MulticlusterService資源。檢查
MulticlusterService資源:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusterservice -o yaml輸出內容包含下列項目:
spec: clusters: - link: us-west1-b/blue - link: us-west1-c/green template: spec: ports: - name: web port: 8080 protocol: TCP targetPort: 8080 selector: app: whereamiMulticlusterService資源與 Kubernetes Service 資源類似,但具有clusters規格。clusters值是已註冊叢集的清單,其中會建立MulticlusterService資源。確認
MulticlusterIngress資源已建立負載平衡器,且後端服務指向MulticlusterService資源:watch kubectl --context ${INGRESS_CONFIG_CLUSTER} \ get multiclusteringress -o jsonpath="{.items[].status.VIP}"最多可能需要 10 分鐘。請等待輸出內容與下列內容相似:
34.107.246.9如要結束
watch指令,請按Control+C。
在 Cloud Shell 中,取得 Cloud Load Balancing VIP:
export GCLB_VIP=$(kubectl --context ${INGRESS_CONFIG_CLUSTER} \ get multiclusteringress -o json | jq -r '.items[].status.VIP') \ && echo ${GCLB_VIP}輸出結果會與下列內容相似:
34.107.246.9使用
curl存取負載平衡器和已部署的應用程式:curl ${GCLB_VIP}輸出結果會與下列內容相似:
{ "cluster_name": "green", "host_header": "34.107.246.9", "pod_name": "whereami-deployment-756c7dc74c-sndz7", "pod_name_emoji": "😇", "project_id": "gke-multicluster-upgrades", "timestamp": "2022-07-08T14:26:07", "zone": "us-west1-c" }重複執行
curl指令。請注意,系統會在部署至兩個叢集 (blue和green) 的whereami應用程式之間,進行負載平衡。
設定負載產生器
在本節中,您將設定 loadgenerator 服務,產生前往 Cloud Load Balancing VIP 的用戶端流量。首先,流量會傳送至 blue 和 green 叢集,因為 MulticlusterService 資源已設定為將流量傳送至這兩個叢集。稍後,您會設定 MulticlusterService 資源,將流量傳送至單一叢集。
設定
loadgenerator資訊清單,將用戶端流量傳送至 Cloud Load Balancing:TEMPLATE=loadgen-manifests/loadgenerator.yaml.templ && envsubst < ${TEMPLATE} > ${TEMPLATE%.*}在
ingress-config叢集中部署loadgenerator:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply -f ${WORKDIR}/loadgen-manifests確認
ingress-config叢集中的loadgeneratorPod 狀態皆為Running:kubectl --context ${INGRESS_CONFIG_CLUSTER} get pods輸出結果會與下列內容相似:
NAME READY STATUS RESTARTS AGE loadgenerator-5498cbcb86-hqscp 1/1 Running 0 53s loadgenerator-5498cbcb86-m2z2z 1/1 Running 0 53s loadgenerator-5498cbcb86-p56qb 1/1 Running 0 53s如果任何 Pod 的狀態不是
Running,請稍候幾分鐘,然後再次執行指令。
監控流量
在本節中,您將使用Google Cloud 控制台監控 whereami 應用程式的流量。
在上一節中,您設定了 loadgenerator 部署作業,透過 Cloud Load Balancing VIP 存取 whereami 應用程式,模擬用戶端流量。您可以透過Google Cloud 控制台監控這些指標。您必須先設定監控功能,才能在排空叢集進行升級時監控叢集 (詳情請參閱下一節)。
建立資訊主頁,顯示傳送至多叢集 Ingress 的流量:
export DASH_ID=$(gcloud monitoring dashboards create \ --config-from-file=dashboards/cloud-ops-dashboard.json \ --format=json | jq -r ".name" | awk -F '/' '{print $4}')輸出結果會與下列內容相似:
Created [721b6c83-8f9b-409b-a009-9fdf3afb82f8]您可以在Google Cloud 控制台中查看 Cloud Load Balancing 的指標。產生網址:
echo "https://console.cloud.google.com/monitoring/dashboards/builder/${DASH_ID}/?project=${PROJECT}&timeDomain=1h"輸出結果會與下列內容相似:
https://console.cloud.google.com/monitoring/dashboards/builder/721b6c83-8f9b-409b-a009-9fdf3afb82f8/?project=gke-multicluster-upgrades&timeDomain=1h"在瀏覽器中前往上一個指令產生的網址。
範例應用程式的流量會從負載產生器傳送至
blue和green叢集 (由叢集所在的兩個可用區表示)。時間軸指標圖表會顯示前往兩個後端的流量。k8s1-滑鼠懸停在值上時,會顯示兩個前端MulticlusterServices的網路端點群組 (NEG) 在blue和green叢集中執行。
排空並升級 blue 叢集
在本節中,您將排空 blue 叢集。排空叢集是指從負載平衡集區中移除叢集。排空 blue 叢集後,所有要前往應用程式的用戶端流量都會導向 green 叢集。如要監控這項程序,請參閱上一節。叢集排空後,即可升級排空的叢集。升級完成後,即可將其放回負載平衡集區。重複這些步驟,即可升級其他叢集 (本教學課程未顯示)。
如要排空 blue 叢集,請更新 ingress-cluster 叢集中的 MulticlusterService 資源,並從 clusters 規格中移除 blue 叢集。
排空藍色叢集
在 Cloud Shell 中,更新
ingress-config叢集中的MulticlusterService資源:kubectl --context ${INGRESS_CONFIG_CLUSTER} \ apply -f ${WORKDIR}/multicluster-manifests/mcs-green.yaml確認您在
clusters規格中只有green叢集:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusterservice \ -o json | jq '.items[].spec.clusters'輸出內容如下:
[ { "link": "us-west1-c/green" } ]clusters規格中只列出green叢集,因此只有green叢集位於負載平衡集區中。您可以在Google Cloud 控制台查看 Cloud Load Balancing 指標。產生網址:
echo "https://console.cloud.google.com/monitoring/dashboards/builder/${DASH_ID}/?project=${PROJECT}&timeDomain=1h"在瀏覽器中,前往上一個指令產生的網址。
圖表顯示只有
green叢集收到流量。
升級 blue 叢集
blue 叢集不再接收任何用戶端流量,因此您可以升級叢集 (控制層和節點)。
在 Cloud Shell 中,取得叢集的目前版本:
gcloud container clusters list輸出結果會與下列內容相似:
NAME: ingress-config LOCATION: us-west1-a MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.233.186.135 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 4 STATUS: RUNNING NAME: blue LOCATION: us-west1-b MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 34.82.35.222 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING NAME: green LOCATION: us-west1-c MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.185.204.26 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING叢集版本可能因完成本教學課程的時間而異。
取得可用區中的可用
MasterVersions版本清單:gcloud container get-server-config --location us-west1-b --format=json | jq \ '.validMasterVersions[0:20]'輸出結果會與下列內容相似:
[ "1.24.1-gke.1400", "1.23.7-gke.1400", "1.23.6-gke.2200", "1.23.6-gke.1700", "1.23.6-gke.1501", "1.23.6-gke.1500", "1.23.5-gke.2400", "1.23.5-gke.1503", "1.23.5-gke.1501", "1.22.10-gke.600", "1.22.9-gke.2000", "1.22.9-gke.1500", "1.22.9-gke.1300", "1.22.8-gke.2200", "1.22.8-gke.202", "1.22.8-gke.201", "1.22.8-gke.200", "1.21.13-gke.900", "1.21.12-gke.2200", "1.21.12-gke.1700" ]取得可用區中可用的
NodeVersions版本清單:gcloud container get-server-config --location us-west1-b --format=json | jq \ '.validNodeVersions[0:20]'輸出結果會與下列內容相似:
[ "1.24.1-gke.1400", "1.23.7-gke.1400", "1.23.6-gke.2200", "1.23.6-gke.1700", "1.23.6-gke.1501", "1.23.6-gke.1500", "1.23.5-gke.2400", "1.23.5-gke.1503", "1.23.5-gke.1501", "1.22.10-gke.600", "1.22.9-gke.2000", "1.22.9-gke.1500", "1.22.9-gke.1300", "1.22.8-gke.2200", "1.22.8-gke.202", "1.22.8-gke.201", "1.22.8-gke.200", "1.22.7-gke.1500", "1.22.7-gke.1300", "1.22.7-gke.900" ]為
MasterVersions和NodeVersions清單中的MasterVersion和NodeVersion版本設定環境變數,且該版本高於blue叢集的目前版本,例如:export UPGRADE_VERSION="1.22.10-gke.600"本教學課程使用
。1.22.10-gke.600版。叢集版本可能因完成本教學課程時可用的版本而異。如要進一步瞭解如何升級,請參閱「升級叢集和節點集區」。升級
blue叢集的control plane節點:gcloud container clusters upgrade blue \ --location us-west1-b --master --cluster-version ${UPGRADE_VERSION}按下
Y確認升級。這項程序會在幾分鐘內完成。請等待升級完成再繼續操作。
更新完成後,輸出內容如下:
Updated [https://container.googleapis.com/v1/projects/gke-multicluster-upgrades/zones/us-west1-b/clusters/blue].升級
blue叢集中的節點:gcloud container clusters upgrade blue \ --location=us-west1-b --node-pool=default-pool \ --cluster-version ${UPGRADE_VERSION}按下
Y鍵確認更新。這項程序需要幾分鐘才能完成。請等待節點升級完成,再繼續操作。
升級完成後,輸出內容如下:
Upgrading blue... Done with 3 out of 3 nodes (100.0%): 3 succeeded...done. Updated [https://container.googleapis.com/v1/projects/gke-multicluster-upgrades/zones/us-west1-b/clusters/blue].確認
blue叢集已升級:gcloud container clusters list輸出結果會與下列內容相似:
NAME: ingress-config LOCATION: us-west1-a MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.233.186.135 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 4 STATUS: RUNNING NAME: blue LOCATION: us-west1-b MASTER_VERSION: 1.22.10-gke.600 MASTER_IP: 34.82.35.222 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.10-gke.600 NUM_NODES: 3 STATUS: RUNNING NAME: green LOCATION: us-west1-c MASTER_VERSION: 1.22.8-gke.202 MASTER_IP: 35.185.204.26 MACHINE_TYPE: e2-medium NODE_VERSION: 1.22.8-gke.202 NUM_NODES: 3 STATUS: RUNNING
將 blue 叢集加回負載平衡集區
在本節中,您會將 blue 叢集加回負載平衡集區。
在 Cloud Shell 中,確認應用程式部署作業正在
blue叢集上執行,再將叢集加回負載平衡集區:kubectl --context ${BLUE_CLUSTER} get pods輸出結果會與下列內容相似:
NAME READY STATUS RESTARTS AGE whereami-deployment-756c7dc74c-xdnb6 1/1 Running 0 17m更新
MutliclusterService資源,將blue叢集加回負載平衡集區:kubectl --context ${INGRESS_CONFIG_CLUSTER} apply \ -f ${WORKDIR}/multicluster-manifests/mcs-blue-green.yaml確認叢集規格中同時有
blue和green叢集:kubectl --context ${INGRESS_CONFIG_CLUSTER} get multiclusterservice \ -o json | jq '.items[].spec.clusters'輸出內容如下:
[ { "link": "us-west1-b/blue" }, { "link": "us-west1-c/green" } ]blue和green叢集現在位於clusters規格中。您可以在Google Cloud 控制台中查看 Cloud Load Balancing 指標。產生網址:
echo "https://console.cloud.google.com/monitoring/dashboards/builder/${DASH_ID}/?project=${PROJECT}&timeDomain=1h"在瀏覽器中前往上一個指令產生的網址。
圖表顯示藍色和綠色叢集都透過負載平衡器,接收負載產生器傳送的流量。
恭喜!您已使用多叢集 Ingress,成功升級多叢集架構中的 GKE 叢集。
如要升級
green叢集,請重複執行程序,排空並升級藍色叢集,並將所有blue替換為green。
清除所用資源
為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的 Google Cloud 專案。或者,你也可以刪除個別資源。
刪除叢集
在 Cloud Shell 中,取消註冊並刪除
blue和green叢集:gcloud container fleet memberships unregister blue --gke-cluster=us-west1-b/blue gcloud container clusters delete blue --location us-west1-b --quiet gcloud container fleet memberships unregister green --gke-cluster=us-west1-c/green gcloud container clusters delete green --location us-west1-c --quiet從
ingress-config叢集刪除MuticlusterIngress資源:kubectl --context ${INGRESS_CONFIG_CLUSTER} delete -f ${WORKDIR}/multicluster-manifests/mci.yaml這個指令會從專案中刪除 Cloud Load Balancing 資源。
取消註冊並刪除
ingress-config叢集:gcloud container fleet memberships unregister ingress-config --gke-cluster=us-west1-a/ingress-config gcloud container clusters delete ingress-config --location us-west1-a --quiet確認所有叢集都已刪除:
gcloud container clusters list輸出內容如下:
*<null>*重設
kubeconfig檔案:unset KUBECONFIG移除
WORKDIR資料夾:cd ${HOME} rm -rf ${WORKDIR}
刪除專案
- 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。
後續步驟
- 進一步瞭解多叢集 Ingress。
- 瞭解如何在多個叢集部署多叢集 Ingress。
- 查看 Google Cloud 的參考架構、圖表和最佳做法。歡迎瀏覽 Cloud Architecture Center。