22. 创建全局 Anycast GlobalAddressPoolClaim

预计完成时间:15 分钟

可操作组件的所有者:KUB

技能配置文件:部署工程师

GlobalAddressPoolClaim 资源是 Google Distributed Cloud (GDC) 经过网闸隔离的部署中分配所有任播 IP 地址的来源。

在全局控制平面的引导过程中,需要使用 任播 CIDR 来创建初始 GlobalAddressPoolClaim 资源。anycastCIDR 字段是用于多可用区任播网络的 IP 地址块。

请按照以下步骤创建 GlobalAddressPoolClaim 资源:

  1. 创建 GlobalAddressPoolClaim 自定义资源:

    gdcloud system ipam create-gapc --anycast-cidr ANYCAST_CIDR --output-file OUTPUT_FILE
    

    替换以下内容:

    • ANYCAST_CIDR:用于创建初始 GlobalAddressPoolClaim 的任播 CIDR,该初始 GlobalAddressPoolClaim 是在 GDC 部署中分配所有任播 IP 地址的来源。例如 10.8.0.0/24
    • OUTPUT_FILE:输出文件的名称。例如 global-address-pool-claim.yaml

    生成的 GlobalAddressPoolClaim 自定义资源 YAML 文件类似于以下示例:

    apiVersion: ipam.global.private.gdc.goog/v1alpha1
    kind: GlobalAddressPoolClaim
    metadata:
      namespace: gpc-system
      name: global-anycast-pool-ipv4-gapc
    spec:
      ipFamily: IPv4
      staticIPRanges:
      - size: 256
        startIPAddress: 10.8.0.0
    
  2. OUTPUT_FILE 中,再添加一个 GlobalAddressPoolClaim,并用一条“---”线将其与 global-anycast-pool-ipv4-gapc 分隔开。添加部分与以下内容完全相同:

    ---
    apiVersion: ipam.global.private.gdc.goog/v1alpha1
    kind: GlobalAddressPoolClaim
    metadata:
      namespace: gpc-system
      name: root-anycast-pool-ipv4-gapc
    spec:
      ipFamily: IPv4
      parentReference:
        name: global-anycast-pool-ipv4-gapc
        type: GlobalAddressPoolClaim
      size: 30
    
  3. 使用根管理员集群的管理员 Kubernetes 配置,并检索全局 API 的管理员 Kubernetes 配置:

    kubectl get secrets -n global-kube-system kube-admin-test-kubeconfig -ojsonpath="{.data.value}" | base64 -d > HOME_DIRECTORY/root-global-kubeconfig
    
  4. 使用根管理员集群的管理员 Kubernetes 配置转发全局 API 的端口:

    kubectl port-forward -n global-kube-system service/kube-svc 6449:6449 &> /dev/null &
    

    此步骤会在后台运行端口转发命令。如果该进程意外停止,您可以重新运行同一命令来重启该进程。

  5. OUTPUT_FILE 应用于全局根管理员集群:

     kubectl apply -f OUTPUT_FILE --kubeconfig=GLOBAL_ROOT_ADMIN_KUBECONFIG
    
  6. 验证 GlobalAddressPoolClaim 资源是否在 GDC 环境中可用:

    kubectl --kubeconfig HOME_DIRECTORY/root-global-kubeconfig get globalAddressPoolClaim -A
    

    输出必须包含以下两个条目,其中 READY 显示为 True

    NAMESPACE      NAME                                        PARENTNAME                      READY   STARTIP
    gpc-system     global-anycast-pool-ipv4-gapc                                               True    10.201.128.0
    gpc-system     root-anycast-pool-ipv4-gapc                 global-anycast-pool-ipv4-gapc   True    10.201.128.0