
# 通过控制台创建Nginx Ingress
#### 前提条件
- Ingress为后端工作负载提供网络访问，因此集群中需提前部署可用的工作负载。若您无可用工作负载，可参考[创建工作负载](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0673.html)部署工作负载。
- 为上述工作负载配置ClusterIP类型Service，可参考[集群内访问（ClusterIP）](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0011.html)配置示例Service。
- 添加Nginx Ingress时，需在集群中提前安装NGINX Ingress 控制器，具体操作可参考[安装插件](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0034.html#cce_11_0034__zh-cn_topic_0000001199341160_section1152424015224)。
 
#### 约束与限制
- **不建议在ELB服务页面修改ELB实例的任何配置，否则将导致服务异常。**如果您已经误操作，请卸载Nginx Ingress插件后重装。
- Ingress转发策略中注册的URL需与后端应用提供访问的URL一致，否则将返回404错误。
- 负载均衡实例需与当前集群处于相同VPC 且为相同公网或私网类型。
- 负载均衡实例需要拥有至少两个监听器配额，且端口80和443没有被监听器占用。
 
 #### 添加Nginx Ingress
本节以Nginx作为工作负载并添加Nginx Ingress为例进行说明。
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 选择左侧导航栏的"服务"，在右侧选择"路由"页签，单击右上角"创建路由"。
3. 设置Ingress参数。 
   - **名称：**自定义Ingress名称，例如nginx-ingress-demo。
   
   - **命名空间：**选择需要添加Ingress的命名空间。
   
   - **对接Nginx：** 集群中已安装[NGINX Ingress控制器插件](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0034.html)插件后显示此选项，未安装该插件时本选项不显示。
     - **前端协议：**支持HTTP和HTTPS，安装NGINX Ingress控制器插件时预留的监听端口，默认HTTP为80，HTTPS为443。使用HTTPS需要配置相关证书。
     
     - **证书来源：** 使用证书以支持HTTPS数据传输加密认证。
       - 如果您选择"TLS密钥"，需要提前创建IngressTLS或kubernetes.io/tls类型的密钥证书，创建密钥的方法请参见[创建密钥](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0153.html)。
       
       - 如果您选择"默认证书"，NGINX Ingress控制器会使用插件默认证书进行加密认证。选择"默认证书"将使用NGINX Ingress控制器自带证书。
        
     
     - **SNI：**SNI（Server Name Indication）是TLS的扩展协议，在该协议下允许同一个IP地址和端口号下对外提供多个基于TLS的访问域名，且不同的域名可以使用不同的安全证书。开启SNI后，允许客户端在发起TLS握手请求时就提交请求的域名信息。负载均衡收到TLS请求后，会根据请求的域名去查找证书：若找到域名对应的证书，则返回该证书认证鉴权；否则，返回缺省证书（服务器证书）认证鉴权。
      
   
   - **转发策略配置：** 请求的访问地址与转发规则匹配时（转发规则由域名、URL组成），此请求将被转发到对应的目标Service处理。单击"添加转发策略"按钮可添加多条转发策略。
     - 域名：实际访问的域名地址。请确保所填写的域名已注册并备案，在Ingress创建完成后，将域名与自动创建的负载均衡实例的IP（即Ingress访问地址的IP部分）绑定。一旦配置了域名规则，则必须使用域名访问。
     
     - URL匹配规则：
       - 默认：默认为前缀匹配。
       
       - 前缀匹配：例如映射URL为/healthz，只要符合此前缀的URL均可访问。例如/healthz/v1，/healthz/v2。
       
       - 精确匹配：表示只有URL完全匹配时，访问才能生效。例如映射URL为/healthz，则必须为此URL才能访问。
        
     
     - URL：需要注册的访问路径，例如：/healthz。
       ![](https://support.huaweicloud.com/usermanual-cce-autopilot/public_sys-resources/note_3.0-zh-cn.png)
       - Nginx Ingress的访问路径匹配规则是基于"/"符号分隔的路径前缀匹配，并区分大小写。只要访问路径以"/"符号分隔后的子路径匹配此前缀，均可正常访问，但如果该前缀仅是子路径中的部分字符串，则不会匹配。例如URL设置为/healthz，则匹配/healthz/v1，但不匹配/healthzv1。
       
       - 此处添加的访问路径要求后端应用内存在相同的路径，否则转发无法生效。 例如，Nginx应用默认的Web访问路径为"/usr/share/nginx/html"，在为Ingress转发策略添加"/test"路径时，需要应用的Web访问路径下也包含相同路径，即"/usr/share/nginx/html/test"，否则将返回404。
         
         
     
     - 目标服务名称：请选择已有Service或新建Service。页面列表中的查询结果已自动过滤不符合要求的Service。
     
     - 目标服务访问端口：可选择目标Service的访问端口。
     
     - 操作：可单击"删除"按钮删除该配置。
      
   
   - **注解** ：以"key: value"形式设置，可通过[Annotations](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/)查询nginx-ingress支持的配置。
   
   
   
   
4. 配置完成后，单击"确定"。 
   创建完成后，在Ingress列表可查看到已添加的Ingress。
   
   
 
