keepalived安装与配置

作者: smallmartial | 来源:发表于2019-05-31 19:06 被阅读1次

    keepalived安装与配置

    1.keepalived简介:

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

    2.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协议的。

    3.安装keepalived

    • 主机和备用机安装keepalived之前请先安装几个程序,命令:

      sudo apt-get install libssl-dev 
      sudo apt-get install openssl 
      sudo apt-get install libpopt-dev 
      
    • 在主机和备用机安装keepalived

      apt-cache search keepalived
      
      sudo apt-get install keepalived
      

    4.配置语法

    配置虚拟路由器:实现IP流动的部分:

    vrrp_instance <STRING> {
    ....
    }
    专用参数:
    state MASTER|BACKUP:当前节点在此虚拟路由器上的初始状态;只能有一个是MASTER,余下的都应该为BACKUP;
    interface IFACE_NAME:绑定为当前虚拟路由器使用的物理接口;
    virtual_router_id VRID:当前虚拟路由器的惟一标识,范围是0-255;
    priority 100:当前主机在此虚拟路径器中的优先级;范围1-254;
    advert_int 1:vrrp通告的时间间隔;
    authentication {
    auth_type AH|PASS
    auth_pass <PASSWORD>
    }
    virtual_ipaddress {
    <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
    192.168.200.17/24 dev eth1
    192.168.200.18/24 dev eth2 label eth2:1
    }
    track_interface {
    eth0
    eth1
    ...
    }
    配置要监控的网络接口,一旦接口出现故障,则转为FAULT状态;
    nopreempt:定义工作模式为非抢占模式;
    preempt_delay 300:抢占式模式下,节点上线后触发新选举操作的延迟时长;
    定义通知脚本:
    notify_master <STRING>|<QUOTED-STRING>:当前节点成为主节点时触发的脚本;
    notify_backup <STRING>|<QUOTED-STRING>:当前节点转为备节点时触发的脚本;
    notify_fault <STRING>|<QUOTED-STRING>:当前节点转为“失败”状态时触发的脚本;
    notify <STRING>|<QUOTED-STRING>:通用格式的通知触发机制,一个脚本可完成以上三种状态的转换时的通知;
    

    5.Keepalived 双主虚拟路由配置实例

    演示说明:

    2台ubuntu 主机:node-01,node-02

    node-01 ip: 10.0.42.145

    node-02 ip: 10.0.40.112

    node-01的配置如下:

    global_defs {
       notification_email {
        root@localhost
       }
       notification_email_from keepalived@localhost           #定义来信人
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id node-00
       vrrp_mcast_group4 224.0.38.12
    }
    
    vrrp_instance VI_1 {
        state MASTER
        interface enp1s0
        virtual_router_id 38
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass x1er44q
        }
        virtual_ipaddress {
            10.0.42.145/16 dev enp1s0
        }
    
        smtp_alert            #状态切换,使用邮件通知
    }
    vrrp_instance VI_2 {
        state BACKUP
        interface enp1s0
        virtual_router_id 39
        priority 97
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass x1er44q
        }   
        virtual_ipaddress {
           10.0.40.112/16  dev enp1s0
        }  
       
    

    node-02的配置如下:

    global_defs {
       notification_email {
        root@localhost
       }
       notification_email_from keepalived@localhost           #定义来信人
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id node-00
       vrrp_mcast_group4 224.0.38.12
    }
    
    vrrp_instance VI_1 {
        state BACKUP
        interface enp1s0
        virtual_router_id 38
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass x1er44q
        }
        virtual_ipaddress {
            10.0.42.145/16 dev enp1s0
        }
    
        smtp_alert            #状态切换,使用邮件通知
    }
    vrrp_instance VI_2 {
        state MASTER
        interface enp1s0
        virtual_router_id 39
        priority 97
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass x1er44q
        }   
        virtual_ipaddress {
           10.0.40.112/16  dev enp1s0
        }  
    

    配置完成后,启动服务:

    sudo service keepalived start
    

    查看进程是否存在:

    ps -ef|grep keep
    

    使用ip 命令查看ip情况:

    ip address show
    

    node01

    1559300514124.png

    node02

    1559300489725.png

    相关文章

      网友评论

        本文标题:keepalived安装与配置

        本文链接:https://www.haomeiwen.com/subject/ihogtctx.html