Keepalived高可用集群

  Keepalived简介

  Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

  keepalived工作原理

  keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议

虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级选举一个backup当master。这样的话就可以保证路由器的高可用了。

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

  

  keepalived三个主要功能

  管理LVS负载均衡软件

  实现LVS集群节点的健康检查中

  作为系统网络服务的高可用性(failover)

  PS:本次主要介绍高可用功能

  

  Keepalived安装配置

  安装环境查看

  本次试验使用yum安装

yum -y install keepalived

  查看版本

  配置文件为/etc/keepalived/keepalived.conf

  全局配置文件

lobal_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 192.168.200.1
   smtp_connect_timeout 30
   router_id lb01
   vrrp_skip_check_adv_addr
#   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

  用来配置router_id(全局唯一) 以及邮箱等信息

  PS:配置邮件用于出现故障发生邮件,工作中这个工作一般交由监控软件zabbix等负责,可以不配置

  vrrp配置部分

vrrp_instance VI_1 {
    state MASTER            #设备状态是主
    interface eth0           #绑定的网络接口是eth0
    virtual_router_id 55        #虚拟路由ID 主备这个ID必须一致 
    priority 150                     #优先级数值越高优先级越高,备的优先级需低于此数值 
    advert_int 1            #主备同步间隔单位是秒
    authentication {
        auth_type PASS
        auth_pass 1111         #主备认证方式,主备密码需要一致
    }
    virtual_ipaddress {        #虚拟IP地址以及绑定的网卡
        192.168.56.22/24 dev eth0 label eth0:1
    }
}

  用于配置主备状态,接口,优先级,认证方式IP信息等

  

  高可用服务单实例实战

  图示

  192.168.56.11的keepalived配置

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id lb01
#  vrrp_strict
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 55
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.56.22/24 dev eth0 label eth0:1
    }
}

  192.168.56.12的keepalived配置

! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id lb02
#  vrrp_strict
}

vrrp_instance VI_1 {
    state BACKEND
    interface eth0
    virtual_router_id 55
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.56.22/24 dev eth0 label eth0:1
    }
}

  说明:router_id不一样  

            主备状态不一样(一台是MASTER一台是BACKEDN在配置文件里必须是大写)

     优先级不一样

  PS:vrrp_strict是默认的配置需要注释,否则会导致VIP不通

   

  启动keepalived验证两台主机均启动

 systemctl start keepalived

  192.168.56.11生产了虚拟IP

  192.168.56.12没有虚拟IP

  停止主keepalived责备机接管虚拟VIP

  主节点没有了虚拟VIP

  主节点再次启动keepalived 因为主节点优先级别高又会自动接管虚拟VIP

猜你喜欢

转载自www.cnblogs.com/minseo/p/9216499.html