记一次现网k8s中pod连接数据库异常的问题分析及解决实践(tcp_tw_recycle与tcp_tw_reuse内核参数修改)

背景:

在某项目部署测试过程中, k8s中的微服务出现连接集群之外的数据库服务超时,虽然是偶发性,但出现频率较高,已对安全产品按期交付构成较大风险,需要尽快解决。

问题分析:

为方便更加清晰的理解问题,首先介绍下服务整体部署架构。在3台VM虚机中部署k8s集群,在k8s集群内部署安全产品的容器服务,而数据库服务则是部署另外3台VM进行高可用,部署架构图1如下:

   图1 安全服务整体架构图标题

 

控制台中的日志报错为以下截图2:

图2 控制台日志报错图标题

 

起初我也认为这是一个简单的数据库连接超时问题,于是首先进行了常规的排查。

1.检查工程的k8s配置文件中db host的配置问题,没有问题;

2.检查网络状态,进入容器中对数据库ip地址进行telnet测试,也是可以正常返回的,没有问题;

3.检查数据库主机是否有对源包进行限制,运维同事反馈并未对安全产品访问做限制,没有问题;

4.检查HikariCP数据库连接池配置,经过日志排查,发现启动的时候连接是没有报错的,且前几次连接都没有问题,超时是出现在几次正常连接后;

5.检查是否存在慢查询和数据库连接数是否正常,一切正常。

定位问题:

经过多轮的检查,并尝试修改数据库连接配置,发现无论对数据库配置连接的参数如何修改,虽然数据库连接日志报错信息发生了变化,但是寻根究底,其本质原因依旧是超时的问题,如下图3。

图3 控制台日志其他异常报错图题

由于所有资源池都使用了相同的标准化k8s环境,导致排查问题时直接忽略了k8s本身,各种尝试未果后我们将目光重新投向了k8s集群本身

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值