為何我的叢集遺漏公用 containers.appdomain.cloud 子網域?

Virtual Private Cloud 標準基礎架構

當您透過 Ingress 控制器子網域公開應用程式時,會取得本端子網域而非公用路徑,格式如下: <service_name>-<project_name>.router.default.svc.cluster.local

當您嘗試在瀏覽器中開啟 Red Hat OpenShift Web 主控台或另一個應用程式路徑時,可能會看到類似下列的錯誤。

Application is not available
The application is currently not serving requests on this endpoint.

建立叢集並進入 正常 狀態之後,Ingress 控制器子網域網路及負載平衡元件仍需要一些時間來部署。

如果您在網路元件完全佈建之前公開應用程式,或者如果元件遇到錯誤,則您的應用程式只能使用預設 Ingress 控制器的 svc.cluster.local 網域在內部公開。

當元件完全佈建時,應用程式即可使用公用 Ingress 控制器子網域,格式為 <cluster-name>-<accountID-hashed>-<ssll>.<region>.containers.appdomain.cloud

  1. 建立叢集之後,即使在叢集進入 正常 狀態之後,也請等待一些時間,然後再公開應用程式。

  2. 檢查 Master 狀態。 如果 主要狀態 不是 備妥,請 檢閱其狀態,並遵循任何疑難排解資訊來解決問題。

    ibmcloud oc cluster get -c <cluster_name_or_ID>
    
  3. 請檢查叢集是否具有公用連線功能,以便網路元件在部署時可以與主節點交談。

    • 已啟用公用及專用雲端服務端點的 VPC 叢集: 確保在叢集所連接的每一個子網路上啟用公用閘道。 預設元件 (例如 Web 主控台和 OperatorHub ) 需要公用閘道才能使用安全的公用連線來完成動作,例如從遠端專用登錄取回映像檔。 請注意,如果僅針對叢集啟用專用服務端點,則不需要公用閘道,因為依預設會使用專用雲端服務端點來存取 OpenShift 元件,例如 OpenShift Web 主控台或 OperatorHub。
    • 標準叢集:
      • 在步驟 2 的輸出中,檢查您的群集是否有公共服務端點 URL。 如果您的群集沒有公共雲端服務端點,請啟用它。
      • 檢查叢集裡至少部分工作者節點具有 公用 IP 位址。 如果沒有工作人員節點會這樣做,您必須為至少一個工作人員池設定公用 VLAN。
        ibmcloud oc workers -c <cluster_name_or_ID>
        
  4. 在步驟 2 的輸出中,檢查 Ingress 子網域 是否可用。 叢集裡的 Ingress 元件必須先佈建,才能建立 Ingress 控制器元件。 如果 Ingress 子網域Ingress Secret 無法使用,請參閱 為何在建立叢集之後沒有 Ingress 子網域?

  5. 檢查 Ingress 控制器子網域的 主機名稱 格式是否為: <cluster-name>-<accountID-hashed>-<ssll>.<region>.containers.appdomain.cloud

    ibmcloud oc nlb-dns ls -c <cluster_name_or_ID>
    
    • 如果在建立叢集兩小時之後未更新 Ingress 控制器子網域,請重新檢閱叢集的 主要狀態,並遵循任何疑難排解步驟來解決問題。

如果疑難排解步驟無法解決問題,請參閱 取得協助