• 综合架构--负载均衡-keepalived


    一、keepalived作用

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

    二、keepalived的配置

      在上一章的基础上 添加一台lb02

        lb02 ip 10.0.0.6

      在两台lb01与lb02 上安装keepalived 

    yum install -y keepalived

    三、修改 lb01 中keepalived 的配置文件

      

    [root@lb01 ~]# cat /etc/keepalived/keepalived.conf
    
    ! Configuration File for keepalived
    global_defs {
       router_id LB01    #定义名字
    }
    vrrp_instance VI_1 {   
                             
        state MASTER         #设置该主机为主 
        interface eth0        #网卡
        virtual_router_id 51  #唯一标示id
        priority 150          #权重比权重高优先级高
        advert_int 1            #心跳检测 每隔一秒 
                                  
        authentication {      
            auth_type PASS    #加密方式
            auth_pass 1111    #加密密码,一般四位标示
        }
        virtual_ipaddress {   
         10.0.0.3/24 dev eth0 label eth0:1   #虚拟ip VIP 设置后访问该ip即可达到效果,主副主机的虚拟ip需一致
        }
    }
    

      修改lb02中的keepalived.conf 配置文件

    [root@lb02 ~]# cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       router_id LB02 
    }
    
    vrrp_instance VI_1 {   
                 
        state BACKUP    #设置为备份主机
        interface eth0
        virtual_router_id 51  
        priority 100      #权重需小于主机权重    
        advert_int 1          
                              
        authentication {      
            auth_type PASS    
            auth_pass 1111
        }
        virtual_ipaddress {   
         10.0.0.3/24 dev eth0 label eth0:1  
        }
    }

    四、测试效果

    lb01主上查看虚拟ip 10.0.0.3

    [root@lb01 ~]# ip a|grep 0.3
        inet 10.0.0.3/24 scope global eth0:1

    lb02备份上查看虚拟ip

    [root@lb02 ~]# ip a|grep 0.3
        inet6 fe80::dfa2:ce90:78b6:8033/64 scope link tentative noprefixroute dadfailed 
    [root@lb02 ~]# 

    之后测试 

    [root@web01 ~]# curl 10.0.0.3
    www web02
    [root@web01 ~]# curl 10.0.0.3
    www web01
    [root@web01 ~]# curl 10.0.0.3
    www web02
    [root@web01 ~]# 

    当lb01keepalived关掉时 

    [root@lb01 ~]# systemctl restart keepalived.service 
    [root@lb01 ~]# ip a|grep 0.3
        inet 10.0.0.3/24 scope global eth0:1
    [root@lb01 ~]# systemctl stop keepalived.service 
    [root@lb01 ~]# ip a |grep 0.3
    [root@lb01 ~]# 

    在lb02 查看 发现02中虚拟ip 10.0.0.3已启动

    [root@lb02 ~]# ip a|grep 0.3
        inet 10.0.0.3/24 scope global secondary eth0:1
        inet6 fe80::dfa2:ce90:78b6:8033/64 scope link tentative noprefixroute dadfailed 
    [root@lb02 ~]# 

    五、常见错误

    [root@lb02 ~]# curl 10.0.0.3
    curl: (7) Failed connect to 10.0.0.3:80; 拒绝连接
    [root@lb02 ~]# 

    检查nginx 服务是否启动

    [root@web01 /]#  curl 10.0.0.3
    curl: (7) Failed connect to 10.0.0.3:80; 没有到主机的路由
    [root@web01 /]# 

    检查主机防火墙是否开启

  • 相关阅读:
    npm 全局执行 update 、 outdated 出现 npm-debug.log 404 错误的问题
    python 爬虫爬取内容时, xa0 、 u3000 的含义
    SCNU ACM 2016新生赛决赛 解题报告
    SCNU ACM 2016新生赛初赛 解题报告
    【记录】Ubuntu下安装VirtualBox
    Ubuntu16.04 LTS下apt安装WireShark
    Java的初始化块、静态初始化块、构造函数的执行顺序及用途探究
    Ubuntu在wps-office等qt5程序下不能切换中文fcitx输入法的问题
    Ubuntu管理开机启动服务项 -- 图形界面的Boot-up Manager
    解决Ubuntu下Firefox+OpenJDK没有Java插件的问题
  • 原文地址:https://www.cnblogs.com/qiang-qiang/p/10560606.html
Copyright © 2020-2023  润新知