標準叢集: 為何主節點狀態具有 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 伺服器,因為無法找到暴露預設 Ingress 控制器的負載平衡器 IP 位址。 Ingress 控制器的負載平衡器服務可能沒有被指派 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 是否處於 Running 狀態。
    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>