
# 为负载均衡类型的Service配置新建与并发连接限速
本文介绍如何通过Service的kubernetes.io/elb.cps和kubernetes.io/elb.connection注解，为ELB监听器配置新建连接限速与并发连接限速，防止后端服务因突发流量而过载。
#### 前提条件
- 已创建一个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. 创建名为"**service-test.yaml** "的YAML文件，此处文件名可自定义。
   
   ```
   vi service-test.yaml
   ```
   以使用已有ELB为例，配置示例如下：
   ```
   apiVersion: v1
   kind: Service
   metadata:
     name: service-test
     labels:
       app: test
       version: v1
     namespace: default
     annotations:
       kubernetes.io/elb.class: performance  #需使用独享型ELB
       kubernetes.io/elb.id: <your_elb_id>  #替换为您已有的ELB ID
       kubernetes.io/elb.port-ranges: '{"cce-service-0":["100,200", "300,400"], "cce-service-1":["500,600", "700,800"]}'  #配置区间端口监听
       kubernetes.io/elb.connection: '10'  # 监听器并发限速
       kubernetes.io/elb.cps: '100' # 监听器新建限速
   spec:
     selector:
       app: test
       version: v1
     externalTrafficPolicy: Cluster
     ports:
       - name: cce-service-0
         targetPort: 80          #替换为您的容器端口
         nodePort: 0
         port: 100       #配置区间端口监听时，该参数值不生效，但不可缺少或重复，默认取值为区间起始端口
         protocol: TCP  
       - name: cce-service-1
         targetPort: 81          #替换为您的容器端口
         nodePort: 0
         port: 500       #配置区间端口监听时，该参数值不生效，但不可缺少或重复
         protocol: TCP  
     type: LoadBalancer
     loadBalancerIP: <your_elb_ip>  #替换为您已有的ELB私有IP
   ```
   涉及参数描述如下表所示。
   
   | 参数                           | 类型      | 描述                                                                                                                                                                                    |
   |:---|:---|:---|
   | kubernetes.io/elb.cps        | Integer | **参数解释**：监听器新建限速。 **约束限制**：当该限速值大于LB的限速值时，以LB的限速值生效 **取值范围**：0-1000000 **默认取值**：0，表示不限速。 |
   | kubernetes.io/elb.connection | Integer | **参数解释**：监听器并发限速 **约束限制**：当该限速值大于LB的限速值时，以LB的限速值生效 **取值范围**：0-1000000 **默认取值**：0，表示不限速。   |
      
   
   
3. 创建Service。 
   ```
   kubectl create -f service-test.yaml
   ```
   回显如下，表示Service已创建。
   ```
   service/service-test created
   ```
   
   
4. 查看ELB监听器限速配置。 
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002704331947.png "点击放大")
   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002674857420.png "点击放大")
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002674858336.png "点击放大")
   
   
 
