Skip to main content

添加 Ingress

集群内的服务(service)和 pod 仅有集群内互相访问的 IP 地址,只能实现集群内部之间的通信。Ingress 为集群内的所有服务提供了外网访问的入口,允许用户通过外网访问集群内的服务。Ingress 具有这些功能:提供服务外部访问的 URL、负载均衡、SSL 和提供基于主机和路径的路由。请参考下文,为您的工作负载添加 Ingress。

在项目中使用 Ingress 时,可以设置全局 DNS 条目,从而对外部 DNS 进行编程动态设置 Ingress。

  1. 全局视图中,打开要添加 Ingress 的项目。

  2. 在主导航栏中单击“资源”。单击“负载均衡”标签。(在 v2.3.0 之前的版本中,只需单击“负载均衡”选项卡。)然后单击“添加 Ingress”。

  3. 输入 Ingress 的名称

  4. 从下拉列表中选择一个现有的命名空间

    如果您还没有命名空间,或您想将 Ingress 添加到新的命名空间,请单击添加到新的命名空间,参考命名空间,创建新的命名空间。完成创建后,参考下文,添加 Ingress。

  5. 创建 Ingress 转发规则

    • 自动生成 sslip.io 主机名

      此选项适合用于测试环境,而生产环境。如果选择此选项,Ingress 会通过一个自动生成的 DNS 名称路由请求。Rancher 使用 sslip.io 自动生成 DNS 名称。

      注意:要使用此选项,您必须能够解析 sslip.io 地址。

      1. 添加目标后端。默认情况下,一个工作负载会添加到 Ingress 中,您可以通过单击服务工作负载来添加更多目标。

      2. 可选:如果要在将请求发送到特定主机名路径时指定工作负载或服务,请为目标添加路径。例如,如果您希望将www.mysite.com/contact-us的请求发送到与www.mysite.com不同的服务,请在路径字段中输入/contact-us。您创建的第一个规则通常是不包含路径的。

      3. 目标下拉列表中为已添加的每个目标选择工作负载或服务。

      4. 输入每个目标使用的端口号。

    • 指定要使用的主机名

      如果使用此选项,Ingress 会根据这个主机名路由请求到您指定的服务或工作负载。

      1. 输入您的 Ingress 处理请求转发时用的主机名。例如,www.mysite.com.

      2. 添加目标后端。默认情况下,一个工作负载会添加到 Ingress 中,您可以通过单击服务工作负载来添加更多目标。

      3. 可选:如果要在将请求发送到特定主机名路径时指定工作负载或服务,请为目标添加路径。例如,如果您希望将www.mysite.com/contact-us的请求发送到与www.mysite.com不同的服务,请在路径字段中输入/contact-us。您创建的第一个规则通常是不包含路径的。

      4. 目标下拉列表中为已添加的每个目标选择工作负载或服务。

      5. 输入每个目标使用的端口号。

    • 用作默认后端

      使用此选项可以设置 Ingress 规则,以处理与任何其他 Ingress 规则都不匹配的请求。例如,使用此选项,来设置404页面。

      注意:如果您使用 RKE 部署 Rancher,则已经配置了 404 和 202 的默认后端。

      1. 添加目标后端。单击服务工作负载以添加目标。

      2. 目标下拉列表中选择服务或工作负载。

  6. 可选:单击添加规则以创建其他 Ingress 规则。例如,在创建了包含路由请求的主机名的 Ingress 规则之后,您可能想要创建一个默认后端处理 404。

  7. 如果您的任何 Ingress 规则需要处理加密端口的请求,请添加证书以加密/解密通信。

    注意:您必须具有一个 SSL 证书,Ingress 可用它来加密/解密通信。有关更多信息,请参见添加 SSL 证书

    1. 单击添加证书

    2. 从下拉列表中选择一个证书

    3. 输入使用加密通信的主机

    4. 可选:单击添加主机,添加使用证书的其他主机。

  8. 可选:添加标签注释,为您的 Ingress 提供元数据。

    有关可用注释的列表,请参考 Nginx Ingress Controller 文档.

结果:完成 Ingress 的添加和 Ingress 转发规则的配置。您的 Ingress 已添加到项目中,Ingress 开始执行您配置的 Ingress 规则。

Last updated on by ksd