规划 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 部署到预发布项目。

若要使用不同的子域名来管理这些应用的流量,请创建以下服务和资源:

  • 开发项目中用于公开 app1 的 Kubernetes 服务。
  • 开发项目中一个 Ingress 资源,其指定的宿主为 dev.domain.net
  • 在预发布项目中部署一个 Kubernetes 服务,以提供 app3 接口。
  • 暂存项目中一个 Ingress 资源,其指定的主机为 stage.domain.net

在一个项目中,在一个或多个资源中使用子域
在一个
中,在一个或多个资源中使用子域在一个项目中,在一个或多个资源中使用子域在一个项目中,在一个或多个资源中使用子域

现在,这两个 URL 都解析为同一域。 然而,由于 staging 项目中的资源是在 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,必须获得通配符证书。