標準叢集: 為何無法部署負載平衡器?
在叢集中部署或更新網路負載平衡器 (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 已達到該限制,則可能沒有可攜式公用 IP 位址可用來建立網路負載平衡器 (NLB)。
若要檢視 VLAN 有多少子網路,請執行下列動作:
- 在 IBM Cloud 基礎架構控制台中,選擇「網路」>「IP 管理」>「VLAN」。
- 按一下您用來建立叢集之 VLAN 的 VLAN 號碼。 檢閱 Subnets 區段,以查看是否有 40 個以上的子網路。
如果您需要新的 VLAN,請與 IBM Cloud 支援中心聯絡,進行訂購。
然後,建立叢集,而叢集使用這個新的 VLAN。
如果您有另一個可用的 VLAN,可以在現有叢集裡設定 VLAN Spanning。 之後,您便可以將新的工作者節點新增至使用具有可用子網路之另一個 VLAN 的叢集。 若要檢查 VLAN 跨域功能是否已啟用,請使用 ibmcloud oc vlan spanning get --region REGION 指令。
如果並未使用 VLAN 中的所有子網路,則可以透過將 VLAN 上的子網路新增到叢集來重複使用這些子網路。
-
檢查要使用的子網路是否可用。
使用的基礎架構帳戶可能在多個 IBM Cloud 帳戶之間共用。 在這種情況下,即使您執行
ibmcloud oc subnets指令來查看具有 「已綁定叢集 」的子網,也只能看到您自己叢集的相關資訊。 請洽詢基礎架構帳戶擁有者,以確定子網路可供使用,且其他任何帳戶或團隊不在使用中。 -
請使用
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