keepalived工作原理和配置说明

keepalived工作原理和配置说明

keepalived是什么

keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

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的配置文件

keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

1、利用keepalived 实现主从VIP的切换

1.1、全局阶段

主要是配置故障发生时的通知对象以及机器标识

global_defs {
   notification_email {                        //定义邮件服务的
        root@localhost                         //定义收件人,这里改为本机,只是测试使用 
   }
   notification_email_from kaadmin@localhost   //定义发件人,
   smtp_server 127.0.0.1                       //定义邮件服务器,一定不能使用外部地址
   smtp_connect_timeout 30                     //超时时间
   router_id  LVS_DEVEL                       
}

1.2定义vrrp

vrrp_instance VI_1 {          //定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
    state MASTER              //开启后,该节点的优先级比另一节点的优先级高,所以转化为MASTER状态
    interface eth0            //所有的通告等信息都从eth0这个接口出去
    virtual_router_id 7      //虚拟路由的ID,而且这个ID也是虚拟MAC最后一段的来源,这个ID号一般不能大于255,且这个ID一定不能有冲突
    priority 100            //初始优先级
    advert_int 1            //通告的个数
    authentication {        //认证机制
        auth_type PASS      //认证类型
        auth_pass 1111      //密码,应该为随机的字符串
    } 
    virtual_ipaddress {     //虚拟地址,即VIP
        172.16.6.100   
    }
}

这样我们主节点的配置文件就修改好了,需要复制到从节点上,再做适当的修改就可以使用了

3.4登录到从节点

vrrp_instance VI_1 {
    state BACKUP       //修改从节点的状态,主节点为MASTER,从节点就为BACKUP
    interface eth0
    virtual_router_id 7
    priority 99       //修改优先级,注意从节点的优先级一定要小于主节点
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.16.6.100
    }
}

 3.5、然后在主节点启动服务

systemctl start keepalived  
systemct enable keepalived  #开机自启动

ip addr show //查看我们定义的VIP

3.6、在从节点启动

systemctl start keepalived  
systemct enable keepalived  #开机自启动

 

注:默认情况下ARRP工作在“抢占模式”下,如果发现一个节点的服务停止了,另一个节点会立即把VIP和VMAC“抢过来”,

如果在“非抢占模式”下,无论你的优先级过高,一个节点服务停止,另一个节点也不会“抢”VIP和VMAC,除非这个节点挂了,两一个节点才会“抢”。



原文地址:https://www.cnblogs.com/kevincaptain/p/9999391.html