規劃 Ingress 設定

透過建立由 Ingress Controller 管理的 Ingress 資源,在您的 Red Hat® OpenShift® on IBM Cloud® 叢集中公開多個應用程式。

有關如何在 Satellite 中揭露應用程式的資訊,請參閱 在 Satellite 群集中揭露應用程式

規劃單一或多個專案的網路規劃

每個包含您要揭露的應用程式的專案都需要一個 Ingress 資源。

所有應用程式都位於同一個專案中

如果群集中的所有應用程式都在同一個專案中,請建立一個 Ingress 資源,以定義要揭露的應用程式的路由規則。

舉例來說,若您在開發專案中透過服務公開了 app1app2,即可在該專案中建立一個 Ingress 資源。 此資源會指定 domain.net 作為主機,並使用 domain.net 登錄每一個應用程式接聽所在的路徑。

每個專案需要一種資源
每個專案需要一種資源

請注意,如果您想要對相同專案內的應用程式使用不同的網域,則可以為每個網域建立一個資源。

應用程式分屬多個專案

如果群集中的應用程式位於不同專案中,請為每個專案建立一個 Ingress 資源,以定義應用程式路由規則。

您可以在多個資源中定義相同的網域,或使用萬用字元網域,針對每一個專案在 Ingress 資源內指定不同的子網域。

註冊通配符網域時,多個子網域均可解析至同一台主機。 由 IBM 提供的 Ingress 子網域通配符 *.<cluster_name>-<globally_unique_account_HASH>-0000.<region>.containers.appdomain.cloud 預設已為您的叢集完成註冊。

IBM 提供的 TLS 憑證是萬用字元憑證,可用於萬用字元子網域。 如果要使用通配符自訂網域名稱,必須將自訂網域名稱註冊為通配符網域名稱,例如 *.custom_domain.net,要使用 TLS,必須取得通配符憑證。

例如,請考量下列範例情節,其中您可能想要使用萬用字元子網域:

  • 基於測試目的,您有相同應用程式的兩個版本,即 app1app3
  • 您將應用程式部署至同一叢集內的兩個不同專案中:將 app1 部署至開發專案,將 app3 部署至預備環境專案。

若要使用不同的子網域來管理這些應用程式的流量,請建立以下服務和資源:

  • 開發專案中的一項 Kubernetes 服務,用於公開 app1
  • 開發專案中的一項 Ingress 資源,其指定的主機為 dev.domain.net
  • 在預備專案中建立一個 Kubernetes 服務,用以提供 app3 這個網址。
  • 一個位於暫存專案中的 Ingress 資源,其指定的主機為 stage.domain.net

在一個專案內,在一項或多項資源中使用子網域
專案內一項或多項資源中的子網域

現在,這兩個 URL 都解析為相同的網域。 然而,由於暫存專案中的資源已註冊至 stage 子網域,因此 Ingress 控制器會正確地將來自 stage.domain.net/app3 URL 的請求轉發至 app3

單一專案中的多個網域

在單一專案內,您可以使用一個網域來存取該專案中的所有應用程式。 如果您要為同一專案中的應用程式使用不同的網域,請使用通配符網域。 註冊通配符網域時,多個子網域都會解析至同一台主機。 然後,您可以使用一個資源來指定該資源內的多個子網域主機。 此外,您也可以在專案中建立多個 Ingress 資源,並在每個 Ingress 資源中指定不同的子網域。

每個專案需要一種資源
每個專案需要一種資源

由 IBM 提供的 Ingress 子網域通配符 *.<cluster_name>-<globally_unique_account_HASH>-0000.<region>.containers.appdomain.cloud 會預設為您的叢集註冊。 IBM 提供的 TLS 憑證是萬用字元憑證,可用於萬用字元子網域。 如果要使用通配符自訂網域名稱,必須將自訂網域名稱註冊為通配符網域名稱,例如 *.custom_domain.net,要使用 TLS,必須取得通配符憑證。