LVS部署 (中)---KeeaAlived 高可用,负载均衡

LVS 集群

LVS不具有对RS 健康检查(网络层 icmp, tcp层 判断端口,应用层获取资源)机制,keepalive 为其而生。

Keepalived是用C语言编写的路由软件。该项目的主要目标是为Linux系统和基于Linux的基础结构提供负载均衡和高可用性的简单而强大的功能。 负载平衡框架依赖于提供第4层负载平衡的著名且广泛使用的Linux虚拟服务器(IPVS)内核模块。Keepalived实现了一组检查器,以根据其运行状况动态,自适应地维护和管理负载平衡的服务器池。另一方面,VRRP实现了高可用性 协议。VRRP是路由器故障转移的基础砖。此外,Keepalived还实现了一组VRRP有限状态机的挂钩,从而提供了低级和高速协议交互。为了提供最快的网络故障检测,Keepalived实施BFD协议。VRRP状态转换可以考虑BFD提示来驱动快速状态转换。Keepalived框架可以独立使用,也可以一起使用以提供弹性基础架构。
----------------

实验: keepalived ,vrrp网关高可用,负载均衡(假)

基于:Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2

LVS1
DIP 192.168.100.101   // ens33

//ens33:0 keepalived 自动生成
virtual_ipaddress 192.168.100.100/32    //master
virtual_ipaddress 192.168.100.99/32     //backup

LVS2
DIP 192.168.100.102  ens33


//ens33:0 keepalived 自动生成
virtual_ipaddress 192.168.100.100/32   //backup
virtual_ipaddress 192.168.100.99/32    //master

//LVS1配置:
# vim keepalived.conf

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
  router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

#两秒检查一次如果存在down文件,权重-2,可使master切换为backup,用于维护

vrrp_script chk_schedown {
   script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"
   interval 2
   weight -20
}



vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 1   
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.100.100
    }

track_script {  
    chk_schedown
}   


}

vrrp_instance VI_2 {
    state BACKUP
    interface ens33
    virtual_router_id 2  
    priority 90
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.100.99
    }
}

//LVS2配置:
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 1   
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.100.100
    }
}

vrrp_instance VI_2 {
    state MASTER
    interface ens33
    virtual_router_id 2  
    priority 100
    advert_int 2
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.100.99
    }
}

测试结果:
两台lvs rid 要一致!害我折腾1小时,就是不行。就是要求两台lvs配置除了state MASTER/BACKUP不一样,其他完全一样
vm环境测试时down接口竟然也不会切,抓包发现,竟然仍然再发包。。。诡异
通过stop keepalived服务,测试发现抢占模式切换灵敏,丢1个包,符合预期
注释掉 vrrp_strict,可ping通virtual_ipaddress
vrrp报文使用组播地址 224.0.0.18
认证使用明文,等于没有,哈哈




posted @ 2020-07-12 16:08  abel2020  阅读(172)  评论(0编辑  收藏  举报