zoukankan      html  css  js  c++  java
  • LVS+keepalived 实战

    安装依赖:

    yum -y install wget libnl* popt* gcc.x86_64 gcc-c++.x86_64 gcc-objc++.x86_64 kernel-devel.x86_64 make popt-static.x86_64
    yum -y install openssl-devel

    一、分别在backup lvs和master lvs上安装LVS

    wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
    uname -r
    3.10.0-514.2.2.el7.x86_64 ln -s /usr/src/kernels/3.10.0-514.6.2.el7.x86_64-i686/ /usr/src/linux tar zxvf ipvsadm-1.24.tar.gz cd ipvsadm-1.24 make && make install

    二、分别在backup lvs和master lvs上安装keepalived 

    wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz
    tar zxvf keepalived-1.1.19.tar.gz
    cd keepalived-1.1.19
    ./configure --prefix=/usr/local/keepalived
    make 
    make install
    cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
    cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
    cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
    mkdir /etc/keepalived

    三、修改keepalived相关配置

    vi /etc/sysconfig/keepalived
    KEEPALIVED_OPTIONS="-D -f /usr/local/keepalived/etc/keepalived/keepalived.conf"
    vi /etc/init.d/keepalived
    #更新
    . /etc/sysconfig/keepalived
    PATH="$PATH:/usr/sbin"
    export PATH
    vi /usr/local/keepalived/etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    global_defs {
       notification_email {
         50625185@qq.com
       }
       notification_email_from 50625185@qq.com
       smtp_server localhost
       smtp_connect_timeout 30
       router_id NodeA
    }
    vrrp_instance VI_1 {
        state MASTER
        interface ens160
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
             192.168.20.229 //虚拟IP
        }
    }
    virtual_server 192.168.20.229 80 {    //定义虚拟服务器
        delay_loop 6                  //健康检查时间,单位是秒
        lb_algo rr              //负载调度算法,这里设置为rr,即轮询算法
        lb_kind DR              //LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选
        persistence_timeout 1        //会话保持时间,单位是秒(可以适当延长时间以保持session)
        protocol TCP                  //转发协议类型,有tcp和udp两种
        real_server 192.168.20.200 8151 {  //定义WEB服务器
           weight 1                  //权重
           TCP_CHECK {                //通过tcpcheck判断RealServer的健康状态
               connect_timeout 5      //连接超时时间
               nb_get_retry 3        //重连次数
               delay_before_retry 3  //重连间隔时间
               connect_port 8151        //检测端口
           }
        }
        real_server 192.168.20.201 8151 {  //定义WEB服务器
           weight 2                 //权重
           TCP_CHECK {                //通过tcpcheck判断RealServer的健康状态
               connect_timeout 5      //连接超时时间
               nb_get_retry 3        //重连次数
               delay_before_retry 3  //重连间隔时间
               connect_port 8151        //检测端口
           }
        }
    }

    虚拟VIP:192.168.20.229 

    分流WEB:192.168.20.200、192.168.20.201

    四、启动keepalived 

    /etc/init.d/keepalived start

    五、客户机脚本

    #!/bin/bash
    # description: Config realserver lo and apply noarp
     
    SNS_VIP=192.168.20.229
     
    /etc/rc.d/init.d/functions
     
    case "$1" in
    start)
           ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
           /sbin/route add -host $SNS_VIP dev lo:0
           echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
           echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
           echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
           echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
           sysctl -p >/dev/null 2>&1
           echo "RealServer Start OK"
     
           ;;
    stop)
           ifconfig lo:0 down
           route del $SNS_VIP >/dev/null 2>&1
           echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
           echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
           echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
           echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
           echo "RealServer Stoped"
           ;;
    *)
           echo "Usage: $0 {start|stop}"
           exit 1
    esac
     
    exit 0

    六、测试

    ipvsadm
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  docker223:80 rr persistent 1
      -> 192.168.20.200:8151          Route   1      0          0    

    浏览器访问 http://192.168.20.229 分流 http://192.168.20.200:8151 WEB服务

  • 相关阅读:
    8086汇编中的逻辑地址与物理地址转换
    wepy开发踩坑记录
    cordova开发的坑
    express转发请求
    Hybrid app(cordova) 环境配置记录
    laravel-mix 热重载404的问题
    练习
    git 使用记录
    Vue全家桶开发笔记
    微信小程序开发踩坑记录
  • 原文地址:https://www.cnblogs.com/Javame/p/6306321.html
Copyright © 2011-2022 走看看