VPC 叢集: 為何無法透過負載平衡器來連接我的應用程式?
當您的應用程式無法透過 VPC 負載平衡器服務存取時,請針對 VPC 負載平衡器的連線問題進行疑難排解。
基礎架構提供者:VPC
您透過在 VPC 叢集中建立 Kubernetes LoadBalancer 服務,將您的應用程式對外公開。 但嘗試使用指派給 Kubernetes LoadBalancer 的主機名稱來連接至應用程式時,連線失敗或逾時。
當您執行 oc describe svc <kubernetes_lb_service_name>`` 時,可能會在「 事件 」區段中看到類似以下其中一則的警告訊息:
The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service is offline.
The VPC load balancer that routes requests to this Kubernetes `LoadBalancer` service was deleted from your VPC.
當您在叢集裡建立 Kubernetes LoadBalancer 服務時,會在 VPC 自動建立 VPC 負載平衡器。 VPC 負載平衡器僅將要求遞送到 Kubernetes LoadBalancer 服務公開的應用程式。
在以下情況下,請求將無法轉發至您的應用程式:
- VPC 安全群組正在封鎖工作者節點的送入資料流量,包括對應用程式的送入要求。
- VPC 負載平衡器已離線,例如因為負載平衡器佈建錯誤或 VSI 連線錯誤。
- VPC 負載平衡器已透過 VPC 主控台或 CLI 刪除。
- VPC 負載平衡器的 DNS 項目仍在登錄中。
- 您已達到每個帳戶允許的 VPC 負載平衡器數目上限。 請檢查 VPC 配額文件,以取得 VPC 中所有 VPC 叢集的 VPC 資源配額。
驗證沒有任何 VPC 安全群組封鎖流向叢集的資料流量,且 VPC 負載平衡器可用。
-
驗證 Kubernetes
LoadBalancer服務的 VPC 負載平衡器是否存在。 在輸出結果中,請尋找格式為kube-<cluster_ID>-<kubernetes_lb_service_UID>的 VPC 負載平衡器。 您可以透過執行oc get svc <service_name> -o yaml來取得 KubernetesLoadBalancer服務的 UID。ibmcloud is load-balancers- 如果未列出 VPC 負載平衡器,則由於下列其中一個原因,它不存在:
- 您已達到每個帳戶允許的 VPC 負載平衡器數目上限。 在您的 VPC 中的所有 VPC 叢集中,最多可建立 20 個 VPC 負載平衡器。 會為您建立的每個 Kubernetes
LoadBalancer服務建立一個 VPC 負載平衡器,而該 VPC 負載平衡器只會將要求遞送到該個 KubernetesLoadBalancer服務。 - 該 VPC 負載平衡器已透過 VPC 控制台或 CLI 刪除。 若要為您的 Kubernetes
LoadBalancer服務重新建立 VPC 負載平衡器,請執行ibmcloud oc cluster master refresh --cluster <cluster_name_or_id>來重新啟動 Kubernetes 主節點。
若要移除 VPC 叢集中某個應用程式的負載平衡設定,請執行
oc delete svc <kubernetes_lb_service_name>指令,以刪除 KubernetesLoadBalancer服務。 與 KubernetesLoadBalancer服務關聯的 VPC 負載平衡器會自動從 VPC 刪除。 -
如果負載平衡器存在,請 檢視連接至它的 VPC 安全群組。 如果您已對自動連接至負載平衡器的
kube-lbaas-<cluster-id>安全群組進行任何修改,請將原始規則設回安全群組中。- 如果列出 VPC 負載平衡器,且您尚未修改任何連接的安全群組,則它可能由於下列原因而無法回應:
- 其 DNS 項目可能仍在登錄中。 建立 VPC 負載平衡器時,主機名稱會透過公用 DNS 登錄。 有時,此 DNS 記錄需要幾分鐘時間才會同步到您的客戶所使用的特定 DNS 伺服器上。 您可以等待主機名稱在 DNS 中登錄,或是直接使用其中一個 IP 位址存取 VPC 負載平衡器。 若要尋找 VPC 負載平衡器 IP 位址,請執行
ibmcloud is lb <LB_ID>並尋找 公用 IP 欄位。 - 如果幾分鐘後仍無法連線至負載平衡器,可能是由於資源配置或連線問題而導致其離線。 請開立 IBM Cloud 支援案例。 針對類型,請選取技術。 針對種類,請選取 VPC 區段中的網路。 在說明中,請包含您的叢集 ID 和 VPC 負載平衡器 ID。
- 其 DNS 項目可能仍在登錄中。 建立 VPC 負載平衡器時,主機名稱會透過公用 DNS 登錄。 有時,此 DNS 記錄需要幾分鐘時間才會同步到您的客戶所使用的特定 DNS 伺服器上。 您可以等待主機名稱在 DNS 中登錄,或是直接使用其中一個 IP 位址存取 VPC 負載平衡器。 若要尋找 VPC 負載平衡器 IP 位址,請執行
- 如果列出 VPC 負載平衡器,且您尚未修改任何連接的安全群組,則它可能由於下列原因而無法回應: