zoukankan      html  css  js  c++  java
  • Keepalived学习,双机主备高可用

    一、主机安装 

        1、解压

          tar -zxvf keepalived-2.0.18.tar.gz
       2、解压后进入到解压出来的目录,看到会有configure,那么就可以做配置了   
       3、使用configure命令配置安装目录与核心配置文件所在位置:      
          ./configure --prefix=/usr/local/keepalived --sysconf=/etc

          
    prefix:keepalived安装的位置

          sysconf:keepalived核心配置文件所在位置,固定位置,改成其他位置则keepalived启动不了,/var/log/messages中会报错
         

          配置过程中可能会出现警告信息,如下所示:

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

          安装libnl/libnl-3依赖

              yum -y install libnl libnl-devel  
    

          重新configure一下,此时OK。

        4、安装keepalived

          make && make install

        5、进入到/etc/keepalived,该目录下为keepalived核心配置文件

        6、通过命令 vim keepalived.conf 打开配置文件(主机)

    global_defs {
       # 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
       router_id keep_108
    }
    
    vrrp_instance VI_1 {
        # 表示状态是MASTER主机还是备用机BACKUP
        state MASTER
        # 该实例绑定的网卡,通过ip addr命令查看,每个机器不一样
        interface ens33
        # 保证主备节点一致即可
        virtual_router_id 51
        # 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
        priority 100
        # 主备之间同步检查时间间隔,单位秒
        advert_int 2
        # 认证权限密码,防止非法节点进入
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        # 虚拟出来的ip,可以有多个(vip)
        virtual_ipaddress {
            192.168.1.161
        }
    }

        7、启动keepalived

          /usr/local/keepalived/sbin/keepalived

        8、查看进程

          ps -ef | grep keepalived

        9、查看vip,在网卡ens33下,多了一个192.168.1.161,这个就是虚拟ip

          ip addr

        10、把keepalived注册为系统服务,方便输命令

          进入keepalived解压目录

            cd keepalived/etc/

            cp init.d/keepalived /etc/init.d/

            cp sysconfig/keepalived /etc/sysconfig/

            systemctl daemon-reload

          这样就可以使用下边的命令了

            

    二、备机安装

        1~5同主机

        6、通过命令 vim keepalived.conf 打开配置文件(备机)   

    global_defs {
       router_id keep_101
    }
    
    vrrp_instance VI_1 {
        # 备用机设置为BACKUP
        state BACKUP
        interface ens33
        virtual_router_id 51
        # 权重低于MASTER
        priority 80
        advert_int 2
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            # 注意:主备两台的vip都是一样的,绑定到同一个vip
            192.168.1.161
        }
    }

        7~10同主机

        这样我请求192.168.1.161时,时请求的主机,当主机的keepalived挂掉后,我请求192.168.1.161时,请求自动到达备机,当主机恢复正常后请求又会到达主机,从而实现双击主备高可用。

    三、keepalived实现nginx双机主备高可用

        上边可知,主备机的切换是基于keepalived是否挂掉实现的,那么如何实现当主机nginx挂掉,自动切换到备机nginx呢?那就需要让keepalived去检测本机的nginx是否正常,如果发现nginx进程不在了,尝试重启nginx,如果重启失败,那么杀掉keepalived的进程,从而让请求到达备机。下边实现keepalived绑定nginx

        1. 增加Nginx重启检测脚本

          vim /etc/keepalived/check_nginx_alive_or_not.sh
          
    #!/bin/bash
    
    A=`ps -C nginx --no-header |wc -l`
    # 判断nginx是否宕机,如果宕机了,尝试重启
    if [ $A -eq 0 ];then
        /usr/local/nginx/sbin/nginx
        # 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机
        sleep 3
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
            killall keepalived
        fi
    fi

           增加运行权限

            chmod +x /etc/keepalived/check_nginx_alive_or_not.sh

        2. 在/etc/keepalived/keepalived.conf中添加下边两段

    vrrp_script check_nginx_alive {
        script "/etc/keepalived/check_nginx_alive_or_not.sh"
        interval 2 # 每隔两秒运行上一行脚本
        weight 10 # 如果脚本运行成功,则升级权重+10
    }
    track_script {
        check_nginx_alive   # 追踪 nginx 脚本
    }

        最终是这样的:

            

     

        3. 重启Keepalived使得配置文件生效

          systemctl restart keepalived

        备机同上。

                                     整理自慕课网《java架构师体系课》

  • 相关阅读:
    尝试一下搭博客
    python IO
    python OOP
    杂笔记
    codeforces 217E 【Alien DNA】
    dfs序七个经典问题(转)
    poj 1945 Power Hungry Cows A*
    NOIP 2012 洛谷P1081 开车旅行
    洛谷 P1924 poj 1038
    poj 2176 folding
  • 原文地址:https://www.cnblogs.com/hmxs/p/12041735.html
Copyright © 2011-2022 走看看