zoukankan      html  css  js  c++  java
  • Mycat+haproxy中使用keepalived保障haproxy的高可用

    整体结构图

    一、安装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的高可用。

    参考: keepalived两台机器同时出现vip问题

  • 相关阅读:
    Git
    Spring
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
    Linux
  • 原文地址:https://www.cnblogs.com/linlf03/p/13972833.html
Copyright © 2011-2022 走看看