LVS DR模式負載均衡搭建、keepalived高可用+LVS負載均衡配合
阿新 • • 發佈:2018-04-12
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負載均衡配合