美文网首页
Keepalived—部署和配置指南

Keepalived—部署和配置指南

作者: Statmoon | 来源:发表于2019-06-15 16:16 被阅读0次

    引言


      最近做 Nginx 的高可用集群,需要用到 Keepalived 组件,顺带做一个笔记。

    编译


      首先到官网下载合适的版本,笔者下载的是Version 2.0.16,然后将压缩包上传到Linux服务器;
      接下来解压压缩包,运行如下命令:

    tar -zxvf keepalived-2.0.16.tar.gz
    

      然后进入解压后的文件夹,并运行 configure 命令检查当前环境是否满足安装要求,并进行配置:

    cd keepalived-2.0.16
    ./configure
    

    Unfortunately,笔者的环境中差依赖组件,运行后出现如下错误:

    configure: error: 
      !!! OpenSSL is not properly installed on your system. !!!
      !!! Can not include OpenSSL headers files.            !!!
    

    【解决方法】安装OpenSSL,运行如下命令:

    yum -y install openssl-devel
    

    安装完成后再次配置,出现如下警告:

    *** WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS.
    

    【解决方法】安装libnl,运行如下命令:

    yum -y install libnl libnl-devel  
    

    安装完成后再次配置,配置成功后进行编译,运行如下命令:

    ./configure
    make && make install
    

    配置


      Keepalived有三个文件需要拷贝到系统配置目录下,分别存放在编译成功后的 Keepalived 目录中:

    # Keepalived 启动脚本
    keepalived/sbin/keepalived
    # Keepalived 配置文件
    keepalived/etc/keepalived/keepalived.conf
    # Keepalived 日志级别配置文件
    keepalived/etc/sysconfig/keepalived
    

    运行如下命令将配置文件拷贝到系统对应的目录下:

    mkdir /etc/keepalived
    chmod 755 /usr/local/keepalived/sbin/keepalived
    cp /usr/local/keepalived/sbin/keepalived /etc/rc.d/init.d/
    cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
    cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    

    启动 Keepalived,并查看状态:

    systemctl start keepalived
    systemctl status keepalived
    

    可以看到如下的状态:

    status.png

    高可用主备配置


    配置文件如下:

    ! Configuration File for keepalived
    global_defs {
        router_id 192.168.70.129 ## 标识id,通常为 hostname,当前部署机器的IP
        vrrp_skip_check_adv_addr
        #vrrp_strict
        vrrp_garp_interval 0
        vrrp_gna_interval 0
    } 
    ## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级.
    ##如果weight配置的值大于0,且脚本执行结果为 0,则优先级相应的增加;
    ##如果weight配置的值小于0,且脚本执行结果非 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中 priority 对应的值。
    
    ## 定义虚拟路由, VI_1 为虚拟路由的标示符,自己定义名称
    vrrp_instance VI_1 {
        state MASTER ## 主节点为 MASTER, 对应的备份节点为 BACKUP
        interface eno16777736 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同, 我的是 eth016777736
        virtual_router_id 51 ## 虚拟路由的 ID 号, 两个节点设置必须一样, 可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址
        mcast_src_ip 192.168.70.129 ## 本机 IP 地址
        priority 100 ## 节点优先级, 值范围 0-254, MASTER 要比 BACKUP 高
        nopreempt ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
        advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样, 默认 1s
        ## 设置验证信息,两个节点必须一致
        authentication {
            auth_type PASS
            auth_pass 123@qwe.com ## 真实生产,按需求对应该过来
        }
        ## 将 track_script 块加入 instance 配置块
        track_script {
            chk_nginx ## 执行 Nginx 监控的服务
        } #
        # 虚拟 IP 池, 两个节点设置必须一样
        virtual_ipaddress {
            192.168.70.11 ## 虚拟 ip,可以定义多个
        }
    }
    

    相关文章

      网友评论

          本文标题:Keepalived—部署和配置指南

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