前言
此前实现的LVS和NGINX他们都具有优秀的负载均衡的能力,但是它们都有一个致命的缺点。不论事使用LVS还是NGINX,他们都属于整个架构中的关键部分,都是单点故障
。keepalived就非常好的解决该问题。
keepalived是vrrp(virtual route redundent protocol)协议的软件实现方式,具有较高的冗余能力。vrrp百度百科。
一、keepalived安装及其配置
安装
~]# yum install keepalived -y
同时提供了systemctl的配置文件,支持systemctl管理
配置基于LVS-DR/NGINX负载均衡的高可用集群
配置文件如下
! Configuration File for keepalived
global_defs {
#此配置段为全局配置
notification_email {
root@localhost
#警告信息发送给那个邮箱
}
notification_email_from kaadmin@localhost
#kaadmin@localhost为发送此邮件的用户是谁
smtp_server 127.0.0.1
#邮件服务地址
smtp_connect_timeout 30
#发送邮件超时时长
router_id node1
#物理设备的唯一标识,最好为主机名
vrrp_mcast_group4 224.0.0.100
#组播地址,第一段不要修改,后面的可以随意修改
vrrp_skip_check_adv_addr
#vrrp_strict
#严格遵循vrrp标准,要注释掉,不然VIP不能被ping通
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
#vrrp实例配置段,多个实例不能同名;这里的名称为 VI_1
state MASTER
#初始状态,{MASTER|BACKUP},当前为MASTER,其他就为备
interface ens33
#网络接口
virtual_router_id 51
#虚拟路由的ID,主备要一致
priority 100
#优先级 0~255
advert_int 1
#发送心跳间隔时长,1s较为合理
authentication {
#认证信息,主备一致才能正常高可用
auth_type PASS
#认证方式,这里为普通字符认证
auth_pass 1111
#这里可用随机字符
}
virtual_ipaddress {
#配置VIP,可以多个,需要指定配置在那个网卡
172.16.10.200/16 dev ens33 label ens33:0
}
}
以上配置就能够,满足nginx和lvs-dr模型高可用集群
将该配置拷贝到备用服务器,修改state MASTER
为state BACKUP
,并修改优先级低于主服务器的优先级,还有router_id
启动服务
~]# systemctl start keepaliaved
~]# systemctl enable keepalived
二、LVS-NAT模型的高可用
为什么要单独提到NAT模型,因为LVS-NAT模型所有的Real-Server
网关都是指向的Director,此时VIP
和DIP
都要一起流动才可以达到高可用的目的;
vrrp_sync_group VG_1 {
#定义组
group {
VI_1 #name of vrrp_instance (below)
VI_2 #One for each moveable IP.
}
}
vrrp_instance VI_1 {
#定义实例,配置VIP地址
eth0
vip
}
vrrp_instance VI_2 {
#定义实例,配置DIP地址
eth0
dip
}
暂未进行证实是否可行,测试后更新
三、日志记录
编辑rsyslog.conf
添加以下配置:
local3.* /var/log/keepalived.log
#也可以是其他的local,但是不能和已有的冲突
重启日志服务
~]# systemctl restart rsyslog
修改keepalived的环境变量
~]# vim /etc/sysconfig/keepalived
修改以下内容
KEEPALIVED_OPTIONS="-D" 改为: KEEPALIVED_OPTIONS="-D -S 3"
#-S记录日志,支持LOCAL[1-7]
重新启动服务即可
<center>END</center>