环境说明:
环境采用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
查看日志,发生过主从切换
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
暂无评论内容