Centos7部署Keepalived双机热备+LVS高可用群集

一、Keepalived 概述

Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health Checking)功能——判断 LVS 负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。Keepalived 的官方网站位于:http://www.keepalived.org/,在非 LVS 群集环境中使用时,Keepalived 也可以作为热备软件使用。

1.Keepalived 的热备方式

Keepalived 采用 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现 Linux 服务器的多机热备功能。VRRP 是针对路由器的一种备份解决方案——由多台路由器组成一个热备组,通过公用的虚拟 IP 地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其它路由器处于冗余状态,若当前在线的路由器失效,则其它路由器会自动接替(优先级决定接替顺序)虚拟 IP 地址,以继续提供服务。

二、部署Keepalived双机热备

1.准备工作

主机名 操作系统 IP地址
主调度器 Centos7 192.168.1.1
辅调度器 Centos7 192.168.1.2
客户机 Win7 192.168.1.88

2.配置调度服务器

主调度器与辅调度器步骤一样

1)安装支持软件

挂光盘,并配置yum源

[root@master ~]# yum -y install keepalived ipvsadm
[root@master ~]# systemctl enable keepalived

2)安装httpd服务

[root@master ~]# yum -y install httpd
为主调度器设置网页:
[root@master ~]# echo "<h1>This is master</h1>" > /var/www/html/index.html
为辅调度器设置网页:
[root@backup ~]# echo "<h1>This is backup</h1>" > /var/www/html/index.html

3)备份Keepalived主配置文件

[root@master ~]# cd /etc/keepalived/
[root@master keepalived]# cp keepalived.conf keepalived.conf.bak

在这里插入图片描述

4)编辑Keepalived主配置文件

主调度器上操作:

[root@master keepalived]# vi keepalived.conf
将原有数据删除,写入以下数据:
global_defs {
    
    
   router_id 1
}
vrrp_instance VI_1 {
    
    
    state MASTER
    interface ens33
    virtual_router_id 1
    priority 100
    advert_int 1
    authentication {
    
    
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {
    
    
        192.168.1.188
    }
}
辅调度器上要稍作修改:
  router_id 1  改为  router_id 2
  state MASTER  改为  state BACKUP
  priority 100  改为  priority 99
其他一致即可

在这里插入图片描述

5)启用服务

[root@master keepalived]# systemctl start keepalived
[root@master keepalived]# systemctl start httpd

查看 VIP 是否在此服务器

[root@master keepalived]# ip a

主调度器:
在这里插入图片描述
辅调度器:
在这里插入图片描述
因为辅调度器优先级低于主调度器,所以虚拟 IP 没在辅调度器,但当主调度器出现故障时,虚拟 IP 就会漂移到辅调度器上来供外界访问

3.验证

此期间反复断开、连接主服务器网卡进行查看

1)客户机 ping 漂移ip进行测试

如果有中断很短时间即恢复。说明双机热备生效
在这里插入图片描述

2)客户机访问http进行验证

如果显示不同的内容说明生效
在这里插入图片描述
开启主调度器网卡再次访问:
在这里插入图片描述

三、Keepalived+LVS群集

可使用实验一环境进行微调:
加两台Centos7机器

主机名 操作系统 IP地址
web-1 Centos7 192.168.1.3
web-2 Centos7 192.168.1.4

1.配置调度服务器

主调度器和辅调度器一致:

1)在调度器上删除httpd服务

[root@master ~]# systemctl stop httpd
[root@master ~]# yum -y remove httpd

2)修改Keepalived主配置文件

[root@master ~]# vi /etc/keepalived/keepalived.conf
在后一行添加:
virtual_server 192.168.1.188 80 {
    
    
        delay_loop 15
        lb_algo rr
        lb_kind DR
        protocol TCP
        
                real_server 192.168.1.3 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 4
                }
        }
                real_server 192.168.1.4 80 {
    
    
        weight 1
        TCP_CHECK {
    
    
                connect_port 80
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 4
                }
        }
}

在这里插入图片描述

3)加载系统内核的服务模块

[root@master ~]# modprobe ip_vs

4)查看系统模块运行状态

[root@master ~]# lsmod | grep ip_vs

在这里插入图片描述

5)开机启动时加载ip_vs模块

[root@master ~]# echo "modprobe ip_vs" >> /etc/rc.local
[root@master ~]# systemctl restart keepalived

在这里插入图片描述

2.配置LVS-DR群集策略

  • 因为 Keepalived 也是采用虚接口方式,为了避免地址冲突,就不做绑定了

主调度器与辅调度器都要做

1)调整/proc内核参数

[root@master ~]# cat <<END >> /etc/sysctl.conf 
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
END
[root@master ~]# sysctl -p

在这里插入图片描述

2)配置LVS-DR群集策略

[root@master ~]# ipvsadm -A -t 192.168.1.188:80 -s rr
[root@master ~]# ipvsadm -a -t 192.168.1.188:80 -r 192.168.1.3 -g -w 1
[root@master ~]# ipvsadm -a -t 192.168.1.188:80 -r 192.168.1.4 -g -w 1
[root@master ~]# ipvsadm-save
[root@master ~]# systemctl enable ipvsadm
[root@master ~]# ipvsadm -ln

在这里插入图片描述

3.Web服务器池配置

挂光盘,并配置yum源

1)web1服务器,web2服务器同样配置

[root@web-1 ~]# cat <<END >> /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.1.188
NETMASK=255.255.255.255
ONBOOT=yes
END
[root@web-1 ~]# systemctl restart network
[root@web-1 ~]# ip a

在这里插入图片描述

2)添加路由

[root@web-1 ~]# yum -y install net-tools       			  #安装路由工具
[root@web-1 ~]# echo "route add -host 192.168.1.188 dev lo:0" >> /etc/rc.local   #添加到开机自运行
[root@web-1 ~]# route add -host 192.168.1.188 dev lo:0    #临时添加
[root@web-2 ~]# route -n

在这里插入图片描述

3)调整/proc内核参数,关闭ARP响应

[root@web-1 ~]# cat <<END >> /etc/sysctl.conf 
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
END
[root@web-1 ~]# sysctl -p

在这里插入图片描述

4)安装 httpd 服务

Web1,Web2操作步骤一致

[root@web-1 ~]# yum -y install httpd
Web1测试页面:
[root@web-1 ~]# echo "This is web1" > /var/www/html/index.html
Web2测试页面:
[root@web-2 ~]# echo "This is web2" > /var/www/html/index.html
[root@web-1 ~]# systemctl enable httpd
[root@web-1 ~]# systemctl start httpd
[root@web-1 ~]# netstat -anpt | grep 80

4.测试lvs+Keepalived高可用集群

1)验证LVS负载均衡是否正常

在客户机浏览器访问192.168.1.188,查看是否能够切换网页
在这里插入图片描述
在这里插入图片描述
或者使用for循环语句来进行测试:

[root@backup ~]# for i in $(seq 10);do curl http://192.168.1.188;done

在这里插入图片描述

2)验证Keepalived双机热备是否正常

关闭 LVS 主调度器,客户机是否能够正常访问网页
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46902396/article/details/108922030