集群内的服务(service)和 pod 仅有集群内互相访问的 IP 地址,只能实现集群内部之间的通信。Ingress 为集群内的所有服务提供了外网访问的入口,允许用户通过外网访问集群内的服务。Ingress 具有这些功能:提供服务外部访问的 URL、负载均衡、SSL 和提供基于主机和路径的路由。请参考下文,为您的工作负载添加 Ingress。
在项目中使用 Ingress 时,可以设置全局 DNS 条目,从而对外部 DNS 进行编程动态设置 Ingress。请参考全局 DNS 条目。
在全局视图中,打开要添加 Ingress 的项目。
在主导航栏中单击“资源”。单击“负载均衡”标签。(在 v2.3.0 之前的版本中,只需单击“负载均衡”选项卡。)然后单击“添加 Ingress”。
输入 Ingress 的名称。
从下拉列表中选择一个现有的命名空间。
如果您还没有命名空间,或您想将 Ingress 添加到新的命名空间,请单击添加到新的命名空间,参考命名空间,创建新的命名空间。完成创建后,参考下文,添加 Ingress。
创建 Ingress 转发规则。
自动生成 xip.io 主机名
此选项适合用于测试环境,而非生产环境。如果选择此选项,Ingress 会通过一个自动生成的 DNS 名称路由请求。Rancher 使用 xip.io 自动生成 DNS 名称。
**注意:**要使用此选项,您必须能够解析
xip.io
地址。添加目标后端。默认情况下,一个工作负载会添加到 Ingress 中,您可以通过单击服务或工作负载来添加更多目标。
可选:如果要在将请求发送到特定主机名路径时指定工作负载或服务,请为目标添加路径。例如,如果您希望将
www.mysite.com/contact-us
的请求发送到与www.mysite.com
不同的服务,请在路径字段中输入/contact-us
。您创建的第一个规则通常是不包含路径的。从目标下拉列表中为已添加的每个目标选择工作负载或服务。
输入每个目标使用的端口号。
指定要使用的主机名
如果使用此选项,Ingress 会根据这个主机名路由请求到您指定的服务或工作负载。
输入您的 Ingress 处理请求转发时用的主机名。例如,
www.mysite.com
.添加目标后端。默认情况下,一个工作负载会添加到 Ingress 中,您可以通过单击服务或工作负载来添加更多目标。
可选:如果要在将请求发送到特定主机名路径时指定工作负载或服务,请为目标添加路径。例如,如果您希望将
www.mysite.com/contact-us
的请求发送到与www.mysite.com
不同的服务,请在路径字段中输入/contact-us
。您创建的第一个规则通常是不包含路径的。从目标下拉列表中为已添加的每个目标选择工作负载或服务。
输入每个目标使用的端口号。
用作默认后端
使用此选项可以设置 Ingress 规则,以处理与任何其他 Ingress 规则都不匹配的请求。例如,使用此选项,来设置
404
页面。**注意:**如果您使用 RKE 部署 Rancher,则已经配置了 404 和 202 的默认后端。
添加目标后端。单击服务或工作负载以添加目标。
从目标下拉列表中选择服务或工作负载。
可选:单击添加规则以创建其他 Ingress 规则。例如,在创建了包含路由请求的主机名的 Ingress 规则之后,您可能想要创建一个默认后端处理 404。
如果您的任何 Ingress 规则需要处理加密端口的请求,请添加证书以加密/解密通信。
**注意:**您必须具有一个 SSL 证书,Ingress 可用它来加密/解密通信。有关更多信息,请参见添加 SSL 证书。
单击添加证书。
从下拉列表中选择一个证书。
输入使用加密通信的主机。
可选:单击添加主机,添加使用证书的其他主机。
**可选:**添加标签或注释,为您的 Ingress 提供元数据。
有关可用注释的列表,请参考 Nginx Ingress Controller 文档.
**结果:**完成 Ingress 的添加和 Ingress 转发规则的配置。您的 Ingress 已添加到项目中,Ingress 开始执行您配置的 Ingress 规则。