前言

 此前实现的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 MASTERstate BACKUP,并修改优先级低于主服务器的优先级,还有router_id

启动服务


~]# systemctl start keepaliaved
~]# systemctl enable keepalived

二、LVS-NAT模型的高可用

 为什么要单独提到NAT模型,因为LVS-NAT模型所有的Real-Server网关都是指向的Director,此时VIPDIP都要一起流动才可以达到高可用的目的;

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>

Last modification:October 12th, 2019 at 09:22 pm
If you think my article is useful to you, please feel free to appreciate