LVS(DR模式)+KeepAlived(HA高可用)

在上一个实验的基础上,我们讨论,当调度器server1也挂了,该怎么办?我们可以设置调度器的高可用,设置调度器的master(主)和backup(备)。

实验环境

  • 4台rhel7.5版本的虚拟机
主机服务
server1(172.25.24.1)master(主)
server4(172.25.24.4)backup(备)
server2(172.25.24.2)真正的服务器1
server3(172.25.24.3)真正的服务器2

实验步骤

server1(主)
  • 下载keepalive安装包,解压。
[root@server1 ~]# tar zxf keepalived-2.0.17.tar.gz   #解压

在这里插入图片描述

  • 解压完成后,源码编译。
[root@server1 keepalived-2.0.17]# yum install gcc openssl-devel -y
[root@server1 keepalived-2.0.17]# ./configure --help
[root@server1 keepalived-2.0.17]# ./configure --prefix=/usr/local/keepalived --with-init=systemd    #指定服务的打开方式
[root@server1 keepalived-2.0.17]# make && make install
  • 做一个软链接,关闭之前的ldirector服务,
[root@server1 keepalived]# ln -s /usr/local/keepalived/etc/keepalived /etc/
[root@server1 keepalived]# /etc/init.d/ldirectord stop
[root@server1 keepalived]# chkconfig ldirectord off
  • 服务的状态中有与服务启动相关的配置文件
[root@server1 keepalived]# systemctl status keepalived.service 
● keepalived.service - LVS and VRRP High Availability Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@server1 keepalived]# vim /usr/lib/systemd/system/keepalived.service
  • 将server1的eth0上原本有的100这个ip删除
[root@server1 keepalived]# ip addr del 172.25.24.100/24 dev eth0
  • keepalived的所有配置都在一个配置文件里面设置,支持的配置主要分为三类:
    1.全局配置(Global Configuration):作用于整个keepalived服务。
    2.VRRPD配置:keepalived的核心。
    3.虚拟服务配置:指定服务与负载均衡配置文件都是以块形式组织的,每个块都在{}包围的范围内。
[root@server1 keepalived]# vim /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {    #全局定义块
   notification_email {    #邮件通知
     root@localhost    #邮件发给本机用户 
   }
   notification_email_from keepalived@localhost    #设置邮件发送地址
   smtp_server 127.0.0.1   #smtp_server地址,为本机回环接口。
   smtp_connect_timeout 30   #服务超时时间
   router_id LVS_DEVEL   #load balance的标识ID,用于email报警
   vrrp_skip_check_adv_addr
  # vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}
##VRRPD的配置
vrrp_instance VI_1 {
    state MASTER  主机,备机为BACKUP,此状态是由priority的数值来决定的,当前priority的数值小于备机的数值
    interface eth0  #HA检测网络接口
    virtual_router_id 24   #主备机的virtual_router_id必须相同取值0-255
    priority 100   主机的优先级,必须大于备机
    advert_int 1  #主备之间的通告间隔秒数
    authentication { 
        auth_type PASS   #设置验证类型,主要由PASS和AH两种
        auth_pass 1111
    }
    #指定漂移地址(VIP)即切换到master时,这些IP会被添加,切换到BACKUP时,这些IP会被删除(传给ip addr命令)
    virtual_ipaddress {
        172.25.24.100
    }
}
#虚拟服务配置
virtual_server 172.25.24.100 80{   #定义虚拟服务器
    delay_loop 3
    lb_algo rr   #lvs调度算法里面的论询
    lb_kind DR  #lvs的DR模式
  #  persistence_timeout 50  #注释掉
    protocol TCP  #指定转发协议类型

    real_server 172.25.24.2 80 {   #配置服务节点
        TCP_CHECK {
        weight 1   #默认为1,0为失效
            connect_timeout 3   10秒无响应超时
            retry 3   #重复次数
            delay_before_retry 3   #重复间隔
        }
    }
    real_server 172.25.24.3 80 {
        TCP_CHECK {
        weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

}
  • 修改完成后,将此配置文件发送一份给server4(server4的安装包编译好之后):
[root@server1 keepalived]# scp /etc/keepalived/keepalived.conf server4:/etc/keepalived/
  • 开启服务keepalived。
[root@server1 keepalived]# systemctl start keepalived
server4主机(备)
  • 同理,获取keepalived的安装包,解压,安装编译工具(gcc,openssl-devel)进行源码编译。做一个软链接,过程同server1,不再赘述。
    将从server1上发送过来的配置文件再修改以下几处:
! Configuration File for keepalived

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 BACKUP    #备机为backup
    interface eth0
    virtual_router_id 24
    priority 50   #优先级小于主机的100,为50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.24.100
    }
}
virtual_server 172.25.24.100 80{
    delay_loop 3
    lb_algo rr
    lb_kind DR
  #  persistence_timeout 50
    protocol TCP

    real_server 172.25.24.2 80 {
        TCP_CHECK {
        weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
    real_server 172.25.24.3 80 {
        TCP_CHECK {
        weight 1
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }

}
  • 开启服务。
[root@server4 keepalived]# systemctl start keepalived
测试
  • 在server1:
    在这里插入图片描述
  • 此时server1上已经分配到了vip(172.25.24.100),而此时辅助server4上是没有此ip的。
    在这里插入图片描述
  • 将server2和server3上的httpd服务开启,并在真机测试:
    在这里插入图片描述
  • 关闭server1(master设备的)keepalived服务。VIP会漂移到server4(backup)主机上。
[root@server1 keepalived]# systemctl stop keepalived.service

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

  • 查看server4此时的日志信息,server4此时进入主机模式(master)。
    在这里插入图片描述
  • 当关闭server2或server3的httpd服务后,查看日志信息。
    在这里插入图片描述
当有错误时本机发邮件给本机的检测
  • server1(master)和server4(backup)都可以收到邮件,下面以server1为例:
    安装接收邮件所需要的软件:[root@server1 keepalived]# yum install mailx -y
  • 当关闭server2的httpd服务后查看邮件:
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值