为负载均衡类型的Service配置超时时间
LoadBalancer Service支持设置连接空闲超时时间,即没有收到客户端请求的情况下保持连接的最长时间。如果在这个时间内没有新的请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。
 
   配置超时时间后,如果您在CCE控制台删除超时时间配置或在YAML中删除对应的annotation,ELB侧的配置将会保留。
约束与限制
| 
          超时时间类型  | 
        
          支持的ELB类型  | 
        
          使用限制  | 
        
          支持的集群版本  | 
       
|---|---|---|---|
| 
          空闲超时时间  | 
        
          独享型  | 
        
          -  | 
        
         
  | 
       
| 
          空闲超时时间  | 
        
          共享型  | 
        
          不支持UDP协议。  | 
        
         
  | 
       
| 
          请求超时时间  | 
        
          独享型、共享型  | 
        
          仅支持HTTP、HTTPS协议。  | 
       |
| 
          响应超时时间  | 
        
          独享型、共享型  | 
        
          仅支持HTTP、HTTPS协议。  | 
       
创建负载均衡并配置超时时间
- 登录CCE控制台,单击集群名称进入集群。
 - 在左侧导航栏中选择“服务”,在右上角单击“创建服务”。
 - 设置Service参数。本示例中仅列举设置超时时间的必选参数,其余参数可根据需求参考通过控制台创建进行设置。
      
      
- Service名称:自定义服务名称,可与工作负载名称保持一致。
 - 访问类型:选择“负载均衡”。
 - 选择器:添加标签,Service根据标签选择Pod,填写后单击“确认添加”。也可以引用已有工作负载的标签,单击“引用负载标签”,在弹出的窗口中选择负载,然后单击“确定”。
 - 负载均衡器:选择弹性负载均衡的类型、创建方式。 
        
- 类型:“独享型”或“共享型”。
 - 创建方式:本文中以选择已有ELB为例进行说明,关于自动创建的配置参数请参见表1。
 
 - 端口配置:
 - 监听器配置:
        
- 高级配置:选择合适的超时时间进行设置。 
          
配置
说明
使用限制
空闲超时时间
客户端连接空闲超时时间。在超过空闲超时时间一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。
取值:- 若为TCP协议,取值范围为10-4000s,默认值为300s。
 - 若为HTTP/HTTPS/TERMINATED_HTTPS监听器,取值范围为0-4000s,默认值为60s。
 - 若为UDP协议(仅独享型ELB支持),取值范围为10-4000s,默认值为300s。
 
共享型ELB实例的端口使用UDP协议时不支持此配置。
请求超时时间
等待客户端请求超时时间。包括两种情况:
- 读取整个客户端请求头的超时时长,如果客户端未在超时时长内发送完整个请求头,则请求将被中断。
 - 两个连续body体的数据包到达LB的时间间隔,超出请求超时时间将会断开连接。
 
取值范围为1-300s,默认值为60s。
仅端口启用HTTP/HTTPS时支持配置。
响应超时时间
等待后端服务器响应超时时间。请求转发后端服务器后,在等待超过响应超时时间没有响应,负载均衡将终止等待,并返回 HTTP504错误码。
取值范围为1-300s,默认值为60s。
仅端口启用HTTP/HTTPS时支持配置。
 
 - 高级配置:选择合适的超时时间进行设置。 
          
 
图1 配置超时时间
       - 单击“确定”,创建Service。
 
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
    | 
          参数  | 
        
          是否必填  | 
        
          参数类型  | 
        
          描述  | 
       
|---|---|---|---|
| 
          kubernetes.io/elb.keepalive_timeout  | 
        
          否  | 
        
          String  | 
        
          客户端连接空闲超时时间,在超过keepalive_timeout时长一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。 
          取值: 
           
  | 
       
| 
          kubernetes.io/elb.client_timeout  | 
        
          否  | 
        
          String  | 
        
          等待客户端请求超时时间,包括两种情况: 
 取值范围为1-300s,默认值为60s。  | 
       
| 
          kubernetes.io/elb.member_timeout  | 
        
          否  | 
        
          String  | 
        
          等待后端服务器响应超时时间。请求转发后端服务器后,等待超过member_timeout时长没有响应,负载均衡将终止等待,并返回 HTTP504错误码。 取值范围为1-300s,默认值为60s。  | 
       
验证配置
- 登录CCE控制台,单击集群名称进入集群。
 - 在左侧导航栏中选择“服务”,找到新建Service所在行,单击负载均衡名称跳转至ELB控制台查看。
 - 切换至“监听器”页签,单击新建端口对应的监听器名称,查看配置是否开启。
     
     
