搭建TiDB负载均衡环境-LVS+KeepAlived实践
作者: 我是咖啡哥 原文来源:https://tidb.net/blog/f614b200
昨天,发了一篇使用HAproxy+KP搭建TiDB负载均衡环境的文章,今天我们再用LVS+KP来做个实验。
环境信息
TiDB版本:V7.1.0
haproxy版本:2.6.2
OS环境:Centos 7.9
VIP:192.168.1.238
TiDB Server IP:192.168.1.217、192.168.1.237
LVS+KP安装节点:192.168.1.214、192.168.1.215
1、安装vs+keepalived
sudo -i yum -y install keepalived ipvsadm yum -y install popt* libnl-devel gcc
2、去tidb server挂载lvs的vip到lo口
注意这里挂载的是32的IP地址。不是24.
/sbin/ip addr add 192.168.1.238/32 dev lo
并且在tidb server上vi /etc/rc.local 添加以下内容,主要作用,tidb server节点主机重启后,自动挂载VIP
# start_tidb_vip echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce /sbin/ip addr add 192.168.1.238/32 dev lo
3、配置主kp
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { notification_email { router_id lvs_tidb_217 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 238 priority 100 advert_int 1 nopreempt virtual_ipaddress { 192.168.1.238/24 dev eth0 } } virtual_server 192.168.1.238 4000 { delay_loop 1 lb_algo wlc lb_kind DR persistence_timeout 0 protocol TCP real_server 192.168.1.217 4000 { weight 1 TCP_CHECK { connect_timeout 2 nb_get_retry 3 delay_before_retry 2 connect_port 4000 } } real_server 192.168.1.237 4000 { weight 1 TCP_CHECK { connect_timeout 2 nb_get_retry 3 delay_before_retry 2 connect_port 4000 } } }
4、配置从kp
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { router_id lvs_tidb_237 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 238 priority 90 advert_int 1 nopreempt virtual_ipaddress { 192.168.1.238/24 dev eth0 } } virtual_server 192.168.1.238 4000 { delay_loop 1 lb_algo wlc lb_kind DR persistence_timeout 0 protocol TCP real_server 192.168.1.217 4000 { weight 1 TCP_CHECK { connect_timeout 2 nb_get_retry 3 delay_before_retry 2 connect_port 4000 } } real_server 192.168.1.237 4000 { weight 1 TCP_CHECK { connect_timeout 2 nb_get_retry 3 delay_before_retry 2 connect_port 4000 } } }
注意:1、同一集群的2份配置文件参数的区别只有router_id和优先级priority,其余都一样。2、lvs的vip不用手动挂载,启动kp时会自动挂载,如是手动挂载,需要手动做arping。3、同一网段的lvs+kp集群,不同集群的配置参数virtual_router_id必须不一样,所以搭建多套lvs集群时,需要手动修改virtual_router_id。
5、启动lvs和kp
ipvsadm --save > /etc/sysconfig/ipvsadm systemctl start ipvsadm systemctl start keepalived.service
6、测试lvs,找一台不是lvs和tidb server的服务器,连接lvs的vip测试
mysql -uroot -p -h192.168.1.238 -P4000
连接后lvs显示如下:
sudo ipvsadm -Ln
断开连接后显示如下:
sudo ipvsadm -Ln
7、测试lvs高可用
在主lvs上重启kp,验证vip漂移到从
systemctl restart keepalived.service
无问题后在从lvs上执行,验证vip漂移到主
systemctl restart keepalived.service
8、申请tidb用户的sudo权限
如果想使用tidb用户来管理LVS和KP,需要tidb用户有相关sudo权限。
(1)tidb用户sudo权限(lvs节点)
sudo ipvsadm systemctl status/start/stop/restart/reload keepalived.service
IP: LVS+KP安装所在节点:192.168.1.214、192.168.1.215
(2)tidb用户权限(qs节点)sudo /sbin/ip、/sbin/arping 的所有权限IP:TiDB Server IP:192.168.1.217、192.168.1.237

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
黑客威胁要泄露从 Reddit 窃取的 80GB 机密数据
BlackCat (ALPHV) 勒索软件团伙威胁称,计划公布从 Reddit 窃取的一些机密数据;除非 Reddit 支付赎金,或者改变其备受争议的 API 价格上涨措施。 今年 2 月份,Reddit 披露其系统因为一名员工遭到网络钓鱼攻击而被黑。此次网络钓鱼攻击使威胁行为者能够访问 Reddit 的系统并窃取内部文档、源代码、员工数据以及有关公司广告商的有限数据。 BlackCat 方面认领了此次攻击,并表示在入侵公司系统期间窃取了 80 GB 的压缩数据。该团队声称,他们曾在 4 月 13 日和 6 月 16 日两次尝试联系 Reddit,要求支付 450 万美元用于删除数据,但没有收到回复。 “我在第一封电子邮件中告诉他们,我会等待他们的 IPO 到来。这似乎是一个绝佳的机会。但我们非常确定 Reddit 不会为他们的数据支付任何费用,我们预计会泄露数据。但我乐见其成,公众将会看到他们跟踪的关于用户的所有统计数据,以及我们获取的所有有趣的机密数据。你知道他们也在默默地审查用户吗?” Reddit 方面拒绝回应此威胁事件,也没有透露有关 2 月份这场攻击或幕后黑手的任何进一步细...
- 下一篇
面向故障处理的可观测性体系建设
笔者从 12 年开始入行,从事 DevOps 研发工作,做过部署系统、监控系统、可观测性相关产品,也做过 SRE 一线和管理工作,对于可观测性的理解和实践,有一些小小的见解,利用本文和大家做一个探讨分享。本文主要内容包括: 可观测性在整个商业体系中的位置和价值 如何快速发现故障,使用哪类指标告警 SRE 在谈论故障定位的时候,谈的是什么 如何找到故障直接原因,找到止损依据 如何让可观测性系统呈现观点,辅助洞察,定位故障 可观测性在整个商业体系中的位置和价值 做一个事,首先得有价值,如果价值太小不值得投入。可观测性也不例外,我们首先分析一下可观测性在整个商业体系中的位置和价值。思考第一个问题:作为在线类产品,我们希望客户/用户有一个好的产品体验,那怎么算一个好的产品体验? 很明显,产品体验包括功能体验和可靠性体验。功能体验依赖产品设计和迭代速度,跟今天的话题关系不大暂且按下不表。可靠性体验呢?可靠性体验核心就是追求高可用、低延迟,通俗讲就是每次打开站点或app,都不报错,速度嗖嗖的。那如何才能具有好的可靠性体验呢? 其实如果一切正常,就应该是可用且速度快的,除非哪里出了问题,也就是发生了...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8编译安装MySQL8.0.19