高可用软件keepalived部署LVS/DR模式+负载均衡

项目环境

这里我们使用四台机器,一台主服务器,一台备用代理服务器,两台后端服务器

master  ip:192.168.126.140  

backup  ip:192.168.126.133

nginx-web1 ip:192.168.126.139

nginx-web2 ip:192.168.126.142

我们会用到的虚拟的vip :192.168.126.178  注意要在同一个网段内

实战部署

1.环境设置

四台机器都要关闭防火墙和selinux,然后两台后端服务器先部署安装nginx,yum安装即可,这里就不再进行操作,如有需要请看之前的文章:http://t.csdn.cn/H0TkG

这是部署好的nginx测试访问页面

2.安装高可用软件keepalived

两台代理机器master和backup都要安装,ipvsadm是LVS的命令包

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


[root@backup ~]# yum -y install ipvsadm keepalived

3.配置master的keepalived

修改配置文件     [root@master ~]# vim /etc/keepalived/keepalived.conf

这里我们不用再给LVS制定分配规则,因为keepalived和LVS的适配度非常高,所以我们直接把分配规则蟹道乐keepalived的配置文件里

! Configuration File for keepalived

global_defs {
   router_id lvs-keepalived-master    #备用的backup改为lvs-backup
}

vrrp_instance VI_1 {
    state MASTER                #备用的机器可改为BACKUP
    interface ens33                #VIP绑定接口
    virtual_router_id 80         #VRID 同一组集群,主备一致
    priority 100            #本节点优先级,备用节点改为50
    advert_int 1            #检查间隔,默认为1s
    authentication {
        auth_type PASS
        auth_pass 1111  #密码可以修改,但要和备用机器的一致
    }
    virtual_ipaddress {
        192.168.126.178/24      # 在ens33网卡添加的虚拟vip   切记要在同一网段内
    }
}

virtual_server 192.168.126.178 80 {    #LVS配置 要访问的虚拟vip
        delay_loop 3  #启动3个进程
        lb_algo rr     #LVS调度算法
        lb_kind DR     #LVS集群模式(路由模式)
        nat_mask 255.255.255.0
        protocol TCP      #健康检查使用的协议
        real_server 192.168.126.139 80 {        #这是做负载均衡的后端服务器nginx-web1的ip
                weight 1
                inhibit_on_failure   #当该节点失败时,把权重设置为0,而不是从IPVS中删除
                TCP_CHECK {          #健康检查
                        connect_port 80   #检查的端口
                        connect_timeout 3  #连接超时的时间
                        }
                }
        real_server 192.168.126.142 80 {
                weight 1
                inhibit_on_failure
                TCP_CHECK {
                        connect_timeout 3
                        connect_port 80
                        }
                }
}

我们先可以启动keepalived测试一下是否能访问后端服务器

我们先让后端服务器nginx-web1、nginx-web2  在网卡上添加代理服务器的vip,两台机器都要执行

[root@ansible-web1 ~]# ip addr add dev lo 192.168.126.178/32
临时添加   如果要删除把add改成del即可

[root@ansible-web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
忽略arp广播

[root@ansible-web1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
匹配精确ip地址回包

 

如果我们要立即看到效果的话我们要把nginx的长连接调小,两台机器都调

测试

4.配置backup的keepalived

在backup机器上修改配置文件

! Configuration File for keepalived

global_defs {
   router_id lvs-keepalived-slave
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    nopreempt                    #不抢占资源
    virtual_router_id 80
    priority 50
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.126.178/24
    }
}

virtual_server 192.168.126.178 80 {
        delay_loop 3
        lb_algo rr
        lb_kind DR
        nat_mask 255.255.255.0
        protocol TCP
        real_server 192.168.126.139 80 {
                weight 1
                inhibit_on_failure
                TCP_CHECK {
                        connect_port 80
                        connect_timeout 3
                        }
                }
        real_server 192.168.126.142 80 {
                weight 1
                inhibit_on_failure
                TCP_CHECK {
                        connect_timeout 3
                        connect_port 80
                        }
                }
}

开启keepalived的服务之后我们会发现没有vip,因为vip在master上面,master的优先级高

我们先关闭master的keepalived,然后对backup进行测试,看vip是否能漂移

在backup上查看ip

可以查看到vip已经漂移到backup上了,我们进行浏览器访问

测试成功,就算master服务器宕机,用户也能访问服务器,这就实现了高可用

我们再次开启master的keepalived,可以看到vip又回到了master上,如果你的机器在vip漂移的时候没有,可以把优先级的差距调大一点

部署成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值