[集群架构]利用keepalived软件,构建一个web集群服务器。

keepalived软件,是一款支持健康检查的类似LVS-DR架构的调度软件。


预先准备环境:

web1:192.168.4.100

web2:192.168.4.150


yum install -y keepalived       //安装支持软件包


打开web1配置文件:

vim /etc/keepalived/keepalived.conf    //按照如下配置

global_defs {

   notification_email {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id web3                         //设置路由ID号

   vrrp_skip_check_adv_addr

   vrrp_strict

   vrrp_garp_interval 0

   vrrp_gna_interval 0

}


vrrp_instance VI_1 {

    state BACKUP                       //设置主备(BACKUP、MASTER)

    interface eth0                       //定义网络接口

    virtual_router_id 51              //主备服务器VRID号必须一致

    priority 100                           //服务器优先级,优先级高优先获取VIP

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111                //主备服务器密码必须一致

    }

    virtual_ipaddress {

             192.168.4.80                //谁是主服务器谁获得该VIP

    }

}


打开web2配置文件:

vim /etc/keepalived/keepalived.conf    //按照如下配置

global_defs {

   notification_email {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id web4

   vrrp_skip_check_adv_addr

   vrrp_strict

   vrrp_garp_interval 0

   vrrp_gna_interval 0

}


vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 51

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

192.168.4.80

    }

}

启动服务:

systemctl start keepalived 


启动keepalived会自动添加一个drop的防火墙规则,需要使用如下命令清空

iptables -F



keepalived软件使用的另一种方式:keepalived+LVS

参考链接中的LVS-DR模式配置本地环回地址:https://teddyou.com/?id=48

配置一台LVS调度器:

步骤同上,但配置文件修改方法不同。

配置文件参考如下:

! Configuration File for keepalived


global_defs {

   notification_email {

     [email protected]

     [email protected]

     [email protected]

   }

   notification_email_from [email protected]

   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_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 50

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.4.15

    }

}


virtual_server 192.168.4.15 80 {

    delay_loop 6

    lb_algo rr

    lb_kind DR

    #persistence_timeout 50

    protocol TCP

}

    real_server 192.168.4.200 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

}

    real_server 192.168.4.250 80 {

        weight 1

        TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

}

[root@proxy1 ~]# systemctl start keepalived
[root@proxy1 ~]# ipvsadm -Ln                     #查看LVS规则
[root@proxy1 ~]# ip a  s                          #查看VIP配置

启动服务清理防火墙规则即可。


注意!有一个东西需要理解。

keepalived只是一个备份的软件,可以自动的转移虚拟IP,使浏览者无法感觉到服务器异常,例如,搭建一个keepalived+Nginx架构的负载均衡,在主的搭建了keepalived 环境的Nginx调度服务器尚未出现问题的时候,从的keepalived 将不会发挥任何作用,但当主的宕机以后,从的服务器就会自动接管IP,实现调度作用。由于客户访问的都是一个IP,所以并不会感受到出现过问题。、

也就是说不论是keepalived+LVS还是keepalived+Nginx都需要把这些服务搭建在一台服务器上。web服务器则只管访问的事情。

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。