1. 程式人生 > >學習五十九

學習五十九

linux學習

5月23日任務
18.11 LVS DR模式搭建
18.12 keepalived + LVS

擴展
haproxy+keepalived http://blog.csdn.net/xrt95050/article/details/40926255
nginx、lvs、haproxy比較 http://www.csdn.net/article/2014-07-24/2820837
keepalived中自定義腳本 vrrp_script http://my.oschina.net/hncscwc/blog/158746
lvs dr模式只使用一個公網ip的實現方法 http://storysky.blog.51cto.com/628458/338726

LVS DR模式搭建

DR準備
三臺機器
分發器,也叫調度器(簡寫為dir)
133.130
rs1
133.132
rs2
133.133
vip
133.200
搭建
dir上編寫腳本 vim /usr/local/sbin/lvs_dr.sh //內容如下
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.133.200
rs1=192.168.133.132
rs2=192.168.133.133
#註意這裏的網卡名字
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
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
兩臺rs上也編寫腳本 vim /usr/local/sbin/lvs_rs.sh//內容如下
#/bin/bash
vip=192.168.133.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
分別在dir上和兩個rs上執行這些腳本
測試

keepalived + LVS

完整架構需要兩臺服務器(角色為dir)分別安裝keepalived軟件,目的是實現高可用,但keepalived本身也有負載均衡的功能,所以本次實驗可以只安裝一臺keepalived
keepalived內置了ipvsadm的功能,所以不需要再安裝ipvsadm包,也不用編寫和執行那個lvs_dir的腳本
三臺機器分別為:
dir(安裝keepalived)133.130
rs1 133.132
rs2 133.133
vip 133.200
編輯keepalived配置文件 vim /etc/keepalived/keepalived.conf//內容請到https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/lvs_keepalived.conf 獲取
需要更改裏面的ip信息
執行ipvsadm -C 把之前的ipvsadm規則清空掉
systemctl restart network 可以把之前的vip清空掉
兩臺rs上,依然要執行/usr/local/sbin/lvs_rs.sh腳本
keepalived有一個比較好的功能,可以在一臺rs宕機時,不再把請求轉發過去
測試

學習五十九