今天來說LVS-DR模式集羣實現負載均衡的搭建方法html
環境node
主機名 | IP | 系統 | 角色 | |
dir | DIP:192.168.199.9 | VIP:192.168.199.8 | rhel7.4 | 集羣服務器 |
node1 | RIP:192.168.199.67 | VIP:192.168.199.8 | rhel6.5 | RS/web服務器 |
node2 | RIP:192.168.199.68 | VIP:192.168.199.8 | rhel6.5 | RS/web服務器 |
分發器配置:web
一、安裝lvs核心軟件包:vim
[root@dir ~]# yum install ipvsadm -y後端
二、在DR設置兩個IP地址:DIP要配置在接口上,VIP要配置在網卡接口別名上tomcat
a) DIP: 192.168.199.9 ,設置靜態IDbash
b) VIP:192.168.199.8服務器
[root@dir ~]# cd /etc/sysconfig/network-scripts/
[root@dir network-scripts]# cp ifcfg-ens33 ifcfg-ens33:1網絡
[root@dir network-scripts]# vim ifcfg-ens33:1負載均衡
三、寫腳本管理(開啓路由轉發,添加虛擬服務,添加虛擬服務後端的real server)
[root@dir ~]# vim lvs_nat.sh
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.199.0/24 -j MASQUERADE
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.199.8:80 -s rr
$IPVSADM -a -t 192.168.199.8:80 -r 192.168.199.67:80 -g
$IPVSADM -a -t 192.168.199.8:80 -r 192.168.199.68:80 -g
[root@dir ~]# ./lvs_nat.sh
查看規則:
[root@node1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.199.8:80 rr
-> 192.168.199.67:80 Route 1 0 0
-> 192.168.199.68:80 Route 1 0 0
四、添加路由規則:
[root@dir ~]#route add -host 192.168.199.8 dev ens33:1
RS上配置(兩臺都得配置)。
一、在多臺RS( apeche或者tomcat )上面的配置:RIP要配置在接口上,VIP要配置在lo的別名上,定義內核參數,禁止響應對VIP的ARP廣播請求(先配置,再綁定VIP)
兩臺RS的RIP設置:靜態設置192.168.199.67 192.168.199.68
二、關閉ARP
臨時關閉:
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
永久關閉:
[root@node1 ~]# vim /etc/sysctl.conf (配置文件後面添加)
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
三、在兩臺機器(RS)上,設置網卡的別名192.168.199.8,此時綁定的網絡接口不進行對外通訊,因此VIP綁定在lo的別名上
ifconfig lo:1 192.168.199.8 netmask 255.255.255.255
四、在兩臺機器(RS)上,添加一個路由:route add -host 192.168.199.8 dev lo:1 確保若是請求的目標IP是$VIP,那麼讓出去的數據包的源地址也顯示爲$VIP
五、在rs1和rs2上安裝Apache服務,而後下一個測試頁面
rs1:echo 'this is 192.168.199.67' > /var/www/html/index.html
rs2: echo 'this is 192.168.199.68' > /var/www/html/index.html
測試:找一臺客戶機訪問VIP,查看結果: