# 为ELB Ingress配置慢启动持续时间
慢启动指负载均衡器向组内新增的后端服务器Pod线性增加请求分配权重，直到配置的慢启动时间结束，负载均衡器向后端服务器Pod正常发送完请求的启动模式。慢启动能够实现业务的平滑启动，成功避免业务抖动问题。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
配置慢启动持续时间后，如果您在YAML中删除对应的annotation，将不启用慢启动。
#### 前提条件
- 已创建一个CCE Standard或CCE Turbo集群，且集群版本为v1.23及以上。
- 集群中需提前部署可用的工作负载用于对外提供访问。若您无可用工作负载，可参见[创建无状态负载（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)。
 
#### 约束与限制
- 仅独享型负载均衡支持HTTP/HTTPS/GRPC类型的后端服务器组Pod开启慢启动功能。
- 仅在流量分配策略使用加权轮询算法时生效。
- 慢启动仅对新增后端服务器Pod生效，后端服务器组Pod首次添加后端服务器慢启动不生效。
- 后端服务器的慢启动结束之后，不会再次进入慢启动模式。
- 在健康检查开启时，后端服务器Pod在线后慢启动生效。
- 在健康检查关闭时，慢启动立即生效。
- 在配置慢启动后，该Ingress下的所有转发策略都会生效。
 
#### 设置慢启动持续时间
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
     namespace: default
     annotations:
       kubernetes.io/elb.port: '80'
       kubernetes.io/elb.id: <your_elb_id>  #替换为您已有的ELB ID
       kubernetes.io/elb.class: performance
       kubernetes.io/elb.slowstart: '30' #设置慢启动持续时间
   spec:
     rules:
       - host: ''
         http:
           paths:
             - path: /
               backend:
                 service:
                   name: <your_service_name>  #替换为您的目标服务名称
                   port:
                     number: 80             #替换为您的目标服务端口
               property:
                 ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH
               pathType: ImplementationSpecific
     ingressClassName: cce
   ```
   表1慢启动参数说明 
   | 参数                          | 是否必填 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   |:---|:---|:---|:---|
   | kubernetes.io/elb.slowstart | 否      | String | 负载均衡器向慢启动模式下的后端服务器Pod线性增加请求分配权重，当配置的慢启动持续时间期限结束后，负载均衡器向后端服务器Pod发送完整的请求比例，此后本次添加的后端服务器Pod退出慢启动模式。 **v1.23以上版本的集群支持此字段**。 取值范围：30-1200。 参数说明：慢启动持续时间，单位秒。 - 独享型负载均衡器生效。  - 目标服务分配策略类型为加权轮询算法且不开启会话保持时生效。   |
      
   
   
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
   ```
   
   
 
