Mycat+haproxy中使用keepalived保障haproxy的高可用
Posted on 2020-11-14 13:24 work hard work smart 阅读(195) 评论(0) 编辑 收藏 举报整体结构图
一、安装haproxy
1、在192.168.127.135中安装haproxy。
上一节我们在192.168.127.134中安装haproxy,这节我们在192.168.127.135中安装haproxy
安装过程参考MyCat高可用设计
2、修改haproxy 配置
vi /etc/haproxy/haproxy.cfg
针对http的配置注释掉
配置连接两台mycat
3、启动haproxy
haproxy -f /etc/haproxy/haproxy.cfg
进程已经在了,说明启动成功
4、使用Navicat连接haproxy
1) 使用的端口为5000,防火墙开放5000端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=5000/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
2) Navicat连接haproxy
到这里,我们在192.168.127.134和192.168.127.135都安装了haproxy。
二、使用Keepalived保障haproxy的高可用
1、在192.168.127.134安装Keepalived
yum search keepalived
yum install -y keepalived.x86_64
2、修改keepalived配置文件
1) 注释vrrp_strict 将影响虚拟IP
cd /etc/keepalived
vi keepalived.conf
整体配置
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 } # 配置虚拟IP,一台为Master,另外一台为BACKUP。Master才能得到虚拟IP vrrp_instance VI_1 { state MASTER # ens33为网卡名称 使用ip address查看 interface ens33 virtual_router_id 51 priority 100 # 单播源地址IP unicast_src_ip 192.168.127.134 unicast_peer { 192.168.127.135 # 单播的目标地址 } advert_int 1 authentication { auth_type PASS auth_pass 1111 } # 虚拟Ip地址 virtual_ipaddress { 192.168.127.199 } track_script { chk_haproxy } } # 虚拟Ip,定义端口为6000 virtual_server 192.168.127.199 6000 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP # 本机地址。5000为haproxy端口 real_server 192.168.127.134 5000 { weight 1 # 心跳监测,监测haproxy是否存活 } }
2、在192.168.127.135安装Keepalived。(参考前面的步骤)
整体配置如下
! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_script chk_haproxy { script "killall -0 haproxy" interval 2 } # 配置虚拟IP,一台为Master,另外一台为Slave。Master才能得到虚拟IP vrrp_instance VI_1 { state BACKUP # ens33为网卡名称 使用ip address查看 interface ens33 virtual_router_id 51 priority 50 # 单播源地址IP unicast_src_ip 192.168.127.135 unicast_peer { 192.168.127.134 # 单播的目标地址 } advert_int 1 authentication { auth_type PASS auth_pass 1111 } # 虚拟Ip地址 virtual_ipaddress { 192.168.127.199 } track_script { chk_haproxy } } # 虚拟Ip,定义端口为6000 virtual_server 192.168.127.199 6000 { delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP # 本机地址。5000为haproxy端口 real_server 192.168.127.135 5000 { weight 1 # 心跳监测,监测haproxy是否存活 } }
3、启动Keepalived
分别启动134和135的keepalived
keepalived -f /etc/keepalived/keepalived.conf
使用ps查看是否启动成功
134中查看ip,可以看到多了一个虚拟ip,192.168.127.199
135中查看ip,则没有199的虚拟IP
4、Navicat连接keepalived
密码位mycat的密码
如下图,说明已经连接成功
5、移除134的haproxy
可以发现虚拟IP已经没有
135则由了虚拟IP地址。说明虚拟IP已经由134这台转移到了135这台了。
6、停止134的keepalived,可以发现使用虚拟Ip, keepalived仍然可用。
此时的虚拟IP转移到了135这台, 134则没有了虚拟IP199.
测试完毕后恢复134的keepalived。 测试虚拟地址在134这台。
6、停止134的haproxy, 可以发现192.168.127.199 任然可以访问, 虚拟IP转移到了135。
综上所述,就保证了haproxy的高可用。
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!