http: TLS handshake error from xxx.xxx.xxx.xxx:xxxx : read tcp xxx.xxx.xxx.xxx:6443->xxx.xxx.xxx.xxx

目录

一、问题描述

二、问题分析

解决方法:


一、问题描述

使用阿里云SLB做 kube-apiserver负载,查看kube-apiserver 日志一直在报 TLS handshake error 错误,100.121.5.128、100.120.70.1两个IP也不知道是从哪里来的,频率在每隔2s执行两次,问题如下:

2022/6/15 11:59:32 I0615 11:59:32.213207       1 log.go:172] http: TLS handshake error from 100.120.70.1:25664: read tcp 172.17.47.140:26443->100.120.70.1:25664: read: connection reset by peer
2022/6/15 11:59:32 I0615 11:59:32.660931       1 log.go:172] http: TLS handshake error from 100.121.5.128:18063: read tcp 172.17.47.140:26443->100.121.5.128:18063: read: connection reset by peer
2022/6/15 11:59:34 I0615 11:59:34.192356       1 log.go:172] http: TLS handshake error from 100.120.70.1:49522: read tcp 172.17.47.140:26443->100.120.70.1:49522: read: connection reset by peer
2022/6/15 11:59:34 I0615 11:59:34.746833       1 log.go:172] http: TLS handshake error from 100.121.5.128:31929: read tcp 172.17.47.140:26443->100.121.5.128:31929: read: connection reset by peer
2022/6/15 11:59:36 I0615 11:59:36.270063       1 log.go:172] http: TLS handshake error from 100.120.70.1:28159: read tcp 172.17.47.140:26443->100.120.70.1:28159: read: connection reset by peer
2022/6/15 11:59:36 I0615 11:59:36.815505       1 log.go:172] http: TLS handshake error from 100.121.5.128:45285: read tcp 172.17.47.140:26443->100.121.5.128:45285: read: connection reset by peer
2022/6/15 11:59:38 I0615 11:59:38.201727       1 log.go:172] http: TLS handshake error from 100.120.70.1:21729: read tcp 172.17.47.140:26443->100.120.70.1:21729: read: connection reset by peer

二、问题分析

1、排查未使用SLB集群无此问题

2、排查两个集群配置相同无差别

3、此IP(100.121.5.128、100.120.70.1)未在集群中与宿主机使用

4、排查阿里SLB健康检查

5、当关闭阿里云SLB健康检查后问题停止,分析阿里云健康检查问题

6、查看阿里云SLB健康检查支持两种方式:TCP协议健康检查通过发送SYN握手报文来检测服务器端口是否存活;HTTP协议健康检查通过发送HEAD/GET请求模拟浏览器的访问行为来检查服务器应用是否健康

7、尝试修改为http健康检查由于kube-apiserver使用https协议,健康检查失败

解决方法:

方法一:停掉健康检查

 

方法二:使用http协议调用勾选http_4xx、http_5xx

方法三:开启kube-apiserver http端口

# vim /etc/kubernetes/manifests/kube-apiserver.yaml
 - --enable-admission-plugins=NodeRestriction
    - --enable-bootstrap-token-auth=true
    - --etcd-cafile=/etc/kubernetes/pki/etcd/ca.pem
    - --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.pem
    - --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client-key.pem
    - --etcd-servers=https://172.17.47.140:2379,https://172.17.47.141:2379,https://172.17.47.142:2379
    - --insecure-port=0
    - --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt

修改:

# 修改为
- --insecure-port=8080
# ip 为不限制,默认为127.0.0.1
- --insecure-bind-address=0.0.0.0

重启服务

systemctl daemon-reload
systemctl restart docker
systemctl restart kubelet

SLB配置

 

参考:

docs/concepts/aws.md: document TLS handshake errors in kube-apiserver · kinvolk/lokomotive@243459f · GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公不搬砖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值