zoukankan      html  css  js  c++  java
  • [转]LVS+Keepalived负载均衡配置

    简介

    来源:https://www.cnblogs.com/MacoLee/p/5858995.html

    lvs一般是和keepalived一起组合使用的,虽然也可以单独使用lvs,但配置比较繁琐,且可用性也没有前者高。

    lvs和keepalived组合使用后,配置lvs的VIP和负载均衡就都在keepalived中进行配置,只是在keepalived中调用lvs

    架构图

    配置

    LVS+Keepalived MASTER

    配置:【keepalived.conf】

    global_defs {  
       notification_email {  
             edisonchou@hotmail.com  
       }  
       notification_email_from sns-lvs@gmail.com  
       smtp_server 192.168.80.1  
       smtp_connection_timeout 30
       router_id LVS_DEVEL  
    }  
    vrrp_instance VI_1 {  
        state MASTER   #指定Keepalived的角色,MASTER为主,BACKUP为备          
        interface eth1  #指定Keepalived的角色,MASTER为主,BACKUP为备
        virtual_router_id 51  #虚拟路由编号,主备要一致
        priority 100  #定义优先级,数字越大,优先级越高,主DR必须大于备用DR    
        advert_int 1  #检查间隔,默认为1s
        authentication {  
            auth_type PASS  
            auth_pass 1111  
        }  
        virtual_ipaddress {  
            192.168.80.200  #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个
        }  
    }  
    # 定义对外提供服务的LVS的VIP以及port
    virtual_server 192.168.80.200 80 {  
        delay_loop 6 # 设置健康检查时间,单位是秒                    
        lb_algo wrr # 设置负载调度的算法为wlc                   
        lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式   
        nat_mask 255.255.255.0     #NAT模式会用到           
        persistence_timeout 0   #会话保持时间,单位是秒(可以适当延长时间以保持session)         
        protocol TCP      #转发协议类型,有tcp和udp两种            
      sorry_server 127.0.0.1 80      #如果所有realserver都出现问题,vip指向本机80端口
    
        real_server 192.168.80.102 80 {  # 指定real server1的IP地址
            weight 3   # 配置节点权值,数字越大权重越高              
            TCP_CHECK {  #通过tcpcheck判断RealServer的健康状态,检测健康状态的方法还有HTTP_GET:通过检测url状态进行健康判断
              connect_timeout 10     #超时时间,单位是秒    
              nb_get_retry 3    #重连次数
              delay_before_retry 3   #重连间隔时间
              connect_port 80  #检测端口
            }  
        }  
        real_server 192.168.80.103 80 {  # 指定real server2的IP地址
            weight 3  # 配置节点权值,数字越大权重越高  
            TCP_CHECK {  
              connect_timeout 10  
              nb_get_retry 3  
              delay_before_retry 3  
              connect_port 80  
            }  
         }  
    }
    View Code

    LVS+Keepalived BACKUP

    配置:【keepalived.conf】

    global_defs {  
       notification_email {  
             edisonchou@hotmail.com  
       }  
       notification_email_from sns-lvs@gmail.com  
       smtp_server 192.168.80.1  
       smtp_connection_timeout 30
       router_id LVS_DEVEL  
    }  
    vrrp_instance VI_1 {  
        state BACKUP   #指定Keepalived的角色,MASTER为主,BACKUP为备          
        interface eth1  #指定Keepalived的角色,MASTER为主,BACKUP为备
        virtual_router_id 51  #虚拟路由编号,主备要一致
        priority 99  #定义优先级,数字越大,优先级越高,主DR必须大于备用DR    
        advert_int 1  #检查间隔,默认为1s
        authentication {  
            auth_type PASS  
            auth_pass 1111  
        }  
        virtual_ipaddress {  
            192.168.80.200  #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个
        }  
    }  
    # 定义对外提供服务的LVS的VIP以及port
    virtual_server 192.168.80.200 80 {  
        delay_loop 6 # 设置健康检查时间,单位是秒                    
        lb_algo wrr # 设置负载调度的算法为wlc                   
        lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式   
        nat_mask 255.255.255.0     #NAT模式会用到           
        persistence_timeout 0   #会话保持时间,单位是秒(可以适当延长时间以保持session)         
        protocol TCP      #转发协议类型,有tcp和udp两种            
      sorry_server 127.0.0.1 80      #如果所有realserver都出现问题,vip指向本机80端口
    
        real_server 192.168.80.102 80 {  # 指定real server1的IP地址
            weight 3   # 配置节点权值,数字越大权重越高              
            TCP_CHECK {  #通过tcpcheck判断RealServer的健康状态,检测健康状态的方法还有HTTP_GET:通过检测url状态进行健康判断
              connect_timeout 10     #超时时间,单位是秒    
              nb_get_retry 3    #重连次数
              delay_before_retry 3   #重连间隔时间
              connect_port 80  #检测端口
            }  
        }  
        real_server 192.168.80.103 80 {  # 指定real server2的IP地址
            weight 3  # 配置节点权值,数字越大权重越高  
            TCP_CHECK {  
              connect_timeout 10  
              nb_get_retry 3  
              delay_before_retry 3  
              connect_port 80  
            }  
         }  
    }
    View Code

    Real Server

    配置脚本:realserver.sh

    SNS_VIP=192.168.80.200
    /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
    View Code

    http://www.cnblogs.com/edisonchou/p/4281978.html

     http://www.tuicool.com/articles/Vz2qYj

  • 相关阅读:
    DataTable Clone()方法和Copy()方法的区别
    element-ui的使用
    解决VS Code 软件PowerShell执行策略问题
    Vue-Router
    Vue的生命周期
    vue-cli脚手架和webpack
    Vue组件
    Vue基本用法和指令
    ES6常用语法
    前端-Bootstrap框架
  • 原文地址:https://www.cnblogs.com/gushiren/p/9518382.html
Copyright © 2011-2022 走看看