Ubuntu LVS DR模式生產環境部署
1、環境說明
系統版本:ubuntu14.04
LVS伺服器:14.17.64.3
真實伺服器:14.17.64.4-12
VIP:14.17.64.13
部署目的:使用者請求14.17.64.13的報文轉發至14.17.64.4-12上進行負載均衡。
2、安裝LVS
由於LVS像iptables一樣是工作在核心層,所以只需要安裝模組ip_vs就可以了,並沒有後臺程式在跑
#aptitude install ipvsadm
# ipvsadm -v
ipvsadm v1.26
# lsmod |grep ip_vs #檢視核心模組,有代表ipvsadm載入進核心當中,此時LVS安裝完畢
ip_vs 136701 0
nf_conntrack 96976 1 ip_vs
libcrc32c 12644 3 xfs,btrfs,ip_vs
# ipvsadm -L -n #檢視lvs規則
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
root@ubun
# ipvsadm -L -c #檢視連線情況
3、配置LVS VIP服務
-A是新增一條虛擬伺服器記錄,即VIP。此處配置要選擇演算法。
#ipvsadm -A-t 14.17.64.13 -s wrr -p 300 #代理轉發所有去往該IP TCP的報文,-s指定演算法wrr為加權輪詢演算法,-p會話保持時間(預設值是300s)
#ipvsadm -A-t 14.17.64.13:80 -s wrr -p 20 #代理轉發去往該IP TCP80埠的報文
VIP維護:
使用-E修改VIP設定
例:ipvsadm -E -t 14.17.64.13 -s wrr -p 40 #可修改會話保持時間與演算法。
使用-D刪除VIP設定
例:ipvsadm -D -t 14.17.64.13 #刪除該條VIP
4、配置LVS RIP規則
-a是新增VIP要對哪些真實伺服器IP(即RIP)進行負載(預設是DR模式即-g)。
ipvsadm -a -t 14.17.64.13 -r 14.17.64.4 -g -w 1 #-r指定真實伺服器IP,-g為選擇DR模式(-m為NAT模式,-t為tunnel模式),-w選擇權重。
ipvsadm -a -t 14.17.64.13 -r 14.17.64.5 -g -w 1
ipvsadm -a -t 14.17.64.13 -r 14.17.64.6 -g -w 1
ipvsadm -a -t 14.17.64.13 -r 14.17.64.7 -g -w 1
ipvsadm -a -t 14.17.64.13 -r 14.17.64.8 -g -w 1
ipvsadm -a -t 14.17.64.13 -r 14.17.64.9 -g -w 1
ipvsadm -a -t 14.17.64.13 -r 14.17.64.10 -g -w 1
ipvsadm -a -t 14.17.64.13 -r 14.17.64.11 -g -w 1
ipvsadm -a -t 14.17.64.13 -r 14.17.64.12 -g -w 1
#如果只對tcp 80埠進行負載,可使用如下命令
#ipvsadm -a-t14.17.64.13:80 -r 14.17.64.4:80 -g -w 1
RIP維護:
使用-e修改RIP配置
例:ipvsadm -e -t14.17.64.13 -r 14.17.64.6 -g -w 4 #修改這條RIP規則的權重。
使用-d刪除RIP配置
例:ipvsadm -d -t14.17.64.13 -r 14.17.64.6 -g -w 1 #刪除該條RIP配置
5、在真實伺服器上配置VIP
在真實伺服器上都配置上VIP,即14.17.64.13地址。
#ifconfig lo:1314.17.64.13 netmask 255.255.255.255
6、在真實伺服器上關閉ARP響應
關閉真實伺服器上loop口的arp迴應,其它口的無須關閉。
預設arp_ignore和arp_announce的引數都是0,即迴應所有目的IP是本機的arp請求。
在所有真實伺服器上進行如下操作:
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore #只回答目標IP地址是來訪網路介面本地地址的ARP查詢請求。
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce #對查詢目標使用最適當的本地地址。
#此處可以進行測試,在測抑制arp前,能ping通VIP地址。在抑制arp後,在前端交換機上清掉arp快取,再ping VIP就不通了。但物理eth0網路卡IP還是能通的。
arp含義參考地址:http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
接下來在lvs上配置VIP:
ifconfig lo:13 14.17.64.13 netmask255.255.255.255
7、開啟核心轉發功能
在lvs上開啟核心轉發功能。
#echo 'net.ipv4.ip_forward=1' >>/etc/sysctl.conf
#sysctl -p
8、LVS測試
由於真實伺服器上未搭建http服務,但我設定的lvs是轉發所有tcp連線,所以我通過ssh到VIP上進行測試。
#iptables -L -c #檢視lvs轉發記錄,確定請求轉發成功。
TCP 14:59 ESTABLISHED 242.103.143.219.broad.bj.bj.dynamic.163data.com.cn:5197714.17.64.13:22 14.17.64.10:22
至此lvs搭建成功。
9、lvs補充思考
1、 自身無法對真實伺服器保活,如果出現伺服器down情況,還會向down的伺服器轉發請求。
解決方法是keepalived或自已寫指令碼來監測連通性再清除相應規則。
2、一臺LVS伺服器會出現單點故障,需要有備份LVS伺服器
解決方法是keepalived來進行LVS故障接管。
相關文章
- ubuntu搭建nodejs生產環境——快速部署手冊UbuntuNodeJS
- ClickHouse生產環境部署
- LVS - 直接路由(DR)模式示例路由模式
- LVS DR模式單網段案例模式
- LVS-DR直連路由模式路由模式
- LVS 負載均衡之 VS/DR 模式負載模式
- Flask 生產環境部署(Falsk + uWSGI + nginx)FlaskNginx
- vue-element-admin部署生產環境Vue
- vcenter6.7生產環境叢集部署之環境介紹
- 生產環境部署Nginx伺服器雙機熱備部署-keepalived(多種模式教程)Nginx伺服器模式
- 企業生產環境Nacos叢集部署示例
- 部署ES + Kibana 到生產環境的筆記筆記
- Spring Boot (二)整合Jsp與生產環境部署Spring BootJS
- LVS的DR模型配置模型
- 在Ubuntu上部署Hyperledger Fabric環境Ubuntu
- Ubuntu 16 下部署 Laravel LNMP 環境UbuntuLaravelLNMP
- LVS + Keepalived + Nginx基於DR模式構建高可用方案Nginx模式
- linux下部署lvs-DR群集構建實施過程Linux
- TorchServe 詳解:5 步將模型部署到生產環境模型
- vcenter6.7生產環境叢集部署及應用
- 生產環境 壓測
- 阿里雲 Ubuntu16.04 部署 LNMP 環境阿里UbuntuLNMP
- 熱部署一般用在測試環境, 生產環境用分散式配置中心熱部署分散式
- MySQL原理簡介—3.生產環境的部署壓測MySql
- Ubuntu 16.04 環境安裝部署(更新版)Ubuntu
- 用 Spring 區分開發環境、測試環境、生產環境Spring開發環境
- 生產環境部署springcloud微服務啟動慢的問題排查SpringGCCloud微服務
- Yarn生產環境核心引數Yarn
- Webpack(開發、生產環境配置)Web
- 輕鬆部署 Laravel 應用 | 《10. 手動部署 - 生產環境的必要優化》Laravel優化
- webpack開發模式和生產模式設定及不同環境指令碼執行Web模式指令碼
- 在生產環境使用Docker部署應用Docker
- kafka生產環境規劃-kafka 商業環境實戰Kafka
- ubuntu下AI伺服器環境的部署準備UbuntuAI伺服器
- Vite去除生產環境console.logVite
- Yarn 生產環境多佇列配置Yarn佇列
- Flink生產環境常見問題
- Visual Studio 生產環境配置方案:SlowCheetah
- Vue生產環境除錯的方法Vue除錯