VPC 叢集: 為何我的應用程式無法透過 Ingress 進行連接?
當您的應用程式無法透過 Ingress 存取時,請針對 VPC 叢集中的 Ingress 連線問題進行疑難排解。
虛擬私有雲
您已在 VPC 叢集中為您的應用程式建立了一個 Ingress 資源,藉此將該應用程式對外公開。 當您嘗試使用 Ingress 子網域連接至應用程式時,連線失敗或逾時。
當您建立 VPC 叢集時,系統會自動在您的 VPC 中、叢集外部建立一個公有 VPC 負載平衡器與一個私有 VPC 負載平衡器。
VPC 負載平衡器會將請求路由至路由器所公開的應用程式。 在以下情況下,請求將無法轉發至您的應用程式:
- VPC 安全群組正在封鎖工作者節點的送入資料流量,包括對應用程式的送入要求。
- VPC 負載平衡器已離線,例如因為負載平衡器佈建錯誤或 VSI 連線錯誤。
- VPC 負載平衡器已透過 VPC 主控台或 CLI 刪除。
- VPC 負載平衡器的 DNS 項目仍在登錄中。
驗證沒有任何 VPC 安全群組封鎖流向叢集的資料流量,且 VPC 負載平衡器可用。
-
安裝「
infrastructure-service」外掛程式。 用於執行指令的字首是ibmcloud is。ibmcloud plugin install infrastructure-service -
請確認您的路由器所對應的 VPC 負載平衡器是否存在。 在輸出中,尋找以
kube-crtmgr-<cluster_ID>開頭的 VPC 負載平衡器 名稱。 如果您未安裝infrastructure-service外掛程式,請執行ibmcloud plugin install infrastructure-service來安裝它。ibmcloud is load-balancers- 如果未列出 VPC 負載平衡器,則它已透過 VPC 主控台或 CLI 刪除。 開啟 IBM Cloud 支援案例 並包括叢集 ID。
-
如果負載平衡器存在,請 檢視連接至它的 VPC 安全群組。 確保您尚未對
kube-lbaas-<cluster-id>安全群組進行任何修改,該安全群組在建立時會自動套用至 VPC ALB。- 如果您已修改
kube-lbaas-<cluster-id>安全群組,請在安全群組中重新設定原始規則。 - 如果您已移除
kube-lbaas-<cluster-id>安全群組,並將它取代為您所管理的一或多個安全群組,請確保您所設定的安全群組容許 ALB 的入埠資料流量。 在 ALB 使用的任何通訊協定上,檢查叢集工作者節點的出埠資料流量是否容許到 NodePort 範圍 30,000-32,767。 - 如果列出 VPC 負載平衡器,且您尚未修改與其連接的
kube-lbaas-<cluster-id>安全群組,則 DNS 項目可能仍在登錄中。 建立 VPC 負載平衡器時,主機名稱會透過公用 DNS 登錄。 有時,此 DNS 記錄可能需要幾分鐘時間,才會同步到您的客戶所使用的特定 DNS 伺服器上。 您可以等待主機名稱在 DNS 中登錄,或是直接使用其中一個 IP 位址存取 VPC 負載平衡器。 若要尋找 VPC 負載平衡器 IP 位址,請執行ibmcloud is lb <LB_ID>並尋找 公用 IP 欄位。 如果幾分鐘後仍無法連線至負載平衡器,可能是由於配置或連線問題而導致其離線。 請開立 IBM Cloud 支援案例。 針對類型,請選取技術。 針對種類,請選取 VPC 區段中的網路。 在說明中,請包含您的叢集 ID 和 VPC 負載平衡器 ID。
- 如果您已修改