本教程介绍了如何使用多集群 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 的以下收费组件:
您可使用价格计算器根据您的预计使用情况来估算费用。
完成本文档中描述的任务后,您可以通过删除所创建的资源来避免继续计费。如需了解详情,请参阅清理。
准备工作
- 本教程要求您设置多集群 Ingress,以完成以下设置:
- 两个或更多集群,相同的应用(例如命名空间、Deployment 和 Service)在所有集群上运行。
- 关闭所有集群的自动升级。
- 集群是使用别名 IP 地址范围的 VPC 原生集群
- 启用 HTTP 负载均衡(默认启用)。
gcloud --version
必须为 369 或更高。GKE 集群注册步骤依赖于此版本或更高版本。
-
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.
设置默认项目:
export PROJECT=$(gcloud info --format='value(config.project)') gcloud config set project ${PROJECT}
启用 GKE、Hub 和
multiclusteringress
API: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 Enterprise Hub。
创建 GKE 集群
在 Cloud Shell 中,创建三个 GKE 集群:
gcloud container clusters create ingress-config --zone us-west1-a \ --release-channel=None --no-enable-autoupgrade --num-nodes=4 \ --enable-ip-alias --workload-pool=${PROJECT}.svc.id.goog --quiet --async gcloud container clusters create blue --zone us-west1-b --num-nodes=3 \ --release-channel=None --no-enable-autoupgrade --enable-ip-alias \ --workload-pool=${PROJECT}.svc.id.goog --quiet --async gcloud container clusters create green --zone us-west1-c --num-nodes=3 \ --release-channel=None --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 \ --zone us-west1-a --project ${PROJECT} gcloud container clusters get-credentials blue --zone us-west1-b \ --project ${PROJECT} gcloud container clusters get-credentials green --zone 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
和MulticlusterService
CRD(自定义资源定义)添加到ingress-config
集群。此命令需要几分钟才能完成。请等待命令完成,然后再继续下一步。验证是否为多集群 Ingress 成功配置了
ingress-cluster
集群: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: 8080
MulticlusterIngress
资源与 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: whereami
MulticlusterService
资源与 Kubernetes 服务资源类似,但它有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
Service,以向 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
集群中的loadgenerator
pod 是否为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 --zone 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 --zone 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
列表中且高于blue
集群的当前版本的MasterVersion
和NodeVersion
版本设置环境变量,例如:export UPGRADE_VERSION="1.22.10-gke.600"
本教程使用
1.22.10-gke.600
版本。您的集群版本可能会有所不同,具体取决于您完成本教程时可用的版本。如需详细了解如何升级,请参阅升级集群和节点池。升级
blue
集群的control plane
节点:gcloud container clusters upgrade blue \ --zone 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 \ --zone=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 --zone us-west1-b --quiet gcloud container fleet memberships unregister green --gke-cluster=us-west1-c/green gcloud container clusters delete green --zone 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 --zone us-west1-a --quiet
验证所有集群是否已删除:
gcloud container clusters list
输出如下所示:
*<null>*
重置
kubeconfig
文件:unset KUBECONFIG
移除
WORKDIR
文件夹:cd ${HOME} rm -rf ${WORKDIR}
删除项目
- 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.
后续步骤
- 详细了解多集群 Ingress。
- 了解如何跨集群部署多集群 Ingress。
- 探索有关 Google Cloud 的参考架构、图表和最佳实践。查看我们的 Cloud 架构中心。