环境说明:
环境采用k8s部署所有应用,mysql为三节点的主从
问题现象:

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

kubectl logs mysql-ha-2 -c xenon >a.log
grep -i follower a.log
grep CANDIDATE a.log
![图片[1]恒星 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-恒星个人博客网站众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站](https://www.stellardata.top/wp-content/uploads/2023/01/image-3-1024x172.png)
查看日志,发生过主从切换
kubectl get svc|grep mysql
ipvsadm -L -n |grep -A3 10.233.15.214
kubectl get pods -o wide |grep mysql
查看到mysql从节点137上还存在5个没有释放的连接

原因:
后端服务去连接mysql,实际是与mysql的pod直接连接,mysql发生主从切换之后,由于后端pod检测以前的mysql还在存活,就不会重新建立连接,原来的主节点变为从节点,节点变为只读,业务执行写入就会报错,后面新建立的连接才是跟新master建连。
解决办法:
目前的临时解决办法只能手动重启下以前的mysql主节点,断开所有的旧连接,重新跟新master建连。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















暂无评论内容