EKS API查询异常慢,一次查询得4~5s,命令补全也是需要API查询的,导致执行一次查询命令可能比平常花费10倍时间
现象
1、命令输入后返回慢
2、get edit delete所有操作都慢
排查
1、同样需要查询API的kuboard在执行各项操作时无延迟
2、升级了EKS版本1.29到1.30,未解决
3、升级kubectl命令版本1.29到1.31,未解决
4、机器负载没有问题
5、kubectl get时增加–v=10,输出详细日志,日志中
I1015 12:45:34.027235 1710713 round_trippers.go:466] curl -v -XGET -H "Accept: application/json;as=Table;v=v1;g=meta.k8s.io,application/json;as=Table;v=v1beta1;g=meta.k8s.io,application/json" -H "User-Agent: kubectl/v1.31.1 (linux/amd64) kubernetes/948afe5" 'https://.gr7.ap-southeast-1.eks.amazonaws.com/api/v1/nodes?limit=500'
I1015 12:45:38.027352 1710713 round_trippers.go:495] HTTP Trace: DNS Lookup for .gr7.ap-southeast-1.eks.amazonaws.com resolved to [{172.28.66.220 } {172.28.100.180 }]
I1015 12:45:38.028492 1710713 round_trippers.go:510] HTTP Trace: Dial to tcp:172.28.66.220:443 succeed
I1015 12:45:38.105966 1710713 round_trippers.go:553] GET https://.gr7.ap-southeast-1.eks.amazonaws.com/api/v1/nodes?limit=500 200 OK in 4078 milliseconds
I1015 12:45:38.106221 1710713 round_trippers.go:570] HTTP Statistics: DNSLookup 66 ms Dial 0 ms TLSHandshake 6 ms ServerProcessing 69 ms Duration 4078 ms
DNS 查询耗时 66 毫秒。
TCP 连接的拨号耗时 0 毫秒(连接是立即成功的)。
TLS 握手耗时 6 毫秒。
服务器处理时间为 69 毫秒。
整个请求的总时长为 4078 毫秒,耗时都在请求这里了,TCP连接速度是很快的。
6、清理kuboard etcd数据库
7、同VPC的kuboard正常,那我将kubectl命令配置在kuboard机器上,发现kubectl命令返回结果的速度正常。
8、重启kubectl慢的机器,启动后kubectl命令速度正常
原因
不是服务端(API)和客户端(kubectl)的问题
机器负载和网络也没有问题
原因未知,重启后正常