
# 为ELB Ingress监听器配置新建与并发连接限速
本文介绍如何通过kubernetes.io/elb.cps和kubernetes.io/elb.connection注解，为ELB Ingress监听器配置新建连接限速与并发连接限速，防止后端服务因突发流量而过载。
#### 前提条件
- 已创建一个CCE Standard或CCE Turbo集群，且集群版本满足以下要求：
  - v1.30集群：v1.30.14-r100及以上
  
  - v1.31集群：v1.31.14-r60及以上
  
  - v1.32集群：v1.32.13-r30及以上
  
  - v1.33集群：v1.33.12-r10及以上
  
  - v1.34集群：v1.34.8-r10及以上
  
  - v1.35集群：v1.35.5-r10及以上
  
  - v1.36集群：v1.36.2-r0及以上
  
  - 其他更高版本的集群
   
- 集群中需提前部署可用的工作负载用于对外提供访问。若您无可用工作负载，可参见[创建无状态负载（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)。
 
#### 约束与限制
仅支持独享型ELB。
#### 通过kubectl命令行配置
1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl连接集群。
2. 创建名为"**ingress-test.yaml** "的YAML文件，此处文件名可自定义。
   
   ```
   vi ingress-test.yaml
   ```
   以使用已有ELB为例，配置示例如下：
   ```
   apiVersion: networking.k8s.io/v1
   kind: Ingress
   metadata:
     annotations:
       kubernetes.io/elb.id: 2c623150-17bf-45f1-ae6f-384b03******     # 已有ELB的ID
       kubernetes.io/elb.class: performance    # ELB的类型
       kubernetes.io/elb.port: '443'
       kubernetes.io/elb.tls-certificate-ids: 6cfb43c9de1a41a18478b868e3******,6cfb43c9de1a41a18478b868e*****   # HTTPS证书配置
       kubernetes.io/elb.connection: '10'  # 监听器并发限速
       kubernetes.io/elb.cps: '100' # 监听器新建限速
     name: ingress-test
     namespace: default
   spec:
     ingressClassName: cce
     rules:
     - host: example.com
       http:
         paths:
         - backend:
             service:
               name: test
               port:
                 number: 8888
           path: /
           pathType: ImplementationSpecific
           property:
             ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
   ```
   涉及参数描述如下表所示。
   
   | 参数                           | 类型      | 描述                                                                                                                                                                                                                           |
   |:---|:---|:---|
   | kubernetes.io/elb.cps        | Integer | **参数解释**：监听器新建限速。 **约束限制**：当该限速值大于LB的限速值时，以LB的限速值生效 **取值范围**：0-1000000 **默认取值**：0，表示不限速。 |
   | kubernetes.io/elb.connection | Integer | **参数解释**：监听器并发限速 **约束限制**：当该限速值大于LB的限速值时，以LB的限速值生效 **取值范围**：0-1000000 **默认取值**：0，表示不限速。   |
      
   
   
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      example.com     121.**.**.**     80,443  10s
   ```
   
   
5. 在ELB控制台，可查看443监听器当前生效的限速配置。 
   该监听器按可用区维度限制：每秒新建连接数为100，并发连接数为10。
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002704402247.png "点击放大")
   
   
   
 
