keepalived+haproxy 实现的服务高可用及负载均衡

文章目录


通过对keepalived的学习,我们知道之前的学习LVS+keepalived可以实现一个四层的负载均衡+高可用,但是不能实现七层上的调度。这里我们可以用keepalived+haproxy实现一个七层的负载均衡+高可用 。

实验思路:使用haproxy作为调度节点,使用keepoalived的高可用,最后实现七层(应用层)的调度。

实验环境:
后端服务器:server3[172.25.5.3]、server4[172.25.5.4]
haproxy主机: server1[172.25.5.1]、server2[172.25.5.2]

首先在server1、server2上安装keepalived
注意:需要提前配置好高可用的yum仓库

yum install keepalived -y

这里将server1作为mastar,server2作为backup
对server1上的keepalived进行配置(须删除掉调度的部分,只留下高可用部分即可,在配置时,须使用外部脚本/opt/haproxy.sh):

[root@server1 ~]# cat /opt/check_haproxy.sh 
#!/bin/bash
systemctl status haproxy &> /dev/null || systemctl restart haproxy &> /dev/null
killall -0 haproxy
if [ $? -ne 0 ];then
	systemctl stop keepalived
fi

脚本解释:首先使用 systemctl status haproxy查看haproxy服务的状态,如果服务状态正常(在运行中)不执行任何操作,如果服务没有正常运行,执行systemctl restar haproxy来启动haproxy服务。使用[ $? -ne 0 ]通过对执行结果的判断,如果执行成功,不做操作;如果执行失败,关闭keepalived,此时vip资源会迁移到备机(server2)。

keepalived配置文件:

! Configuration File for keepalived

global_defs {
     notification_email {
     root@localhost
   }
   notification_email_from keepalived
   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_script check_haproxy {
    script "/opt/check_haproxy.sh"
    interval 2
    weight 0
}

vrrp_instance VI_1 {
    state MASTER
   interface eth0
    virtual_router_id 56
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
         check_haproxy
    }
    virtual_ipaddress {
        172.25.5.100
    }
}

此时keepalived主机就配置完成。

同样,在server2上安装keepalived,并且将刚才的外部脚本复制到/opt/ 下。
修改server2上的keepalived配置文件:

! Configuration File for keepalived

global_defs {
     notification_email {
     root@localhost
   }
   notification_email_from keepalived
   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_script check_haproxy {
    script "/opt/check_haproxy.sh"
    interval 2
    weight 0
}

vrrp_instance VI_1 {
    state BACKUP     //修改状态为backup
   interface eth0
    virtual_router_id 56
    priority 50    advert_int 1    //优先级修改为小于master的优先级
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
         check_haproxy
    }
    virtual_ipaddress {
        172.25.5.100
    }
}

此时,启动server1、server2上的keepalived和haproxy
七层副在均衡+高可用就完成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值