LVS DR模式搭建,keepalived + LVS
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
LVS DR模式搭建
準(zhǔn)備工作
- 三臺機(jī)器,只需要有公網(wǎng)IP
- 分發(fā)器,也叫調(diào)度器(簡寫為dir)IP:192.168.133.130
- rs1 ?IP:192.168.133.132
- rs2 ?IP:192.168.133.133
- vip ?192.168.133.200
DR模式搭建
編寫腳本 vim /usr/local/sbin/lvs_dr.sh ,內(nèi)容如下,保存退出
ifconfig ens37:2 $vip broadcast $vip netmask 255.255.255.255 up//給一個網(wǎng)卡設(shè)置一個虛擬網(wǎng)卡
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1 //這里-g:gateway指定DR模式
兩臺rs上也編寫腳本 vim /usr/local/sbin/lvs_rs.sh,添加內(nèi)容如下,保存退出
分別在dir上和兩個rs上執(zhí)行這些腳本
然后route -n可以查看vip的路由,以及ip add命令查看lo網(wǎng)卡上有一個vip
測試
在瀏覽器訪問VIP:192.168.133.200,刷新網(wǎng)頁(等上一段時間),訪問結(jié)果由rs1、rs2主頁內(nèi)容交替出現(xiàn)。
如果網(wǎng)頁反應(yīng)不及時,可以刷新網(wǎng)頁,用 ipvsadm -ln 命令,查看ActiveConn和InActCon會發(fā)生變化
keepalived + LVS
完整的架構(gòu)需要兩臺服務(wù)器(角色為dir),分別安裝Keepalived工具,目的是實現(xiàn)高可用,但Keepalived本身也有負(fù)載均衡功能,所以本次使用可以只安裝一臺Keepalived。
Keepalived內(nèi)置了ipvsadm的功能,所以不需要安裝ipvsadm包,也不用編寫和執(zhí)行l(wèi)vs_dr腳本。
準(zhǔn)備工作
三臺機(jī)器分別為
- 調(diào)度器director(安裝Keepalived):
IP:192.168.133.130; - real server(real1):
IP:192.168.133.132 - real server(real2):
IP:192.168.133.133 - VIP:192.168.133.200
配置dir
在dir上編輯keepalived配置文件,保存退出
vrrp_instance VI_1 {#備用服務(wù)器上為 BACKUPstate MASTER#綁定vip的網(wǎng)卡為ens33,你的網(wǎng)卡和阿銘的可能不一樣,這里需要你改一下interface ens33virtual_router_id 51#備用服務(wù)器上為90priority 100advert_int 1authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {192.168.133.200} } virtual_server 192.168.133.200 80 {#(每隔10秒查詢realserver狀態(tài))delay_loop 10#(lvs 算法) lb_algo wlc #算法(DR模式)lb_kind DR#(同一IP的連接60秒內(nèi)被分配到同一臺realserver)persistence_timeout 0 #(用TCP協(xié)議檢查realserver狀態(tài))protocol TCP real_server 192.168.133.132 80 {#(權(quán)重) weight 100TCP_CHECK {#(10秒無響應(yīng)超時)connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}} real_server 192.168.133.133 80 {weight 100TCP_CHECK {connect_timeout 10nb_get_retry 3delay_before_retry 3connect_port 80}} }啟動keepalived,查看進(jìn)程,查看網(wǎng)卡信息
由于之前設(shè)置過VIP,所以需要先清理
查看ipvsadm規(guī)則
配置rs ?
在兩臺rs上編寫腳本vim /usr/local/sbin/lvs_rs.sh,內(nèi)容如下,保存退出
#/bin/bash vip=192.168.133.200 #把vip綁定在lo上,是為了實現(xiàn)rs直接把結(jié)果返回給客戶端 ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up route add -host $vip lo:0 #以下操作為更改arp內(nèi)核參數(shù),目的是為了讓rs順利發(fā)送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上執(zhí)行腳本命令 sh /usr/local/sbin/lvs_rs.sh
測試
在瀏覽器訪問VIP:192.168.133.200,刷新網(wǎng)頁(等上一段時間),訪問結(jié)果由rs1、rs2主頁內(nèi)容交替出現(xiàn)。
keepalived 有一個比較好的功能,可以在一臺rs宕機(jī)的時候,不再把請求轉(zhuǎn)發(fā)過去
擴(kuò)展
haproxy+keepalived
nginx、lvs、haproxy比較
keepalived中自定義腳本 vrrp_script
lvs dr模式只使用一個公網(wǎng)ip的實現(xiàn)方法
轉(zhuǎn)載于:https://my.oschina.net/u/3708406/blog/1615807
總結(jié)
以上是生活随笔為你收集整理的LVS DR模式搭建,keepalived + LVS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue Cli 脚手架的搭建
- 下一篇: swoole知识点