为负载均衡类型的Service配置超时时间
LoadBalancer Service支持设置连接空闲超时时间,即没有收到客户端请求的情况下保持连接的最长时间。如果在这个时间内没有新的请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。
配置超时时间后,如果您在CCE控制台删除超时时间配置或在YAML中删除对应的annotation,ELB侧的配置将会保留。
约束与限制
|
超时时间类型 |
支持的ELB类型 |
使用限制 |
支持的集群版本 |
|---|---|---|---|
|
空闲超时时间 |
独享型 |
- |
|
|
空闲超时时间 |
共享型 |
不支持UDP协议。 |
|
|
请求超时时间 |
独享型、共享型 |
仅支持HTTP、HTTPS协议。 |
|
|
响应超时时间 |
独享型、共享型 |
仅支持HTTP、HTTPS协议。 |
创建负载均衡并配置超时时间
- 登录CCE控制台,单击集群名称进入集群。
- 在左侧导航栏中选择“服务”,在右上角单击“创建服务”。
本示例中仅列举配置SNI的必选参数,其余参数保持默认,您可根据需求参考通过控制台创建(新版)进行设置。
- 设置基础配置参数。
参数
说明
示例
访问类型
选择“负载均衡”。
-
服务名称
自定义服务名称,可与工作负载名称保持一致。
nginx
命名空间
工作负载所在命名空间。
default
选择器
您可以添加Pod标签的键值,Service将会根据标签与工作负载的Pod进行关联,将流量导向包含该标签的Pod。
您也可以引用已有工作负载的标签,单击“引用负载标签”,在弹出的窗口中选择负载,然后单击“确定”。
app:nginx

- 设置负载均衡配置参数。
参数
说明
示例
负载均衡器
选择弹性负载均衡的类型及创建方式。其中独享型ELB需选择“应用型(HTTP/HTTPS)”或“网络型(TCP/UDP/TLS)&应用型(HTTP/HTTPS)”,否则监听器端口将无法启用HTTP/HTTPS。- 选择已有:仅支持选择与集群在同一个VPC下的ELB实例。如果没有可选的ELB实例,请单击“创建负载均衡器”跳转到ELB控制台创建。
- 自动创建:自动创建的负载均衡实例将创建到集群所在的VPC,具体配置如表1所示。
说明:
当集群使用共享VPC时,不支持自动创建共享型ELB。
选择已有“独享型”的“网络型(TCP/UDP/TLS)&应用型(HTTP/HTTPS)”实例

- 填写访问设置参数。
参数
说明
示例
服务亲和
选择将外部流量路由到节点本地或集群范围的端点,详情请参见服务亲和(externalTrafficPolicy)。- 集群级别:集群下所有节点的IP+节点端口均可以访问到此服务关联的负载,服务访问会因路由跳转导致一定性能损失,且无法获取到客户端源IP。
- 节点级别:只有通过负载所在节点的IP+节点端口才可以访问此服务关联的负载,服务访问没有因路由跳转导致的性能损失,且可以获取到客户端源IP。
集群级别
端口配置
- 协议:请根据业务的协议类型选择。Service在使用ELB提供的TLS或HTTP协议时,根据Kubernetes中定义的实现方案,需要将该参数设置为TCP并选择对应的监听器前端协议。详细说明请参见Service所用的协议。
- 容器端口:工作负载程序实际监听的端口,需用户确定。例如nginx默认使用80端口。
- 服务端口:Service使用的端口。
- 监听器前端协议:ELB监听器的前端协议,是客户端与负载均衡监听器建立流量分发连接所使用的协议。当选择独享型负载均衡器类型时,包含“应用型(HTTP/HTTPS)”方可支持配置HTTP/HTTPS;包含“网络型(TCP/UDP/TLS)”方可支持配置TLS。
说明:在创建LoadBalancer类型Service时,会自动生成一个随机节点端口号(NodePort)。
- 协议:TCP协议
- 容器端口:80
- 服务端口:80
- 监听器前端协议:HTTP

- 设置负载监听器相关配置参数。
参数
说明
使用限制
示例
空闲超时时间
客户端连接空闲超时时间。在超过空闲超时时间一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。
取值:- 若为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

- 单击“创建”,创建Service。
- 登录CCE控制台,单击集群名称进入集群。
- 在左侧导航栏中选择“服务”,在右上角单击“创建服务”。
- 设置Service参数。本示例中仅列举设置超时时间的必选参数,其余参数可根据需求参考通过控制台创建(旧版)进行设置。
- Service名称:自定义服务名称,可与工作负载名称保持一致。
- 访问类型:选择“负载均衡”。
- 选择器:添加标签,Service根据标签选择Pod,填写后单击“确认添加”。也可以引用已有工作负载的标签,单击“引用负载标签”,在弹出的窗口中选择负载,然后单击“确定”。
- 负载均衡器:选择弹性负载均衡的类型、创建方式。
- 类型:“独享型”或“共享型”。
- 创建方式:本文中以选择已有ELB为例进行说明,关于自动创建的配置参数请参见表3。
- 端口配置:
- 监听器配置:
- 高级配置:选择合适的超时时间进行设置。
配置
说明
使用限制
空闲超时时间
客户端连接空闲超时时间。在超过空闲超时时间一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。
取值:- 若为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控制台查看。
- 切换至“监听器”页签,单击新建端口对应的监听器名称,查看配置是否开启。
