前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mycat HA(高可用) 与 LB(负载均衡)17

Mycat HA(高可用) 与 LB(负载均衡)17

作者头像
franket
发布2021-12-02 09:52:07
1770
发布2021-12-02 09:52:07
举报
文章被收录于专栏:技术杂记

其中的核心部分在这里

代码语言:javascript
复制
vrrp_script checkhaproxy {
	script "/usr/local/keepalived/script/chk_haproxy.bash"
	weight -20 
	interval 3
}
...
...
    track_script {
            checkhaproxy
    }

track_script 中调用 checkhaproxy

checkhaproxy 的意思是:

每3秒种执行一次 /usr/local/keepalived/script/chk_haproxy.bash 脚本 如果反馈结果是 0,就保持原优先级 priority ,如果是 1 ,就将优先级降低 20,也就是检查到 haproxy 状态异常后,就降级,以便让另一台服务器的keepalived进程可以抢到IP

为了避免网络的不稳定还可以加入 fall N (代表连续N次检查失败才算异常) 和 rise N (代表连续N次检查成功就算正常)

优先级改变的算法是这样的:

  • 如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加
  • 如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少
  • 其他情况,维持原本配置的优先级,即配置文件中priority对应的值

Note: keepalived 相互之间的通讯要使用到组播,如果没打开,会出现几个实例同时抢占着IP的情况,打开方式是在iptables中加入 -A INPUT -d 224.0.0.18 -j ACCEPT,然后重载iptables配置


启动keepalived

先确保两边的haproxy都是正常运行的

代码语言:javascript
复制
[root@h101 script]# /usr/local/keepalived/sbin/keepalived -f /etc/keepalived/keepalived.conf
[root@h101 script]#

两边的keepalived启动后,以初始设定优先级高的keepalived为Master

当优先级高的keeaplived检测到haproxy异常后,会自动降级20,然后重新选举Master,这时另一台服务器的优先级就相对较高,更有优势,于是抢到IP,成为新的Master

在原master上执行以下命令,可以看到IP的漂移过程

代码语言:javascript
复制
[root@h102 mycat-web]# ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:b6:a8:f8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.143/24 brd 192.168.1.255 scope global eth3
    inet6 fe80::20c:29ff:feb6:a8f8/64 scope link 
       valid_lft forever preferred_lft forever
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:b6:a8:02 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.102/24 brd 192.168.100.255 scope global eth2
    inet 192.168.100.222/24 scope global secondary eth2
    inet6 fe80::20c:29ff:feb6:a802/64 scope link 
       valid_lft forever preferred_lft forever
[root@h102 mycat-web]# ps faux | grep haproxy 
root     12707  0.0  0.0 103256   828 pts/1    S+   23:48   0:00  |       \_ grep haproxy
haproxy  12118  0.0  0.0  14260   936 ?        Ss   23:42   0:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
[root@h102 mycat-web]# kill 12118; watch -n .5 ip a 
[root@h102 mycat-web]# 

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动keepalived
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档