Linux运维之LVS配置高可用集群(keepalived)

Linux运维之LVS配置高可用集群(keepalived)

  • 什么是keepalived

keepalived是集群管理中保证集群高可用的一个服务软件(防止单点故障)。
它能够保证当个别节点宕机时,整个网络可以不间断地运行,所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

keepalived工作原理:
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。

  • keepalived的配置

配置准备:(已经配置完毕的DR模式的LVS)
四台rhel7.3版本的虚拟机
server1:ip为172.25.11.1 作为lvs调度服务器DS
server2:ip为172.25.11.2 作为后端服务器RS
server3:ip为172.25.11.3 作为后端服务器RS
server4:ip为172.25.11.4 作为高可用,并配置高可用yum源
并给四台虚拟机添加vip:172.25.11.100
keepallived相关的rpm包,可自行官网下载

在server1与server4上分别解压keepalived并编译安装:

tar zxf keepalived-2.0.6.tar.gz
yum install gcc openssl-devel -y
cd keepalived-2.0.6
./configure --prefix=/usr/local/keepalived --with-init=systemd
make &&make install

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
配置启动配置文件 #调度器(server1和server4)都进行相同操作:

ln -s /usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig	##配置文件,脚本都做成软链接
ln -s /usr/local/keepalived/etc/keepalived/ /etc/
ln -s /usr/local/keepalived/sbin/keepalived /sbin/

关闭ldirectord(因为keepalived也有健康检查)
删除之前临时添加的VIP(因为keepalived会自己加上)

systemctl stop ldirectord
systemctl disable ldirectord
ip addr del 172.25.11.100/24 dev eth0

在这里插入图片描述
配置keepalived:
编写主节点server1的配置文件

cd /etc/keepalived
vim keepalived.conf
编写如下:
global_defs {
   notification_email {
     root@localhost					##节点宕机给谁发送邮件
   }
   notification_email_from keepalived@localhost		##发送人名称
   smtp_server 127.0.0.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 51		
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.11.100			##VIP
    }
}

virtual_server 172.25.11.100 80 {
    delay_loop 3			##当rs报错时,尝试多少次之后才邮件告知
    lb_algo rr
    lb_kind DR				##DR模式
    #persistence_timeout 50
    protocol TCP

    real_server 172.25.11.2 80 {
	TCP_CHECK {
        weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
    real_server 172.25.11.3 80 {
	TCP_CHECK {
        weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

编写备节点server4的配置文件:
可将server1的配置文件复制过来进行修改

cd /etc/keepalived
vim keepalived.conf
修改如下:
state BACKUP
priority 50		##修改这两个选项

在这里插入图片描述
启动两个节点的server1和server4的keepalived

systemctl start keepalived
systemctl enable keepalived

在这里插入图片描述
查看server1和server4的规则:
在这里插入图片描述
在这里插入图片描述
测试:
在物理机上访问:curl 172.25.11.100
可以看到轮询
在这里插入图片描述
关闭server2的http服务,再次在物理机上访问(可能稍有延迟),也不会报错
ipvsadm策略里也会把down掉的那台rs自动剔除
mail可以看到会有邮件告知哪台的down了(没有mail命令的话,yum install -y mailx)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
down掉server(主节点)的keepalived服务
可以看到VIP会自动去掉,然后会漂移到server4上
服务正常访问,看日志可以看到VIP和主备切换的信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
server1再次开启keepalived,会自动接管VIP,并进入MASTER状态

在这里插入图片描述
END

猜你喜欢

转载自blog.csdn.net/weixin_44828950/article/details/93364443