企业级web服务集群实战——LVS+Keepalived实现高可用负载均衡

LVS+Keepalived实现高可用负载均衡

负载均衡方案系统架构拓扑图

在这里插入图片描述

安装LVS和keepalived软件包

节点规划
主机名IP角色备注
DS1IP1:192.168.213.136 VIP:192.168.213.200LVS负载调度器1VIP为LVS的浮动IP
DS2IP1:192.168.213.161 VIP:192.168.213.200LVS负载调度器2VIP为LVS的浮动IP
RS1192.168.213.129真实服务器1提供WEB服务
RS2192.168.213.135真实服务器2提供WEB服务
NFS192.1 68.213.233数据共享服务器提供网页共享数据SER
初始环境配置

(1)配置主机名(略)
(2)处理防火墙(略)
(3)同步时钟源(略)

搭建LVS-DR集群

注意:测试好集群之后,将绑定的浮动IP摘掉。
建议:两个节点依次配置测试,配置后,不用保存。

安装keepalived

在两个负载均衡器上配置keepalived

配置keepalived实现LVS负载均衡

LVS MASTER keepalived.conf

[root@ds1 ~]# cd /etc/keepalived/
[root@ds1 keepalived]# cp -p keepalived.conf{,.bak}
[root@ds1 keepalived]# vim keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_1
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    lvs_sync_daemon_interface ens33
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.213.200/24 dev ens33 label ens33:1
    }
}
virtual_server 192.168.213.200 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 0	#此值为0,方便测试,每次刷新页面结果会不一样
    protocol TCP
    real_server 192.168.213.129 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 8
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.213.135 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 8
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}

LVS BACKUP keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    lvs_sync_daemon_interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.213.200/24 dev ens33 label ens33:1
    }
}
virtual_server 192.168.213.200 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 0
    protocol TCP
    real_server 192.168.213.129 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 8
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.213.135 80 {
        weight 1
        TCP_CHECK {
        connect_timeout 8
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
}

重启keepalived systemctl restart keepalived

结果测试

查看浮动ip

在DR1 (主) 上查看IP信息
在这里插入图片描述在DR2 (备) 上查看IP信息
在这里插入图片描述由此可见浮动IP在负载均衡主节点上

在网页上访问测试

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

测试故障切换

(1)在linux终端上写测试脚本

# vim keepalived.sh
#!/bin/bash
URL="http://192.168.213.200"
while true
do
    curl -I $URL >/dev/null 2>&1
    if [ $? -eq 0 ]
    then
        echo "$URL is 0K ..."
    else
        echo "$URL is ERR..."
    fi
    sleep 2
done

注意:该测试节点是任意的一个linux节点,只要和192.168.213.200网段通信正常即可
运行脚本,持续监控 sh keepalived.sh
模拟故障 systemctl stop keepalived
查看ds2网卡,浮动IP已经漂移过来了
在这里插入图片描述查看脚本监控结果,业务没有中断

sh keepalived.sh
http://192.168.213.200 is 0K ...
……
http://192.168.213.200 is 0K ...
http://192.168.213.200 is 0K ...

模拟故障恢复 systemctl start keepalived
查看IP,浮动IP再次漂移到主节点上;查看脚本监控结果,业务正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值