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

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

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

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

    3. 输入 Ingress 的名称

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

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

    5. 创建 Ingress 转发规则

      • 自动生成 xip.io 主机名

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

        **注意:**要使用此选项,您必须能够解析 xip.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 规则。