k8s ipvs的已知长链接问题

环境说明:

环境采用k8s部署所有应用,mysql为三节点的主从

问题现象:

图片[1]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站

kubectl exec -it mysql-ha-0 -c xenon -- xenoncli cluster mysql

图片[2]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站

kubectl logs mysql-ha-2 -c xenon >a.log
grep -i follower a.log
grep CANDIDATE a.log

图片[3]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站
查看日志,发生过主从切换

kubectl get svc|grep mysql
ipvsadm -L -n |grep -A3 10.233.15.214
kubectl get pods -o wide |grep mysql

查看到mysql从节点137上还存在5个没有释放的连接
image-4

原因:

后端服务去连接mysql,实际是与mysql的pod直接连接,mysql发生主从切换之后,由于后端pod检测以前的mysql还在存活,就不会重新建立连接,原来的主节点变为从节点,节点变为只读,业务执行写入就会报错,后面新建立的连接才是跟新master建连。

解决办法:

目前的临时解决办法只能手动重启下以前的mysql主节点,断开所有的旧连接,重新跟新master建连。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容