环境:k8s 1.18集群
状况:集群程序连接数据库不稳定,偶尔出现connection timeout
解决:由于进行了内核优化开启了net.ipv4.tcp_tw_recycle参数导致 (默认关闭)
找到一个答案:
当tcp_tw_recycle开启时(tcp_timestamps同时开启,快速回收socket的效果达到),对于位于NAT设备后面的Client来说,是一场灾难——会导到NAT设备后面的Client连接Server不稳定(有的Client能连接server,有的Client不能连接server)。也就是说,tcp_tw_recycle这个功能,是为“内部网络”(网络环境自己可控——不存在NAT的情况)设计的,对于公网,不宜使用
vim /etc/sysctl.conf
net.ipv4.tcp_tw_recycle = 0
# 生效配置
sysctl -p