request canceled (Client.Timeout exceeded while awaiting headers)

问题描述

某 Kubernetes 集群,负载高 Node 状态总是时而出现 NotReady 状态,集群不稳定,查看节点日志,存在如下错误:

Error updating node status, will retry: error getting node "node01": Get https://x.x.x.x:6443/api/v1/nodes/node01?timeout=10s: net/http: request canceled (Client.Timeout exceeded while awaiting headers)

问题分析

出现该问题的主要原因是:

高负载 node 与 apiserver 之间建立的连接数太多了,导致这些连接的 tls 握手时间越来越长,最终超过客户端超时时间 10 秒,客户端主动断开了连接

解决办法

为 apiserver 配置 --http2-max-streams-per-connection 参数,配置一个较大的值(例如 2000),以让每个连接支持更多的 stream,从而减少新连接的创建,减少连接数

Ref: https://www.lagou.com/lgeduarticle/53137.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值