经典集群: 为什么主状态具有 NLB 错误的入口 IP 地址?

经典基础设施

运行 ibmcloud oc cluster get -c <cluster_name_or_ID> 时,您会在 主状态 字段中看到以下错误消息。

CAE003: Unable to determine the ingress IP address for the network load balancer.

此外,当您运行 ibmcloud oc nlb-dns create 来为网络负载均衡器 (NLB) 创建子域时,该命令可能会失败,并显示以下消息: 找不到集群,输入参数不正确或者您没有必需的角色。

无法配置 Konnectivity 服务器,因为找不到暴露默认入口控制器的负载平衡器 IP 地址。 入口控制器的负载平衡器服务可能没有分配到 IP 地址,因为群集没有可用的可移植 IP 地址子网,或者负载平衡器设置未完成。

验证群集是否有可用子网,负载平衡器设置是否成功完成。

验证群集是否有可用子网

  1. 检查集群是否具有用于公用和专用子网的子网 CIDR。 如果设置了仅专用 VLAN 集群,那么可能只有专用子网。

    ibmcloud oc cluster get --cluster <cluster_name_or_ID> --show-resources
    

    示例输出

    NAME:                           <cluster_name>
    ...
    
    Subnet VLANs
    VLAN ID   Subnet CIDR        Public   User-managed
    2345678   10.xxx.xx.xxx/29   false    false
    2876543   169.xx.xxx.xxx/29  true     false
    
  2. 如果集群没有子网,请为集群创建子网将帐户中的现有子网添加到集群

  3. 如果群集有子网,请 检查是否有可用的可移植 IP 地址,如有必要,可 通过添加子网来增加可移植 IP 地址

  4. 刷新主站,重新启动 Konnectivity 设置,以便使用可用子网。

    ibmcloud oc cluster master refresh --cluster <cluster_name_or_ID>
    

验证负载均衡器设置是否已成功完成

  1. 检查负载平衡器的 ibm-cloud-provider-ip-* pod 是否处于运行状态。
    oc get pods -n ibm-system | grep ibm-cloud-provider-ip
    
  2. 如果 pod 未在运行,请查看 pod 详细信息中的 Events,以进一步对问题进行故障诊断。
    oc describe pod -n kube-system <pod_name>
    
  3. 解决负载平衡器 pod 问题后,刷新主站以重新启动 NLB 设置。
    ibmcloud oc cluster master refresh --cluster <cluster_name_or_ID>