Keepalived高可用集群搭建

Keepalived的功能:

keepalived实现了高可用集群,最初是为了lvs设计的,专门监控服务器各节点的状态,后来加入了VRRP功能,防止单点故障.

####################################################################################################

环境准备

在这里插入图片描述
使用keepalived实现web服务器的高可用
####################################################################################################

搭建步骤:

1.环境配置
为移动终端和两台web服务器配置好ip和yum源(上图的ip仅供参考)
2.安装web服务

[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.4.100" > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd

[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "192.168.4.200" > /var/www/html/index.html
[root@web2 ~]# systemctl restart httpd

3.安装Keepalived软件

[root@web1 ~]# yum -y install keepalived
[root@web2 ~]# yum -y install keepalived

4.修改web1的配置文件

[root@web1 ~]# vim /etc/keepalived/keepalived.conf 
global_defs {
   notification_email {
     [email protected]                                         //设置报警收件人邮箱
   }
   notification_email_from [email protected]          //设置发件人
   smtp_server 192.168.200.1                                      //定义邮箱服务器
   smtp_connect_timeout 30  
   router_id web1                                                 //设置路由id号
}  

vrrp_instance VI_1 {
    state MASTER                                                  //主服务器为MASTER(备份服务器为BACKUP)
    interface eth0                                                //定义网络接口
    virtual_router_id 51                                          //主备服务器VRID号必须一致
    priority 100                                                  //服务器优先级,优先级高,优先获取VIP,主服务器必须比备份服务器的优先级高
     advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111                                            //主备服务器的密码必须一致
    }
    virtual_ipaddress {                                           //主服务器优先获取该VIP
        192.168.4.80
    }
}

[root@web1 ~]# systemctl start keepalived              //启动服务

5.修改web2的配置文件

[root@web2 ~]# vim /etc/keepalived/keepalived.conf              //与web1配置相差不多,但是需要修改一些配置
global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id web2                                               //	路由id改为web2
}

vrrp_instance VI_1 {
    state BACKUP                                               //设置为备份服务器BACKUP
    interface eth0
    virtual_router_id 51                                     
    priority 50                                                //优先级设置为50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.4.80
    }
}

[root@web2 ~]# systemctl start keepalived

6.关闭防火墙和selinux

[root@web1 ~]# iptables -F                              //启动keepalived会自动添加一个drop的防火墙规则,需要清空
[root@web1 ~]# setenforce 0

[root@web2 ~]# iptables -F
[root@web2 ~]# setenforce 0

7.查看两台web服务器的VIP信息

[root@web1 ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:fb:44:fa brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.100/24 brd 192.168.4.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 192.168.4.80/32 scope global eth0
       valid_lft forever preferred_lft forever
       
[root@web2 ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:c6:ee:7c brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.200/24 brd 192.168.4.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 192.168.4.80/32 scope global eth0
       valid_lft forever preferred_lft forever

8.客户端测试访问
使用curl命令连接http://192.168.4.80,查看web界面;当关闭web1服务器时,再次访问http://192.168.4.80,查看web界面为web2服务器的页面.
#####################################################################################################

注意事项:

当配置文件写错了,启动了keepalived的服务时:
1. 发现无法查看web服务器所获取的VIP信息;
2.当配置文件修改正确并重启keepalived服务后,web2服务器依然无法查看web服务器所获取的VIP信息;
3.因为两台web服务器的优先级,web1大于web2,需要把web1的keepalived服务stop,然后查看web2服务器的keepalived服务,再 次查看会出现所获取的VIP信息.

猜你喜欢

转载自blog.csdn.net/gao_2109/article/details/99755938