利用keepalived达成服务高可用

官方网站Keepalived for Linux

1.keepalived简介

vrrp 协议的软件实现,原生设计目的为了 高可用 ipvs 服务
功能:
基于 vrrp 协议完成地址流动
vip 地址所在的节点生成 ipvs 规则 ( 在配置文件中预先定义 )
ipvs 集群的各 RS 做健康状态检测
基于脚本调用接口完成脚本中定义的功能,进而影响集群事务,以此支持 nginx haproxy 等服务

健康检查失败切换是keepalived的两大核心功能

  • 健康检查,就是采用tcp三次握手,icmp请求,http请求,udp echo请求等方式对负载均衡器后面的实际的服务器(通常是承载真实业务的服务器)进行保活
  • 而失败切换主要是应用于配置了主备模式的服务器,利用VRRP协议维持主备服务器的心跳,当主服务器出现问题时,由备服务器承载对应的业务,从而在最大限度上减少损失,并提供服务的稳定性

2.选举机制

既然有主备就会有选举机制,那么我们keepalived的选举机制如下

非抢占模式(默认),只要Master不挂掉,优先级高的路由器只能等待  

vrrp_instance VI_1 {
    state MASTER #主服务器 BACKUP 对应是从服务器
    interface eth0 #对应网卡
    virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一
    priority 100     #当前物理节点在此虚拟路由器的优先级,范围:1-254
                     #值越大优先级越高,每个keepalived主机节点此值不同
    advert_int 1        #vrrp通告的时间间隔,默认1s
    authentication {
        auth_type PASS   #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)
        auth_pass 1111  #预共享密钥,仅前8位有效
                        #同一个虚拟路由器的多个keepalived节点必须一样
    }
    virtual_ipaddress {#虚拟IP,生产环境可能指定上百个IP地址
        192.168.200.16
        192.168.200.17
        192.168.200.18
    }
}

抢占模式,一旦有优先级高的路由器加入,立即成为Master,


priority 100 #优先级高
nopreempt #非抢占模式 加入

3.配置解析

3.1全局配置

#全局配置
global_defs {
   notification_email { #keepalived 发生故障切换时邮件发送的目标邮箱
     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   #邮件服务器连接timeout
   router_id LVS_DEVEL   #每个keepalived主机唯一标识
   vrrp_skip_check_adv_addr    #对所有通告报文都检查,会比较消耗性能,收到的通告报文和上一
                               个路由器一样则跳过检查
   vrrp_strict
    #严格遵循vrrp协议
    #启用此项后以下状况将无法启动服务:
    #1.无VIP地址
    #2.配置了单播邻居
    #3.在VRRP版本2中有IPv6地址
    #建议不加此项配置
   vrrp_garp_interval 0 #报文发送延迟,0表示不延迟
   vrrp_gna_interval 0  #消息发送延迟
#vrrp_mcast_group4 224.0.0.18 #指定组播IP地址范围:
}

3.2 虚拟路由配置

vrrp_instance VI_1 {
state MASTER
interface eth0 #绑定为当前虚拟路由器使用的物理接口,如:eth0,可以和VIP不在一
个网卡
virtual_router_id 51 #每个虚拟路由器惟一标识,范围:0-255,每个虚拟路由器此值必须唯一
                        #否则服务无法启动
                        #同属一个虚拟路由器的多个keepalived节点必须相同
                        #务必要确认在同一网络中此值必须唯一
priority 100            #当前物理节点在此虚拟路由器的优先级,范围:1-254
                        #值越大优先级越高,每个keepalived主机节点此值不同
advert_int 1            #vrrp通告的时间间隔,默认1s
authentication { #认证机制
auth_type AH|PASS          #AH为IPSEC认证(不推荐),PASS为简单密码(建议使用)
auth_pass 1111             #预共享密钥,仅前8位有效
                           #同一个虚拟路由器的多个keepalived节点必须一样
        }
virtual_ipaddress {        #虚拟IP,生产环境可能指定上百个IP地址
            <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
            172.25.254.100 #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认32
            172.25.254.101/24 dev eth1
            172.25.254.102/24 dev eth2 label eth2:1
        }
}

4.keepalived 单主架构

4.1 配置环境

        后面环境通用

</
主机 ip 服务
client 172.25.254.10 客户端
keepalived1 172.25.254.20
keepalived2 172.25.254.30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值