
# 路由（Ingress）
Ingress使用弹性负载均衡作为流量入口对外提供访问，在四层负载均衡访问方式的基础上支持了URI配置，通过对应的URI将访问流量分发到对应的服务。用户可根据域名和路径对转发规则进行自定义，完成对访问流量的细粒度划分。该访问方式由公网弹性负载均衡ELB服务地址、设置的访问端口、定义的URI组成，例如：10.117.117.117:80/helloworld。
#### 前提条件
请确保已有可用的工作负载，若没有请参照[工作负载](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0254.html)先创建工作负载。
#### 添加方式
1. 登录[UCS控制台](https://console.huaweicloud.com/ucs/?#/aether/dashboard)，在左侧导航栏中选择"容器舰队"。
2. 在"容器舰队"页签下找到已开通集群联邦的舰队，单击名称进入详情页。
3. 在左侧导航栏中选择"服务与路由"，选择"路由"页签。
4. 选择需要创建路由的命名空间，并单击右上角"创建路由"。如需新建命名空间，请参见[创建命名空间](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0281.html#ucs_01_0281__section20381629121511)。
   
   图1选择命名空间   
   ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001932964301.png "点击放大")
   
   
5. 设置路由配置参数。
   
   图2创建路由   
   ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001922075057.png "点击放大")
   - **Ingress名称**：新增路由的名称，用户可自定义。
   
   - **命名空间**：路由所在命名空间。
   
   - **对接nginx** ：Ingress Controller分为ELB型和Nginx型。UCS支持上述两种Ingress Controller类型，其中ELB Ingress Controller基于弹性负载均衡服务（ELB）实现流量转发；而Nginx Ingress Controller使用Kubernetes社区维护的模板与镜像，通过Nginx组件完成流量转发。
     - ELB Ingress：不开启"对接nginx"。
     
     - Nginx Ingress：单击![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001834789605.png "点击放大")开启"对接nginx"。
       ![](https://support.huaweicloud.com/usermanual-ucs/public_sys-resources/caution_3.0-zh-cn.png)
       在创建Nginx Ingress前应为对应集群安装Nginx Ingress Controller插件，安装插件的具体操作请参见：
       - 为CCE集群安装插件请参见[通过控制台创建Nginx Ingress](https://support.huaweicloud.com/usermanual-cce/cce_10_0034.html)。
       
       - 为本地集群安装插件请参见[使用L7负载均衡Ingress-nginx](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0292.html)。
       
       - 为其他类型集群安装插件请参见开源社区文档[Nginx Ingress Controller](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/)。
         
      
   
   - **监听器配置** ：选择对外协议，支持HTTP和HTTPS。若对外协议选择HTTPS，请选择IngressTLS类型的服务器证书。若无符合条件的证书，可单击"创建IngressTLS类型的密钥证书"，参考[密钥（Secret）](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0268.html)创建一个指定类型的密钥证书。
     - SNI（Server Name Indication）：SNI是TLS的扩展协议，在该协议下允许同一个IP地址和端口号下对外提供多个基于TLS的访问域名，且不同的域名可以使用不同的安全证书。
      
   
   - **转发策略配置** ：请求的访问地址与转发规则匹配时（转发规则由域名、URL组成，例如：10.117.117.117:80/helloworld），此请求将被转发到对应的目标Service处理。您可添加多条转发策略。
     - 域名：可选项，输入实际访问的域名地址。请确保所填写的域名已注册并备案，一旦配置了域名规则后，必须使用域名访问。
     
     - URL：需要注册的访问路径，例如：/healthz。该访问路径需与后端应用暴露的URL一致，否则将返回404错误。
     
     - 目标服务名称：选择服务名称，需要先创建NodePort服务，具体可参考[节点访问（NodePort）](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0272.html)。
     
     - 目标服务访问端口：选择目标服务后，对应的容器端口将自动获取。
      
   
   - **部署集群** ：选择需要部署的集群。
     图3添加部署集群   
     ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001876075964.png "点击放大")
     - **CCE集群** ：
       - 对外端口：开放在负载均衡服务地址的端口，可任意指定。
       
       - 负载均衡器：仅支持集群所在VPC下的负载均衡实例。如果没有可选的负载均衡器实例，请单击"创建负载均衡器"，创建完成后单击刷新按钮。
         ![](https://support.huaweicloud.com/usermanual-ucs/public_sys-resources/caution_3.0-zh-cn.png)
         创建Nginx Ingress时，您无需手动选择负载均衡器，在插件安装阶段已经完成负载均衡器的关联。
         
        
     
     - **其他云**
       图4添加部署集群   
       ![](https://support.huaweicloud.com/usermanual-ucs/zh-cn_image_0000001928875821.png "点击放大")
       - Ingress Class：支持选择集群内已创建的Ingress Class，或手动输入规划的Ingress Class名称，请参见[Ingress资源](https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/#the-ingress-resource)。。
       
       - 注解：支持key/value对格式，请您根据自身业务以及厂家要求进行标签配置。
        
     
     - 如需创建内部负载均衡器，您需要根据集群的云服务商添加相应的注解，请参见[内部负载均衡器](https://kubernetes.io/zh/docs/concepts/services-networking/service/#internal-load-balancer)。
      
    
   
   
6. 单击"确认"。创建成功后可在"路由（Ingress）"页签的列表中查看。
7. 获取访问地址。 
   1. 单击左侧导航栏"服务与路由"，选择"路由"页签。
   
   2. 单击所添加的Ingress名称进入"路由详情"界面，查看对应的负载均衡器及监听器端口配置。您可以通过负载均衡器的弹性IP地址 + 监听器端口 + URL的形式访问后端负载，例如10.117.117.117:8088/helloworld。
   
   
   
   
 
#### 相关操作
通过UCS控制台，您还可以执行[表1]中的操作。
 表1相关操作 
| 操作     | 说明                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|
| YAML创建 | 单击右上角"YAML创建"，可使用已有的YAML创建路由。                                                                                                                                                                                                                                                                                                                                                                             |
| 查看详情   | 1. 选择路由所在的命名空间。  2. （可选）根据路由名称进行搜索。  3. 单击路由名称即可查看路由详情，包括基本信息以及各集群的部署信息。  4. 在路由详情页的部署集群栏中单击"查看YAML"，可查看各个集群中部署的路由实例YAML，并支持下载。   |
| 编辑YAML | 单击路由名称后的"编辑YAML"，可查看并编辑当前路由的YAML文件。                                                                                                                                                                                                                                                                                                                                                                       |
| 更新     | 1. 单击路由名称后的"更新"。  2. 根据[路由参数]更改信息。  3. 单击"确认"提交已修改的信息。                                                                                      |
| 删除     | 单击路由名称后的"删除"，并单击"是"进行确认。                                                                                                                                                                                                                                                                                                                                                                                  |
| 批量删除   | 1. 勾选需要删除的路由。  2. 单击左上角的"批量删除"。  3. 单击"是"进行确认。                                                                                                                               |
   
