# 通过Kubectl命令行创建ELB Ingress
本文以[Nginx工作负载](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html#cce_10_0047__section155246177178)为例，说明通过kubectl命令添加ELB Ingress的方法。
- 如您在同一VPC下没有可用的ELB，CCE支持在添加Ingress时自动创建ELB，请参考[添加Ingress时自动创建ELB]。
- 如您已在同一VPC下提前创建了一个可用的ELB，则可参考[添加Ingress时对接已有ELB]。
#### 关于CCE v1.23集群中Ingress API版本升级的说明
CCE从v1.23版本集群开始，将Ingress切换到**networking.k8s.io/v1**版本。
v1版本的参数相较v1beta1版本的参数有如下区别：
- ingress类型由annotations中**kubernetes.io/ingress.class** 变为使用**spec.ingressClassName**字段。
- **backend**的写法变化。
- 每个路径下必须指定路径类型**pathType** ，支持如下类型。
  - ImplementationSpecific: 对于这种路径类型，匹配方法取决于具体Ingress Controller的实现。在CCE中会使用ingress.beta.kubernetes.io/url-match-mode指定的匹配方式，这与v1beta1方式相同。
  
  - Exact：精确匹配 URL 路径，且区分大小写。
  
  - Prefix：基于以 / 分隔的 URL 路径前缀匹配。匹配区分大小写，并且对路径中的元素逐个匹配。 路径元素指的是由 / 分隔符分隔的路径中的标签列表。
   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000001955986900.png "点击放大")
#### 前提条件
- 集群中需提前部署可用的工作负载用于对外提供访问。若您无可用工作负载，可参见[创建无状态负载（Deployment）](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html)、[创建有状态负载（StatefulSet）](https://support.huaweicloud.com/usermanual-cce/cce_10_0048.html)或[创建守护进程集（DaemonSet）](https://support.huaweicloud.com/usermanual-cce/cce_10_0216.html)部署工作负载。
- 为提供对外访问的工作负载配置Service，ELB Ingress支持的Service类型请参见[ELB Ingress支持的Service类型](https://support.huaweicloud.com/usermanual-cce/cce_10_0094.html#cce_10_0094__section3565202819276)。
 
#### 约束与限制
- 仅1.17及以上集群支持使用独享型ELB。
- 建议其他资源不要使用Ingress自动创建的ELB实例，否则在删除Ingress时，ELB实例会被占用，导致资源残留。
- 添加Ingress后请在CCE页面对所选ELB实例进行配置升级和维护，不可在ELB页面对配置进行更改，否则可能导致Ingress服务异常。
- Ingress转发策略中注册的URL需与后端应用提供访问的URL一致，否则将返回404错误。
- IPVS模式集群下，ELB Ingress和Service使用相同ELB实例时，无法在集群内的节点和容器中访问Ingress，因为kube-proxy会在ipvs-0的网桥上挂载LB类型的Service地址，ELB的流量会被ipvs-0网桥劫持。建议ELB Ingress和Service使用不同ELB实例。
- 请勿将Ingress与[使用HTTP的Service](https://support.huaweicloud.com/usermanual-cce/cce_10_0683.html)对接同一个ELB下的同一个监听器，否则将产生端口冲突。
- 独享型ELB规格必须支持应用型（HTTP/HTTPS），且网络类型必须支持私网（有私有IP地址）。
- 同集群使用多个Ingress对接同一个ELB端口时，监听器的配置项（例如监听器关联的证书、监听器HTTP/2属性等）均以首次创建监听器的Ingress配置为准。
 
#### 使用kubectl命令行创建Ingress
您可以在添加Ingress时选择是否自动创建ELB或使用已有的ELB。
- [添加Ingress时自动创建ELB]
  
  下面介绍如何通过kubectl命令在添加Ingress时自动创建ELB。
  1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl连接集群。
  
  2. 创建名为"**ingress-test.yaml** "的YAML文件，此处文件名可自定义。
     
     ```
     vi ingress-test.yaml
     ```
     ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
     CCE在1.23版本集群开始Ingress切换到networking.k8s.io/v1版本，之前版本集群使用networking.k8s.io/v1beta1。v1版本与v1beta1版本的区别请参见[关于CCE v1.23集群中Ingress API版本升级的说明]。
     **共享型负载均衡（公网访问）示例 -1.23及以上版本集群：**
     ```
     apiVersion: networking.k8s.io/v1
     kind: Ingress 
     metadata: 
       name: ingress-test
       annotations: 
         kubernetes.io/elb.class: union
         kubernetes.io/elb.port: '80'
         kubernetes.io/elb.autocreate: 
           '{
               "type":"public",
               "bandwidth_name":"cce-bandwidth-******",       # 带宽的名称
               "bandwidth_chargemode":"bandwidth",   # 带宽付费模式
               "bandwidth_size":5,                              
               "bandwidth_sharetype":"PER",
               "vip_subnet_cidr_id": "*****",                  # 子网的IPv4子网ID
               "vip_address": "**.**.**.**",                   # 负载均衡器的内网IP
               "eip_type":"5_bgp"                               # 弹性公网IP类型
             }'
         kubernetes.io/elb.tags: key1=value1,key2=value2           # 添加ELB资源标签
     spec:
       rules: 
       - host: ''
         http: 
           paths: 
           - path: '/'
             backend: 
               service:
                 name: <your_service_name>  #替换为您的目标服务名称
                 port: 
                   number: <your_service_port>  #替换为您的目标服务端口，如果填其他端口可能出现非预期结果
             property:
               ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
             pathType: ImplementationSpecific
       ingressClassName: cce    # 表示使用ELB Ingress
     ```
     **独享型负载均衡（公网访问）示例 - 1.23及以上版本集群：**
     ```
     apiVersion: networking.k8s.io/v1
     kind: Ingress
     metadata:
       name: ingress-test
       namespace: default
       annotations:
         kubernetes.io/elb.class: performance
         kubernetes.io/elb.port: '80'
         kubernetes.io/elb.autocreate: 
           '{
               "type": "public",
               "bandwidth_name": "cce-bandwidth-******",        # 带宽的名称
               "bandwidth_chargemode": "bandwidth",   # 带宽付费模式
               "bandwidth_size": 5,
               "bandwidth_sharetype": "PER",
               "eip_type": "5_bgp",                             # 弹性公网IP类型
               "vip_subnet_cidr_id": "*****",                  # 子网的IPv4子网ID
               "vip_address": "**.**.**.**",                   # 负载均衡器的内网IP
               "elb_virsubnet_ids":["*****"],                  # 子网的网络ID
               "available_zone": [
                   "cn-north-4b"
               ],
               "l7_flavor_name": "L7_flavor.elb.s1.small"
            }'
         kubernetes.io/elb.tags: key1=value1,key2=value2           # 添加ELB资源标签
     spec:
       rules: 
       - host: ''
         http: 
           paths: 
           - path: '/'
             backend: 
               service:
                 name: <your_service_name>  #替换为您的目标服务名称
                 port: 
                   number: <your_service_port>  #替换为您的目标服务端口，如果填其他端口可能出现非预期结果
             property:
               ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
             pathType: ImplementationSpecific
       ingressClassName: cce
     ```
     **共享型负载均衡（公网访问）示例 - 1.21及以下版本集群：**
     ```
     apiVersion: networking.k8s.io/v1beta1
     kind: Ingress 
     metadata: 
       name: ingress-test
       annotations: 
         kubernetes.io/elb.class: union
         kubernetes.io/ingress.class: cce    # 表示使用ELB Ingress
         kubernetes.io/elb.port: '80'
         kubernetes.io/elb.autocreate: 
           '{
               "type":"public",
               "bandwidth_name":"cce-bandwidth-******",       # 带宽的名称
               "bandwidth_chargemode":"bandwidth",   # 带宽付费模式
               "bandwidth_size":5,
               "bandwidth_sharetype":"PER",
               "eip_type":"5_bgp"                               # 弹性公网IP类型
             }'
         kubernetes.io/elb.tags: key1=value1,key2=value2           # 添加ELB资源标签
     spec:
       rules: 
       - host: ''
         http: 
           paths: 
           - path: '/'
             backend: 
               serviceName: <your_service_name>  #替换为您的目标服务名称
               servicePort: <your_service_port>  #替换为您的目标服务端口，如果填其他端口可能出现非预期结果
             property:
               ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
     ```
     **独享型负载均衡（公网访问）示例 - 1.21及以下版本集群：**
     ```
     apiVersion: networking.k8s.io/v1beta1
     kind: Ingress
     metadata:
       name: ingress-test
       namespace: default
       annotations:
         kubernetes.io/elb.class: performance
         kubernetes.io/ingress.class: cce
         kubernetes.io/elb.port: '80'
         kubernetes.io/elb.autocreate: 
           '{
               "type": "public",
               "bandwidth_name": "cce-bandwidth-******",        # 带宽的名称
               "bandwidth_chargemode": "bandwidth",   # 带宽付费模式
               "bandwidth_size": 5,
               "bandwidth_sharetype": "PER",
               "eip_type": "5_bgp",                             # 弹性公网IP类型
               "elb_virsubnet_ids":["*****"],                  # 子网的网络ID
                "available_zone": [
                   "cn-north-4b"
               ],
               "l7_flavor_name": "L7_flavor.elb.s1.small"
            }'
         kubernetes.io/elb.tags: key1=value1,key2=value2           # 添加ELB资源标签
     spec:
       rules:
       - host: ''
         http:
           paths:
           - path: '/'
             backend: 
               serviceName: <your_service_name>  #替换为您的目标服务名称
               servicePort: <your_service_port>  #替换为您的目标服务端口，如果填其他端口可能出现非预期结果
             property:
               ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
     ```
     表1关键参数说明 
     | 参数                                          | 是否必填                                           | 参数类型                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
     |:---|:---|:---|:---|
     | kubernetes.io/elb.class                     | 是                                             | String             | 请根据不同的应用场景和功能需求选择合适的负载均衡器类型。**该参数在创建完成后不可修改**。 取值如下： - union：共享型负载均衡。  - performance：独享型负载均衡，详情请参见[共享型弹性负载均衡与独享型负载均衡的功能区别](https://support.huaweicloud.com/productdesc-elb/elb_pro_0004.html)。   默认值为"union"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
     | kubernetes.io/ingress.class                | 是 （仅1.21及以下集群）  | String              | cce：表示使用自研ELB Ingress。 创建Ingress时必须增加该参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
     | ingressClassName                           | 是 （仅1.23及以上集群） | String             | cce：表示使用自研ELB Ingress。 创建Ingress时必须增加该参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     | kubernetes.io/elb.port                   | 否                                             | String               | 界面上的对外端口，为注册到负载均衡服务地址上的端口。 取值范围：1\~65535，HTTP协议默认为80，HTTPS协议默认为443。 说明： 共享型ELB的部分端口为高危端口，默认被屏蔽，如21端口。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
     | kubernetes.io/elb.subnet-id               | -                                              | String               | 为集群所在子网的ID，取值范围：1\~100字符。 - Kubernetes v1.11.7-r0及以下版本的集群自动创建时：必填。  - Kubernetes v1.11.7-r0以上版本的集群：可不填，默认为""。   获取方法请参见：[VPC子网接口与OpenStack Neutron子网接口的区别是什么？](https://support.huaweicloud.com/api-vpc/vpc_api_0005.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
     | kubernetes.io/elb.enterpriseID             | 否                                                | String              | **Kubernetes v1.15及以上版本的集群支持此字段；Kubernetes v1.15以下版本默认创建到default项目下。** 表示ELB的企业项目ID，仅限于已开通企业项目的企业客户账号使用。选择企业项目ID后，相关资源可以直接创建在该企业项目下。 取值范围：1\~100字符。 **获取方法：** 登录[企业项目管理控制台](https://console.huaweicloud.com/eps/#/projects/list)，在企业项目列表中单击要加入的企业项目名称，进入企业项目详情页，找到"ID"字段复制即可。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
     | kubernetes.io/elb.autocreate               | 是                                               | elb.autocreate object | 自动创建Ingress关联的ELB，详细字段说明参见[表2]。**该参数在创建完成后不可修改**。 注意： kubernetes.io/elb.id 和kubernetes.io/elb.autocreate不能同时填写。 如果在Service中同时填写以上两个注解，CCE优先使用已有的ELB实例，而不会再自动创建新的ELB实例。在这种情况下如果删除Service，这个已有的ELB会被系统视作自动创建，如果该ELB未关联其他资源，则会被同时删除。 **示例：** - 自动创建公网独享型ELB： 值为'{"type":"public","bandwidth_name":"cce-bandwidth-1741230802502","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp","available_zone":\["\*\*\*\*\*"\],"elb_virsubnet_ids":\["\*\*\*\*\*"\],"l7_flavor_name":"L7_flavor.elb.pro.max","l4_flavor_name":"","vip_subnet_cidr_id":"\*\*\*\*\*"}'   - 自动创建私网独享型ELB： 值为'{"type":"inner","available_zone":\["\*\*\*\*\*"\],"elb_virsubnet_ids":\["\*\*\*\*\*"\],"l7_flavor_name":"L7_flavor.elb.pro.max","l4_flavor_name":"","vip_subnet_cidr_id":"\*\*\*\*\*"}'   - 自动创建公网共享型ELB： 值为 '{"type":"public","bandwidth_name":"cce-bandwidth-1551163379627","bandwidth_chargemode":"bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp","name":"james"}'   - 自动创建私网共享型ELB： 值为 '{"type":"inner", "name": "A-location-d-test"}'   - 自动创建加入共享带宽的公网独享型ELB： 值为'{"type":"public","bandwidth_id":"\*\*\*\*\*","bandwidth_sharetype":"WHOLE","eip_type":"5_bgp","available_zone":\["\*\*\*\*\*"\],"elb_virsubnet_ids":\["\*\*\*\*\*"\],"l7_flavor_name":"","l4_flavor_name":"L4_flavor.elb.pro.max","vip_subnet_cidr_id":"\*\*\*\*\*"}'   - 自动创建加入共享带宽的公网共享型ELB： 值为'{"type":"public","bandwidth_id":"\*\*\*\*\*","bandwidth_sharetype":"WHOLE","eip_type":"5_bgp","name":"james"}'    |
     | kubernetes.io/elb.tags                     | 否                                              | String                | 为ELB添加资源标签，仅自动创建ELB时支持设置，且集群版本需满足v1.23.11-r0、v1.25.6-r0、v1.27.3-r0及以上。 格式为key=value，同时添加多个标签时以英文逗号（,）隔开。ELB最多支持添加20个资源标签，CCE会自动添加1个标签占用其中1个配额。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
     | host                                        | 否                                              | String              | 为服务访问域名配置，默认为""，表示域名全匹配。请确保所填写的域名已注册并备案，一旦配置了域名规则后，必须使用域名访问。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
     | path                                        | 是                                               | String             | 为路由路径，用户自定义设置。所有外部访问请求需要匹配host和path。 说明： 此处添加的访问路径要求后端应用内存在相同的路径，否则转发无法生效。 例如，Nginx应用默认的Web访问路径为"/usr/share/nginx/html"，在为Ingress转发策略添加"/test"路径时，需要应用的Web访问路径下也包含相同路径，即"/usr/share/nginx/html/test"，否则将返回404。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
     | ingress.beta.kubernetes.io/url-match-mode | 否                                               | String               | 路由匹配策略。 默认值为"STARTS_WITH"(前缀匹配)。 取值范围： - EQUAL_TO：精确匹配  - STARTS_WITH：前缀匹配  - REGEX：正则匹配                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
     | pathType                                 | 是                                              | String               | 路径类型，该字段仅v1.23及以上集群支持。 - ImplementationSpecific: 匹配方法取决于具体Ingress Controller的实现。在CCE中会使用ingress.beta.kubernetes.io/url-match-mode指定的匹配方式。  - Exact：精确匹配 URL 路径，且区分大小写。  - Prefix：前缀匹配，且区分大小写。该方式是将URL路径通过"/"分隔成多个元素 ，并且对元素进行逐个匹配。 如果URL中的每个元素均和路径匹配，则说明该URL的子路径均可以正常路由。 说明： - Prefix匹配时每个元素均需精确匹配，如果URL的最后一个元素是请求路径中最后一个元素的子字符串，则不会匹配 。例如：/foo/bar匹配/foo/bar/baz，但不匹配/foo/barbaz。  - 通过"/"分隔元素时，若URL或请求路径以"/"结尾，将会忽略结尾的"/"。例如：/foo/bar会匹配/foo/bar/。      关于Ingress路径匹配示例，请参见[示例](https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
        
      表2elb.autocreate字段数据结构说明 
     | 参数                     | 是否必填                 | 参数类型              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
     |:---|:---|:---|:---|
     | name                   | 否                     | String             | 自动创建的负载均衡的名称。 取值范围：只能由中文、英文字母、数字、下划线、中划线、点组成，且长度范围为1-64个字符。 默认名称：cce-lb+service.UID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     | type                  | 否                    | String           | 负载均衡实例网络类型，公网或者私网。 - public：公网型负载均衡  - inner：私网型负载均衡   默认类型：inner                                                                                                                                                                                                                                                                                                                                     |
     | bandwidth_id          | 否                     | String           | 共享带宽ID。使用已存在的共享带宽时填写。集群版本需满足v1.30.14-r100、v1.31.14-r60、v1.32.13-r30、v1.33.12-r10、v1.34.8-r10、v1.35.5-r10、v1.36.2-r0及以上。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
     | bandwidth_name       | 公网型负载均衡且共享带宽ID为空时必填。 | String           | 带宽的名称，默认值为：cce-bandwidth-\*\*\*\*\*\*。 取值范围：只能由中文、英文字母、数字、下划线、中划线、点组成，且长度范围为1-64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
     | bandwidth_chargemode  | 公网型负载均衡且共享带宽ID为空时必填。   | String             | 带宽付费模式。 - bandwidth：按带宽  - traffic：按流量                                                                                                                                                                                                                                                                                                                                                                                                              |
     | bandwidth_size         | 公网型负载均衡且共享带宽ID为空时必填。  | Integer            | 带宽大小，默认1Mbit/s\~2000Mbit/s，请根据Region带宽支持范围设置。 调整带宽时的最小单位会根据带宽范围不同存在差异。 - 小于等于300Mbit/s：默认最小单位为1Mbit/s。  - 300Mbit/s\~1000Mbit/s：默认最小单位为50Mbit/s。  - 大于1000Mbit/s：默认最小单位为500Mbit/s。                                                                                                                                                                                  |
     | bandwidth_sharetype  | 公网型负载均衡且共享带宽ID为空时必填。 | String            | 带宽共享方式。 - PER：独享带宽  - WHOLE：共享带宽。仅v1.30.14-r100、v1.31.14-r60、v1.32.13-r30、v1.33.12-r10、v1.34.8-r10、v1.35.5-r10、v1.36.2-r0及以上版本支持。 说明： 该字段为WHOLE时，必须指定共享带宽ID。                                                                                                                                                                                                                                               |
     | eip_type              | 公网型负载均衡必填             | String           | 弹性公网IP类型。 - 5_telcom：电信  - 5_union：联通  - 5_bgp：全动态BGP  - 5_sbgp：静态BGP   具体类型以各区域配置为准，详情请参见弹性公网IP控制台。                                                                                                                             |
     | vip_subnet_cidr_id   | 否                    | String            | 填写子网的IPv4子网ID，指定ELB所在的子网，用于分配ELB实例对外服务的IP地址，该子网必须属于集群所在的VPC。 如不指定，则默认与集群在同一个子网。 仅v1.21及以上版本的集群支持指定该字段。 **获取方式：** 登录[VPC控制台](https://console.huaweicloud.com/vpc/#/vpc/vpcs/list)，在左侧导航栏选择"子网"，根据集群所在的VPC名称筛选子网，单击子网名称，在"基本信息"页签下找到"IPv4子网ID"字段复制即可。                                                                                                                                                                                                                                                 |
     | ipv6_vip_virsubnet_id | 否                    | String            | 双栈类型负载均衡器所在IPv6子网的网络ID，需要对应的子网开启IPv6。 独享型负载均衡器独有字段。 **获取方式：** 登录[VPC控制台](https://console.huaweicloud.com/vpc/#/vpc/vpcs/list)，在左侧导航栏选择"子网"，根据集群所在的VPC名称筛选子网，单击子网名称，在"基本信息"页签下找到"网络ID"字段复制即可。                                                                                                                                                                                                                                                                                                                                                   |
     | elb_virsubnet_ids     | 否                    | Array of strings | 填写子网的网络ID，指定负载均衡后端所在子网，用于分配与后端服务建立连接的IP地址，不填默认为vip_subnet_cidr_id参数所选的子网。不同实例规格将占用不同数量子网IP，不建议使用其他资源（如集群，节点等）的子网网段。 独享型负载均衡器独有字段。 示例： ``` "elb_virsubnet_ids": [ "14567f27-8ae4-42b8-ae47-9f847a4690dd" ] ``` **获取方式：** 登录[VPC控制台](https://console.huaweicloud.com/vpc/#/vpc/vpcs/list)，在左侧导航栏选择"子网"，根据集群所在的VPC名称筛选子网，单击子网名称，在"基本信息"页签下找到"网络ID"字段复制即可。                                                                                                                                                 |
     | vip_address          | 否                   | String            | 负载均衡器的内网IP。仅支持指定IPv4地址，不支持指定IPv6地址。 该IP必须为ELB所在子网网段中的IP。若不指定，自动从ELB所在子网网段中生成一个IP地址。 仅v1.23.11-r0、v1.25.6-r0、v1.27.3-r0及以上版本集群支持指定该字段。                                                                                                                                                                                                                                                                                                                                                                                                                                              |
     | available_zone         | 是                   | Array of strings | 负载均衡所在可用区。 可以通过[查询可用区列表](https://support.huaweicloud.com/api-elb/ListAvailabilityZones.html)获取所有支持的可用区。 独享型负载均衡器独有字段。                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
     | l4_flavor_name         | 否                    | String            | 四层负载均衡实例规格名称。需要使用TCP、UDP、TLS协议时必填。 可以通过[查询规格列表](https://support.huaweicloud.com/api-elb/ListFlavors.html)获取所有支持的类型。 - 弹性规格：适用于业务用量波动较大的场景，按实际使用量收取每小时使用的容量费用。v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持使用弹性规格。  - 固定规格：适用于业务用量较为稳定的场景，按固定规格折算收取每小时使用的容量费用。   独享型负载均衡器独有字段。                                                                                          |
     | l7_flavor_name          | 否                    | String            | 七层负载均衡实例规格名称。使用HTTP/HTTPS协议时必填。 可以通过[查询规格列表](https://support.huaweicloud.com/api-elb/ListFlavors.html)获取所有支持的类型。 - 弹性规格：适用于业务用量波动较大的场景，按实际使用量收取每小时使用的容量费用。v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持使用弹性规格。  - 固定规格：适用于业务用量较为稳定的场景，按固定规格折算收取每小时使用的容量费用。   独享型负载均衡器独有字段，必须与l4_flavor_name对应规格的类型一致，即都为弹性规格或都为固定规格。 |
        
     
     
  
  3. 创建Ingress。 
     ```
     kubectl create -f ingress-test.yaml
     ```
     回显中包含"ingress-test created"，表示Ingress服务已创建。
     
     
  
  4. 查看已创建的Ingress。 
     ```
     kubectl get ingress
     ```
     回显如下，表示Ingress服务创建成功。
     ```
     NAME          CLASS    HOSTS     ADDRESS          PORTS   AGE
     ingress-test  cce      *         121.**.**.**     80      10s
     ```
     
     
  
  5. 访问工作负载（例如[Nginx工作负载](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html#cce_10_0047__section155246177178)），在浏览器中输入访问地址http://121.\*\*.\*\*.\*\*:80进行验证。
     
     其中，121.\*\*.\*\*.\*\*为统一负载均衡实例的IP地址。
     
     
   
- [添加Ingress时对接已有ELB]
  
  CCE支持在添加Ingress时选择对接已有的ELB。
  1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl连接集群。
  
  2. 创建名为"**ingress-test.yaml** "的YAML文件，此处文件名可自定义。
     
     ```
     vi ingress-test.yaml
     ```
     ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
     - CCE在1.23版本集群开始Ingress切换到networking.k8s.io/v1版本，之前版本集群使用networking.k8s.io/v1beta1。v1版本与v1beta1版本的区别请参见[关于CCE v1.23集群中Ingress API版本升级的说明]。
     
     - 对接已有独享型ELB规格必须支持应用型（HTTP/HTTPS），且网络类型必须支持私网（有私有IP）。
      
     **以1.23及以上版本集群为例，YAML文件配置如下：**
     ```
     apiVersion: networking.k8s.io/v1
     kind: Ingress 
     metadata: 
       name: ingress-test
       annotations: 
         kubernetes.io/elb.id: <your_elb_id>  #替换为您已有的ELB ID
         kubernetes.io/elb.ip: <your_elb_ip>  #替换为您已有的ELB IP
         kubernetes.io/elb.class: performance  #ELB类型
         kubernetes.io/elb.port: '80'
     spec:
       rules: 
       - host: ''
         http: 
           paths: 
           - path: '/'
             backend: 
               service:
                 name: <your_service_name>  #替换为您的目标服务名称
                 port: 
                   number: 8080             #替换为您的目标服务端口，如果填其他端口可能出现非预期结果
             property:
               ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
             pathType: ImplementationSpecific
       ingressClassName: cce
     ```
     **以1.21及以下版本集群为例，YAML文件配置如下：**
     ```
     apiVersion: networking.k8s.io/v1beta1
     kind: Ingress 
     metadata: 
       name: ingress-test
       annotations: 
         kubernetes.io/elb.id: <your_elb_id>  #替换为您已有的ELB ID
         kubernetes.io/elb.ip: <your_elb_ip>  #替换为您已有的ELB IP
         kubernetes.io/elb.class: performance  #ELB类型
         kubernetes.io/elb.port: '80'
         kubernetes.io/ingress.class: cce
     spec:
       rules: 
       - host: ''
         http: 
           paths: 
           - path: '/'
             backend: 
               serviceName: <your_service_name>  #替换为您的目标服务名称
               servicePort: 80  #替换为您的目标服务端口，如果填其他端口可能出现非预期结果
             property:
               ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
     ```
     表3关键参数说明 
     | 参数                       | 是否必填 | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
     |:---|:---|:---|:---|
     | kubernetes.io/elb.id    | 否    | String    | 为负载均衡实例的ID，取值范围：1-100字符。 该参数可与kubernetes.io/elb.ip二选一填写，二者产生冲突时以kubernetes.io/elb.id为准。**该参数在创建完成后不可修改**。 **获取方法：** 在控制台的"服务列表"中，单击"网络 \> 弹性负载均衡 ELB"，单击ELB的名称，在ELB详情页的"基本信息"页签下找到"ID"字段复制即可。                                                                                                                                                                                                                  |
     | kubernetes.io/elb.ip     | 否     | String | 为负载均衡实例的服务地址。 该参数可与kubernetes.io/elb.id二选一填写，二者产生冲突时以kubernetes.io/elb.id为准。**该参数在创建完成后不可修改**。 创建Ingress时，共享型ELB支持指定公网IP或私网IP，独享型ELB只支持指定私网IP。                                                                                                                                                                                                                                                                                            |
     | kubernetes.io/elb.class   | 是   | String  | 负载均衡器类型。**该参数在创建完成后不可修改**。 - union：共享型负载均衡。  - performance：独享型负载均衡，仅支持1.17及以上集群，详情请参见[共享型弹性负载均衡与独享型负载均衡的功能区别](https://support.huaweicloud.com/productdesc-elb/elb_pro_0004.html)。   说明： ELB Ingress对接已有的独享型ELB时，该独享型ELB必须支持应用型（HTTP/HTTPS）规格。                  |
     | kubernetes.io/elb.port | 否   | String    | 界面上的对外端口，为注册到负载均衡服务地址上的端口。 取值范围：1\~65535，HTTP协议默认为80，HTTPS协议默认为443。 说明： - 共享型ELB的部分端口为高危端口，默认被屏蔽，如21端口。  - 如果选择已有的负载均衡器，不同集群之间的监听器端口不支持复用，同一个集群中多个Ingress可使用相同的监听器端口，但实际生效的监听器配置将以最早创建的Ingress配置为准，详情请参见[同一集群中多个Ingress使用同一个ELB的配置说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0954.html)。   |
        
     
     
  
  3. 创建Ingress。 
     ```
     kubectl create -f ingress-test.yaml
     ```
     回显中包含"ingress-test created"，表示Ingress服务已创建。
     
     
  
  4. 查看已创建的Ingress。 
     ```
     kubectl get ingress
     ```
     回显如下，表示Ingress服务创建成功。
     ```
     NAME          CLASS    HOSTS     ADDRESS          PORTS   AGE
     ingress-test  cce      *         121.**.**.**     80      10s
     ```
     
     
  
  5. 访问工作负载（例如[Nginx工作负载](https://support.huaweicloud.com/usermanual-cce/cce_10_0047.html#cce_10_0047__section155246177178)），在浏览器中输入访问地址http://121.\*\*.\*\*.\*\*:80进行验证。
     
     其中，121.\*\*.\*\*.\*\*为统一负载均衡实例的IP地址。
     
     
   
#### 相关文档
- 如果您需要获取客户端源IP，详情请参见[不同场景下容器内获取客户端源IP](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00035.html)。
- 如果您需要使用更多ELB Ingress的高级功能，请参见[ELB Ingress注解（Annotations）配置合集](https://support.huaweicloud.com/usermanual-cce/cce_10_0695.html)。
- 如果出现从外部无法访问Ingress的问题，请参见[集群外部访问Ingress异常](https://support.huaweicloud.com/cce_faq/cce_faq_00313.html)逐步排查根因。
- 如果ELB Ingress配置HTTPS证书后存在访问异常，请参见[为ELB Ingress配置了HTTPS证书后访问异常的原因有哪些？](https://support.huaweicloud.com/cce_faq/cce_faq_00455.html)排查证书配置是否正确。
 
