Keepalived介绍、安装和简单使用

1 Keepalived

1.1 keepalived介绍

1、keepalived原理

​ Keepalived是一个基于VRRP协议来实现LVS服务高可用方案,可以利用其来避免单点故障。一个LVS服务会使用2台服务器运行Keepalived,一台为主服务器MASTER,另一台为备份服务器BACKUP,但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证高可用性。Keepalived是VRRP的完美实现。
说明:VRRP协议,即虚拟路由冗余协议,通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信

2、keepalived原理

keepalived工作在TCP/IP参考模型的第三、四和第五层,也就是网络层、传输层个和应用层
keepalived主要有三个模块,分别是core、check和vrrp。

  • core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
  • check负责健康检查,包括常见的各种检查方式。
  • vrrp模块是来实现VRRP协议的
    组件架构:
    在这里插入图片描述

整个体系结构分层用户层和内核层:

  • Scheduler I/O Multiplexer:I/O复用分发调用器,负责安排Keepalived所有的内部的任务请求
  • Memory Management:内存管理机制
  • Control Plane:控制面板,实现对配置文件的编译和解析,Keepalived的配置文件解析比较特殊,它并不是一次解析所有模块的配置,而是只有在用到某模块时才解析相应的配置
  • Core components:Keepalived的核心组件,包含了一系列功能模块,主要有watch dog、Checkers、VRRP Stack、IPVS wrapper、Netlink Reflector
    • watch dog:一个极为简单又非常有效的检测工具,针对被监视目标设置一个计数器和阈值,watch dog会自己增加此计数值,然后等待被监视目标周期性的重置该数值,一旦被监控目标发生错误,就无法重置该数值,watch dog就会检测到。Keepalived是通过它来监控Checkers和VRRP进程
    • Checkers:实现对服务器运行状态检测和故障隔离
    • VRRP Stack:实现HA集群中失败切换功能,通过VRRP功能再结合LVS负载均衡软件即可部署一个高性能的负载均衡集群
    • IPVS wrapper:实现IPVS功能,该模块可以将设置好的IPVS规则发送到内核空间并提交给IPVS模块,最终实现负载均衡功能
    • Netlink Reflector:实现VIP的设置和切换

3、VRRP工作模式

  • 三种状态
    • Initialize状态:系统启动后进入initialize状态
    • Master状态
    • Backup状态
  • 选举机制
    • 抢占模式下,一旦有优先级高的路由器加入,立即成为Master,默认
    • 非抢占模式下,只要Master不挂掉,优先级高的路由器只能等待

1.2 keepalived安装配置

1、安装配置

yum install -y keepalived
#备份
cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

2、keepalived配置文件详解

! 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
   # 路由id,唯一的
   router_id LVS_DEVEL
   # #对所有通告报文都检查,会比较消耗性能,启用此配置后,如果收到的通告报文和上一个报文是同一个路由器,则跳过检查,默认值为全检查
   vrrp_skip_check_adv_addr
   # 开启了此项后没有设置vrrp_iptables则会自动开启iptables防火墙规则,导致VIP地址无法访问,建议不加此项
   vrrp_strict
   # 与vrrp_strict同时设置时可禁止iptables规则的生成,注释或者无vrrp_strict时可不加此项
!   vrrp_iptables
   # 设置ARP接口之间发送报文的延迟时间,可以精确到毫秒,默认是0
   vrrp_garp_interval 0
   # 设置非请求消息的发送延迟时间,默认为0
   vrrp_gna_interval 0
   # 指定要在其下运行脚本的默认用户名/组名,如果未指定此选项,则如果该用户存在,则用户默认为keepalived_script,否则为root,如果未指定groupname,则默认为用户的组。
!   script_user root
}

# 脚本配置
## 自定义资源监控脚本,vrrp实例根据脚本返回值进行下一步操作,脚本可被多个实例调用。
## vrrp_script,仅仅通过监控脚本返回的状态码来识别集群服务是否正常,如果返回状态码是0,那么就认为服务正常,反之亦然
## vrrp_script,其实不关注监控脚本或者命令是怎么实现的,仅仅通过监控脚本返回的状态码来识别集群是否正常工作
vrrp_script nginx_check {
   
    script"/tools/nginx_check.sh"
    interval 1
} 
  
# 配置虚拟路由器
vrrp_instance VIP_1 {
   
    # 设置此虚拟路由器的初始状态,可选择MASTER或者BACKUP
    state MASTER
    # 绑定当前虚拟路由器所使用的物理接口,如eth0、lo等
    interface eth0
    # 设置虚拟路由器的唯一标识,取值范围为0-255,每个虚拟路由器的该项值必须是唯一的,否则无法启动服务,并且同属一个虚拟路由器的多个keepalived节点必须相同,务必要确认在同一网络中此值必须唯一
    virtual_router_id 51
    # 设置当前物理节点在此虚拟路由器中的优先级,优先级取值范围为1-254,值越大优先级越高,每个keepalived节点取值不同
    priority 100
    # 设置VRRP通告的时间间隔,默认为1秒
    advert_int 1
    # 设置认证机制
    authentication {
   
        # 认证类型,可选择AH和PASS两种,AH为IPSC互联网安全协议认证,PASS为简单密码认证,推荐PASS认证
        auth_type PASS
        # 预共享秘钥设置,仅前8位有效,同一虚拟路由器的多个keepalived节点auth_pass值必须保持一致
        auth_pass 1111
    }
    # 添加虚拟路由器的IP,并可设置IP对应的子网掩码、网卡和标签等,生产中可能会在同一个虚拟路由器上添加上百个IP,不同的IP分行隔开,不指定网卡时默认添加在eth0上,不设置子网掩码时默认为32位。在添加IP地址时,需确保将要使用的IP不存在
    virtual_ipaddress {
   
        192.168.200.16
        192.168.200.17
        192.168.200.18

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值