1. 程式人生 > >LVS DR模式負載均衡搭建、keepalived高可用+LVS負載均衡配合

LVS DR模式負載均衡搭建、keepalived高可用+LVS負載均衡配合

lvs lvs dr模式 lvs負載均衡 keepalived+LVS

LVS DR模式搭建

準備:
dir(調度器):192.168.188.2
rs1:192.168.188.3
rs2:192.168.188.6
vip:192.168.188.200

安裝ipvsadm

yum install -y ipvsadm

dir設置

vim /usr/local/sbin/lvs_dr.sh     //創建dr腳本

#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.188.200
rs1=192.168.188.3
rs2=192.168.188.6
#註意這裏的網卡名字
ifdown ens33
ifup ens33
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up        //設置虛擬網卡ens33:2的ip為288.200
route add -host $vip dev ens33:2                                                    //設置網關
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
sh /usr/local/sbin/lvs_dr.sh                    //執行腳本

rs1設置

vim /usr/local/sbin/lvs_rs.sh                                    //創建腳本

#/bin/bash
vip=192.168.188.200
#把vip綁定在lo上,是為了實現rs直接把結果返回給客戶端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作為更改arp內核參數,目的是為了讓rs順利發送mac地址給客戶端
#參考文檔www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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

sh /usr/local/sbin/lvs_rs.sh                                //執行腳本

rs2設置


vim /usr/local/sbin/lvs_rs.sh                                    //創建腳本

#/bin/bash
vip=192.168.188.200
#把vip綁定在lo上,是為了實現rs直接把結果返回給客戶端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作為更改arp內核參數,目的是為了讓rs順利發送mac地址給客戶端
#參考文檔www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
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

sh /usr/local/sbin/lvs_rs.sh                                //執行腳本

keepalived+LVS

LVS缺點:
當使用LVS做負載均衡時,其中一臺rs的nginx服務掛掉,但是LVS的dir(調度)依舊會分配用戶去訪問宕機的nginx,這樣用戶體驗極差;
我們可以用keepalived做高可用來實現

準備

兩臺dir(調度器)服務器,分別安裝好keepalived軟件,實現dir(調度器)的高可用;
但keepalived本身也有負載均衡功能,所以本次實驗只用一臺keepalived
keepalived內置ipvsadm的功能,不需要安裝ipvsadm,也不用編寫和執行lvs_dir的腳本

dir(安裝keepalived):192.168.188.2
rs1:192.168.188.3
rs2:192.168.188.6
vip:192.168.188.200

dir設置

vim /etc/keepalived/keepalived.conf //編輯keepalived配置文件


vrrp_instance VI_1 {
    #備用服務器上為 BACKUP
    state MASTER
    #綁定vip的網卡為ens33
    interface ens33
    virtual_router_id 51                //定義vip的id
    #備用服務器上為90
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass testlinux123
    }
    virtual_ipaddress {                                //定義vip的ip
        192.168.188.200
    }
}
virtual_server 192.168.188.200 80 {            //設置vip規則
    #(每隔10秒查詢realserver狀態)
    delay_loop 10
    #(lvs 算法)
    lb_algo wlc
    #(DR模式)
    lb_kind DR
    #(同一IP的連接60秒內被分配到同一臺realserver)
    persistence_timeout 60
    #(用TCP協議檢查realserver狀態)
    protocol TCP
    real_server 192.168.188.3 80 {                //設置rs1
        #(權重)
        weight 100
        TCP_CHECK {
        #(10秒無響應超時)
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 192.168.188.6 80 {            //設置rs2
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

ipvsadm -C            //清空ipvsadm規則
ipvsadm -ln              //查看規則

systemctl stop keepalived        //dir上關閉keepalived
systemctl start keepalived            //dir上開啟keepalived
sh /usr/local/sbin/lvs_rs.sh        //rs1與rs2上分別執行shell腳本

LVS DR模式負載均衡搭建、keepalived高可用+LVS負載均衡配合