Keepalived+LVS


前言

在基本的LVS下可以实现负载均衡,但是依旧存在以下问题:
当某台real server down了,怎么办?
当LVS本身down了,怎么办?


一、Keepalived

使用Keepalived软件可以实现健康检测和主备冗余功能,实现高可用的负载均衡集群。

原理

vrrp协议:
VRRP的出现很好地解决了这个问题。VRRP将多台设备组成一个虚拟设备,通过配置虚拟设备的IP地址为缺省网关,实现缺省网关的备份。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。

VRRP的三种状态
VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。下表详细描述了三种状态。
在这里插入图片描述
VRRP工作原理
当Master设备出现故障时,路由器B和路由器C会选举出新的Master设备。新的Master设备开始响应对虚拟IP地址的ARP响应,并定期发送VRRP通告报文。

VRRP的详细工作过程如下:

VRRP备份组中的设备根据优先级选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
Master设备周期性向备份组内所有Backup设备发送VRRP通告报文,通告其配置信息(优先级等)和工作状况。
如果Master设备出现故障,VRRP备份组中的Backup设备将根据优先级重新选举新的Master。
VRRP备份组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的设备或者主机的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
原Master设备故障恢复时,若该设备为IP地址拥有者(优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。

二、项目准备

四台Rhel7.6版本虚拟机,配置好网络、防火墙、selinux、地址解析、时间同步等准备工作。
一台测试机。

三、操作步骤

# 首先确认LVS负载均衡正常:
ipvsadm -ln

在这里插入图片描述

# Master
yum install -y keepalived mailx
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost				#邮箱
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   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 {				#vrrp高可用
    state MASTER					#master状态
    interface ens33					#通信接口,与主机实际接口名称相同
    virtual_router_id 51				#VRID master和backup保持一致
    priority 100						#优先级
    advert_int 1						#心跳频率
    authentication {					#认证方式
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {				#lvs vip地址
        192.168.56.200
    }
}

virtual_server 192.168.213.200 80 {			#LVS虚拟服务
    delay_loop 6						#对rs的健康检测频率
    lb_algo rr							#调度算法
    lb_kind DR							#lvs工作模式
    #persistence_timeout 50				#持久连接
    protocol TCP

    real_server 192.168.213.102 80 {			#rs定义
        weight 1							#权重
        TCP_CHECK {					#rs检测方式
            connect_timeout 3
            delay_before_retry 3
        }
    }

    real_server 192.168.213.103 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            delay_before_retry 3
        }
    }
}

# backup
 yum install -y keepalived mailx
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost				#邮箱
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   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 {				#vrrp高可用
    state MASTER					#master状态
    interface ens33					#通信接口,与主机实际接口名称相同
    virtual_router_id 51				#VRID master和backup保持一致
    priority 50						#优先级低于Master
    advert_int 1						#心跳频率
    authentication {					#认证方式
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {				#lvs vip地址
        192.168.56.200
    }
}

virtual_server 192.168.213.200 80 {			#LVS虚拟服务
    delay_loop 6						#对rs的健康检测频率
    lb_algo rr							#调度算法
    lb_kind DR							#lvs工作模式
    #persistence_timeout 50				#持久连接
    protocol TCP

    real_server 192.168.213.102 80 {			#rs定义
        weight 1							#权重
        TCP_CHECK {					#rs检测方式
            connect_timeout 3
            delay_before_retry 3
        }
    }

    real_server 192.168.213.103 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            delay_before_retry 3
        }
    }
}

在这里插入图片描述
在这里插入图片描述
vip在master上,当master掉线,vip会自动切换到backup。
在这里插入图片描述
当一台real server掉线,访问会分配到其他real server。


总结

以上就是Keepalived+LVS实现高可用负载均衡的操作。但是LVS仍有以下不足:
1.LVS在大规模网络中应用存在不足,各转发模式、网络拓扑复杂,运维成本高。
2.缺少YCP标志位DDOS攻击防御
3.主备部署方式不足,性能无法线性扩展。
对于DR模式,
1.LVS-RS必须在同一个VLAN
2.RS上绑定VIP,风险较大。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值