更新时间:2024-12-04 GMT+08:00

Service配置超时时间

LoadBalancer Service支持设置连接空闲超时时间,即没有收到客户端请求的情况下保持连接的最长时间。如果在这个时间内没有新的请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。

约束与限制

  • 支持设置超时时间的场景如下:

    超时时间类型

    支持的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及以上版本
    • 其他更高版本集群
  • 更新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.keepalive_timeout: '300'  # 客户端连接空闲超时时间
  name: nginx 
spec: 
  ports: 
  - name: service0 
    port: 80
    protocol: TCP 
    targetPort: 80
  selector: 
    app: nginx 
  type: LoadBalancer
表1 annotation关键参数说明

参数

是否必填

参数类型

描述

kubernetes.io/elb.keepalive_timeout

String

客户端连接空闲超时时间,在超过keepalive_timeout时长一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。

取值:

  • 若为TCP协议,取值范围为10-4000s,默认值为300s。
  • 若为HTTP/HTTPS/TERMINATED_HTTPS监听器,取值范围为(0-4000s)默认值为60s。
  • 若为UDP协议,取值范围为10-4000s,默认值为300s。