# 为负载均衡类型的Service配置超时时间
LoadBalancer Service支持设置连接空闲超时时间，即没有收到客户端请求的情况下保持连接的最长时间。如果在这个时间内没有新的请求， 负载均衡会暂时中断当前连接，直到下一次请求时重新建立新的连接。
![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
配置超时时间后，如果您在CCE控制台删除超时时间配置或在YAML中删除对应的annotation，ELB侧的配置将会保留。
#### 约束与限制
支持设置超时时间的场景如下：
| 超时时间类型 | 支持的ELB类型 | 使用限制             | 支持的集群版本                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| 空闲超时时间   | 独享型      | -                 | - v1.19集群：v1.19.16-r30及以上版本  - v1.21集群：v1.21.10-r10及以上版本  - v1.23集群：v1.23.8-r10及以上版本  - v1.25集群：v1.25.3-r10及以上版本  - 其他更高版本集群   |
| 空闲超时时间 | 共享型       | 不支持UDP协议。          | - v1.23集群：v1.23.13-r0及以上版本  - v1.25集群：v1.25.8-r0及以上版本  - v1.27集群：v1.27.5-r0及以上版本  - v1.28集群：v1.28.3-r0及以上版本  - 其他更高版本的集群    |
| 请求超时时间 | 独享型、共享型   | 仅支持HTTP、HTTPS协议。 | - v1.23集群：v1.23.13-r0及以上版本  - v1.25集群：v1.25.8-r0及以上版本  - v1.27集群：v1.27.5-r0及以上版本  - v1.28集群：v1.28.3-r0及以上版本  - 其他更高版本的集群    |
| 响应超时时间 | 独享型、共享型 | 仅支持HTTP、HTTPS协议。 | - v1.23集群：v1.23.13-r0及以上版本  - v1.25集群：v1.25.8-r0及以上版本  - v1.27集群：v1.27.5-r0及以上版本  - v1.28集群：v1.28.3-r0及以上版本  - 其他更高版本的集群    |
   
#### 创建负载均衡并配置超时时间
您可以通过以下方式进行创建。
- [通过控制台创建]
  1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
  
  2. 在左侧导航栏中选择"服务"，在右上角单击"创建服务"。 
     本示例中仅列举配置SNI的必选参数，其余参数保持默认，您可根据需求参考[通过控制台创建](https://support.huaweicloud.com/usermanual-cce/cce_10_0681.html#cce_10_0681__section6880821105120)进行设置。
     
     
  
  3. 设置基础配置参数。 
     
     | 参数    | 说明                                                                                                                                                                           | 示例       |
     |:---|:---|:---|
     | 访问类型 | 选择"负载均衡"。                                                                                                                                                                  | -       |
     | 服务名称   | 自定义服务名称，可与工作负载名称保持一致。                                                                                                                                                      | nginx     |
     | 命名空间 | 工作负载所在命名空间。                                                                                                                                                               | default |
     | 选择器   | 您可以添加Pod标签的键值，Service将会根据标签与工作负载的Pod进行关联，将流量导向包含该标签的Pod。 您也可以引用已有工作负载的标签，单击"引用负载标签"，在弹出的窗口中选择负载，然后单击"确定"。 | app:nginx |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002407634521.png "点击放大")
     
     
     
  
  4. 设置负载均衡配置参数。 
     
     | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 示例                                              |
     |:---|:---|:---|
     | 负载均衡器 | 选择弹性负载均衡的类型及创建方式。其中独享型ELB需选择"应用型（HTTP/HTTPS）"或"网络型（TCP/UDP/TLS）\&应用型（HTTP/HTTPS）"，否则监听器端口将无法启用HTTP/HTTPS。 - 选择已有：仅支持选择与集群在同一个VPC下的ELB实例。如果没有可选的ELB实例，请单击"创建负载均衡器"跳转到ELB控制台创建。  - 自动创建：自动创建的负载均衡实例将创建到集群所在的VPC，具体配置如[表1](https://support.huaweicloud.com/usermanual-cce/cce_10_0681.html#cce_10_0681__table3428724185319)所示。 说明： 当集群使用共享VPC时，不支持自动创建共享型ELB。    | 选择已有"独享型"的"网络型（TCP/UDP/TLS）\&应用型（HTTP/HTTPS）"实例 |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002374155156.png "点击放大")
     
     
     
  
  5. 填写访问设置参数。
     
     
     | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 示例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
     |:---|:---|:---|
     | 服务亲和 | 选择将外部流量路由到节点本地或集群范围的端点，详情请参见[服务亲和（externalTrafficPolicy）](https://support.huaweicloud.com/usermanual-cce/cce_10_0249.html#cce_10_0249__section18134208069)。 - 集群级别：集群下所有节点的IP+节点端口均可以访问到此服务关联的负载，服务访问会因路由跳转导致一定性能损失，且无法获取到客户端源IP。  - 节点级别：只有通过负载所在节点的IP+节点端口才可以访问此服务关联的负载，服务访问没有因路由跳转导致的性能损失，且可以获取到客户端源IP。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 集群级别                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
     | 端口配置   | - 协议：请根据业务的协议类型选择。根据Kubernetes中定义的实现方案，Service在使用ELB提供的非UDP协议时，都需要将该参数设置为TCP并选择对应的[监听器前端协议](https://support.huaweicloud.com/usermanual-cce/cce_10_0681.html#cce_10_0681__li1688115499190)。详细说明请参见[Service所用的协议](https://kubernetes.io/zh-cn/docs/reference/networking/service-protocols/#special-cases)。  - 容器端口：工作负载程序实际监听的端口，需用户确定。例如nginx默认使用80端口。  - 服务端口：Service使用的端口。 - 单端口监听：端口范围为1-65535。  - 区间端口监听：负载均衡服务支持创建某个端口范围的监听器，您最多可为每个监听器添加10个互不重叠的监听端口段。 为负载均衡服务配置区间端口监听需满足以下条件： - 集群版本为v1.23.18-r0、v1.25.13-r0、v1.27.10-r0、v1.28.8-r0、v1.29.4-r0、v1.30.1-r0及以上。  - 使用独享型ELB且选择TCP/UDP/TLS协议。  - 该功能依赖ELB能力，使用该功能前请确认ELB在当前区域是否支持四层协议全端口监听和转发。      - 监听器前端协议：ELB监听器的前端协议，是客户端与负载均衡监听器建立流量分发连接所使用的协议。当选择独享型负载均衡器类型时，包含"应用型（HTTP/HTTPS）"方可支持配置HTTP/HTTPS；包含"网络型（TCP/UDP/TLS）"方可支持配置TLS。   说明： 在创建LoadBalancer类型Service时，会自动生成一个随机节点端口号（NodePort）。 | - 协议：TCP协议  - 容器端口：80  - 服务端口：80  - 监听器前端协议：HTTP   |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002413836705.png "点击放大")
     
     
     
  
  6. 设置负载监听器相关配置参数。 
     
     | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 使用限制                                                       | 示例  |
     |:---|:---|:---|:---|
     | 空闲超时时间  | 客户端连接空闲超时时间。在超过空闲超时时间一直没有请求， 负载均衡会暂时中断当前连接，直到下一次请求时重新建立新的连接。 取值： - 若为TCP协议，取值范围为10-4000s，默认值为300s。  - 若为HTTP/HTTPS/TERMINATED_HTTPS监听器，取值范围为0-4000s，默认值为60s。  - 若为UDP协议（仅独享型ELB支持），取值范围为10-4000s，默认值为300s。   | 共享型ELB实例的端口使用UDP协议时不支持此配置。                                 | 60s  |
     | 请求超时时间 | 等待客户端请求超时时间。包括两种情况： - 读取整个客户端请求头的超时时长，如果客户端未在超时时长内发送完整个请求头，则请求将被中断。  - 两个连续body体的数据包到达LB的时间间隔，超出请求超时时间将会断开连接。   取值范围为1-300s，默认值为60s。                                                                                                                                                                                                                                                                  | 监听器前端协议[使用HTTP/HTTPS]时支持配置。  | 60s |
     | 响应超时时间 | 等待后端服务器响应超时时间。请求转发后端服务器后，在等待超过响应超时时间没有响应，负载均衡将终止等待，并返回 HTTP504错误码。 取值范围为1-300s，默认值为60s。                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 监听器前端协议[使用HTTP/HTTPS]时支持配置。 | 60s |
        
     ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002380324780.png "点击放大")
     
     
     
  
  7. 单击"创建"，创建Service。
   
- [通过kubectl命令行创建]
  当前支持通过注解的方式设置客户端连接空闲超时时间，示例如下：
  ```
  apiVersion: v1 
  kind: Service 
  metadata: 
    annotations:
      kubernetes.io/elb.id: <your_elb_id>    #本示例中使用已有的独享型ELB，请替换为您的独享型ELB ID
      kubernetes.io/elb.class: performance  # ELB类型
      kubernetes.io/elb.protocol-port: http:80 # 使用HTTP协议80端口
      kubernetes.io/elb.keepalive_timeout: '300'  # 客户端连接空闲超时时间
      kubernetes.io/elb.client_timeout: '60'      # 等待客户端请求超时时间
      kubernetes.io/elb.member_timeout: '60'      # 等待后端服务器响应超时时间
    name: nginx 
  spec: 
    ports: 
    - name: service0 
      port: 80
      protocol: TCP 
      targetPort: 80
    selector: 
      app: nginx 
    type: LoadBalancer
  ```
  表1annotation关键参数说明 
  | 参数                                  | 是否必填 | 参数类型       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  |:---|:---|:---|:---|
  | kubernetes.io/elb.keepalive_timeout | 否     | String | 客户端连接空闲超时时间，在超过keepalive_timeout时长一直没有请求， 负载均衡会暂时中断当前连接，直到下一次请求时重新建立新的连接。 取值： - 若为TCP协议，取值范围为10-4000s，默认值为300s。  - 若为HTTP/HTTPS/TERMINATED_HTTPS监听器，取值范围为0-4000s，默认值为60s。  - 若为UDP协议（仅独享型ELB支持），取值范围为10-4000s，默认值为300s。   |
  | kubernetes.io/elb.client_timeout    | 否      | String   | 等待客户端请求超时时间，包括两种情况： - 读取整个客户端请求头的超时时长：如果客户端未在超时时长内发送完整个请求头，则请求将被中断。  - 两个连续body体的数据包到达LB的时间间隔，超出client_timeout将会断开连接。   取值范围为1-300s，默认值为60s。                                                                                                                                                                                      |
  | kubernetes.io/elb.member_timeout    | 否      | String  | 等待后端服务器响应超时时间。请求转发后端服务器后，等待超过member_timeout时长没有响应，负载均衡将终止等待，并返回 HTTP504错误码。 取值范围为1-300s，默认值为60s。                                                                                                                                                                                                                                                                                                                                                                                              |
     
#### 验证配置
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 在左侧导航栏中选择"服务"，找到新建Service所在行，单击负载均衡名称跳转至ELB控制台查看。
3. 切换至"监听器"页签，单击新建端口对应的监听器名称，查看配置是否开启。 
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002380328072.png "点击放大")
   
   
   
 
