经典集群: 为什么我无法部署负载均衡器?
在集群中部署或更新网络负载均衡器(NLB)服务时,排查相关问题。
经典基础设施
在经典集群中描述 ibm-cloud-provider-vlan-ip-config ConfigMap 时,可能会看到与以下示例输出类似的错误信息。
oc describe cm ibm-cloud-provider-vlan-ip-config -n kube-system
Warning CreatingLoadBalancerFailed ... ErrorSubnetLimitReached: There are already the maximum number of subnets permitted in this VLAN.
在标准集群中,首次在某个专区中创建集群时,会自动在 IBM Cloud 基础架构帐户中供应该专区中的公用 VLAN 和专用 VLAN。
在该专区中,会在指定的公用 VLAN 上请求 1 个公共可移植子网,并在指定的专用 VLAN 上请求 1 个专用可移植子网。 对于 Red Hat OpenShift on IBM Cloud,VLAN 限制为 40 个子网。 如果某个专区中集群的 VLAN 已达到该限制,那么您可能没有可用于创建网络负载均衡器 (NLB) 的可移植公共 IP 地址。
要查看 VLAN 的子网数,请执行以下操作:
- 在 IBM Cloud 基础设施控制台中,选择 “网络” > “IP管理” > “VLAN”。
- 单击用于创建集群的 VLAN 的 VLAN 编号。 查看子网部分以了解是否存在 40 个或更多子网。
如果需要新的 VLAN,请通过联系 IBM Cloud 支持进行订购。
然后,创建集群以使用这一新的 VLAN。
如果有其他 VLAN 可用,那么可以在现有集群中设置 VLAN 生成。 在此之后,即可将新的工作程序节点添加到集群,这些节点将使用具有可用子网的其他 VLAN。 要检查VLAN生成树功能是否已启用,请使用 ibmcloud oc vlan spanning get --region REGION 命令。
如果并未使用 VLAN 中的所有子网,那么可以通过将 VLAN 上的子网添加到集群来复用这些子网。
-
检查要使用的子网是否可用。
使用的基础架构帐户可能在多个 IBM Cloud 帐户之间共享。 在这种情况下,即使您运行
ibmcloud oc subnets命令来查看具有已绑定集群的子网,也只能看到您自己集群的相关信息。 请与 Infrastructure 帐户所有者核实以确保这些子网可用,并且未由其他任何帐户或团队使用。 -
使用
ibmcloud oc cluster subnet add命令, 将现有子网分配给您的集群。 -
验证子网已成功创建并添加到集群。 子网 CIDR 在 Subnet VLANs 部分中列出。
ibmcloud oc cluster get --cluster CLUSTER_NAME --show-resources在此输出示例中,第二个子网已添加到
2234945公用 VLAN:Subnet VLANs VLAN ID Subnet CIDR Public User-managed 2234947 10.xxx.xx.xxx/29 false false 2234945 169.xx.xxx.xxx/29 true false 2234945 169.xx.xxx.xxx/29 true false -
请确认您添加的子网中的可移植 IP 地址已被用作负载均衡器的 EXTERNAL-IP。 各项服务可能需要几分钟时间才能开始使用新子网中的可移植IP地址。
oc get svc -n kube-system