
# 为ELB Ingress配置IP类型的后端
默认情况下，在CCE集群中创建Service或Ingress对接ELB时，CCE会自动在ELB监听器添加对应的后端服务器，具体情况如下：
- 共享型ELB支持添加的后端服务器类型为云服务器，CCE Standard集群和Turbo集群添加的后端服务器都是云服务器（即节点）。
- 独享型ELB支持添加的后端服务器类型为云服务器、辅助弹性网卡、IP类型后端，其中CCE Standard集群添加的后端服务器为云服务器（即节点），CCE Turbo集群添加的后端服务器为Pod绑定的辅助弹性网卡。 在v1.25.16-r30、v1.27.16-r30、v1.28.15-r20、v1.29.13-r0、v1.30.10-r0、v1.31.6-r0、v1.32.1-r0及以上版本的集群中，支持为独享型ELB添加IP类型后端，可添加IP地址作为后端服务器，ELB的转发直接指向节点IP（CCE Standard）或Pod IP（CCE Turbo）。
  
 
如[图1]所示，如果多个ELB实例或多个监听器挂载相同后端服务器，同一个客户端通过这些ELB实例访问到相同的后端服务器时，后端服务器从弹性负载均衡处接收的客户端请求报文的源IP和源端口相同，会导致访问概率性失败或超时。详细说明请参见[为什么同一客户端同时访问不同ELB实例、IP或端口会概率性超时？](https://support.huaweicloud.com/elb_faq/elb_faq_0101.html)。如果将ELB的后端服务器配置为IP类型，则可有效避免上述问题。
图1IP类型后端应用场景   
![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002357913201.png)
#### 前提条件
- 已创建Kubernetes集群，且集群版本满足以下要求：
  - v1.25集群：v1.25.16-r30及以上
  
  - v1.27集群：v1.27.16-r30及以上
  
  - v1.28集群：v1.28.15-r20及以上
  
  - v1.29集群：v1.29.13-r0及以上
  
  - v1.30集群：v1.30.10-r0及以上
  
  - v1.31集群：v1.31.6-r0及以上
  
  - v1.32集群：v1.32.1-r0及以上
  
  - 其他更高版本集群
   
- 如果您需要通过命令行创建，请使用kubectl连接到集群，详情请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)。
 
#### 通过kubectl命令行配置
1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl连接集群。
2. 创建名为"**ingress-test.yaml** "的YAML文件，此处文件名可自定义。
   
   ```
   vi ingress-test.yaml
   ```
   以关联已有ELB为例，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.class: performance                #ELB类型，需指定独享型ELB
       kubernetes.io/elb.port: '80'
       kubernetes.io/elb.ip-target-enabled: 'true'       #配置IP类型后端
   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配置IP类型后端参数说明 
   | 参数                                  | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|:---|
   | kubernetes.io/elb.ip-target-enabled | String | 表示为ELB配置IP类型的后端，启用后该Service/Ingress添加的后端地址均为VPC子网内的IP。其中CCE Turbo集群的后端为\<Pod IP\>:\<targetPort\>，CCE Standard集群的后端为\<节点IP\>:\<NodePort\>。 - true：表示配置IP类型的后端。  - 不支持其他取值   注意： - 仅独享型ELB支持该特性。  - 该特性仅在创建Service/Ingress时支持开启，已经存在的Service/Ingress无法添加和删除该annotations，如需使用特性，请新建Service/Ingress。  - 如果Service/Ingress所使用的负载均衡器未开启IP类型后端功能，添加annotations后CCE会自动开启开关，且开启后无法关闭。  - 请确保Service/Ingress所使用的负载均衡器后端子网有足够的IP地址，否则该功能无法正常使用。您可以通过负载均衡器的"基本信息 \> 后端子网"添加多个后端子网来增加后端子网的IP地址。  - 其他注意事项请参考[通过IP类型后端功能添加服务器至ELB](https://support.huaweicloud.com/bestpractice-elb/elb_bp_0301.html)。   |
      
   
   
3. 创建Ingress。 
   ```
   kubectl create -f ingress-test.yaml
   ```
   回显类似如下，表示Ingress服务已创建。
   ```
   ingress.networking.k8s.io/ingress-test created
   ```
   
   
4. 查看已创建的Ingress。 
   ```
   kubectl get ingress
   ```
   回显如下，表示Ingress服务创建成功。
   ```
   NAME          CLASS    HOSTS     ADDRESS          PORTS   AGE
   ingress-test  cce      *         121.**.**.**     80      10s
   ```
   
   
 
#### 验证IP类型的后端是否创建成功
1. 登录[ELB控制台](https://console.huaweicloud.com/vpc/#/elb/list/grid)。
2. 找到Ingress关联的ELB，单击ELB名称。
3. 查看基本信息，该ELB已开启"IP类型后端"。 
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002357841741.png "点击放大")
   
   
   
4. 切换至"监听器"页签，查看监听器的后端服务器已添加为IP类型后端。 
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002357843757.png "点击放大")
   
   
   
 
