You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建跨双区域的GCP Kubernetes Engine集群并验证拓扑键?

创建跨区域GKE集群以验证区域拓扑键

嘿,刚好你要验证failure-domain.beta.kubernetes.io/region这个拓扑键,其实GKE可以通过跨区域节点池的方式实现单集群跨两个区域部署节点,完全满足你的需求,下面一步步来:

1. 创建初始区域集群

首先选其中一个区域作为集群控制平面的所在地,比如先以us-west1为例创建集群,初始节点池先指定一个可用区:

gcloud container clusters create multi-region-cluster \
  --region us-west1 \
  --node-locations us-west1-a \
  --machine-type e2-medium \
  --num-nodes 1

这里的--region指定了集群控制平面的区域,--node-locations是初始节点的可用区,你可以根据需求调整机器类型和节点数量。

2. 添加另一个区域的节点池

接下来给集群添加位于us-central1区域的节点池,这样集群就会有跨两个区域的节点了:

gcloud container node-pools create us-central-pool \
  --cluster multi-region-cluster \
  --region us-west1 \
  --node-locations us-central1-a,us-central1-b \
  --machine-type e2-medium \
  --num-nodes 2

注意这里的--region还是用集群控制平面所在的us-west1,但--node-locations可以直接指定其他区域的可用区,GKE会自动在目标区域创建节点并加入集群。

3. 验证节点的区域拓扑标签

部署完节点池后,用下面的命令查看所有节点的区域标签,确认failure-domain.beta.kubernetes.io/region是否正确设置:

kubectl get nodes -o custom-columns=NAME:.metadata.name,REGION:.metadata.labels.failure-domain\\.beta\\.kubernetes\\.io/region

输出应该会显示部分节点的REGION是us-west1,另一部分是us-central1,说明拓扑标签已经正确生效。

4. 测试拓扑键的实际作用

为了验证拓扑键能被调度器识别,可以创建一个带有节点亲和性的Pod,指定只调度到us-central1区域的节点:

apiVersion: v1
kind: Pod
metadata:
  name: region-affinity-test
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: failure-domain.beta.kubernetes.io/region
            operator: In
            values:
            - us-central1
  containers:
  - name: nginx
    image: nginx:alpine

部署这个Pod后,用kubectl describe pod region-affinity-test查看调度结果,确认它确实被分配到了us-central1区域的节点上,这就证明拓扑键正常工作了。

注意事项

  • 集群的控制平面仍然位于初始区域(us-west1),跨区域节点与控制平面之间会有一定网络延迟,但对于验证拓扑键的场景完全不影响。
  • 你可以根据需要调整两个节点池的机器类型、节点数量、可用区数量等参数。

内容的提问来源于stack exchange,提问作者jtee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:12:36