CentOS7 搭建LVS+keepalived負載均衡


1、實驗環境

4台節點
Keepalived1 + lvs1(Director1):192.168.31.4
Keepalived2 + lvs2(Director2):192.168.31.3
Real server1:192.168.31.2
Real server2:192.168.31.7
IP: 192.168.31.38

 

2、安裝

Lvs + keepalived的2個節點安裝:
yum install ipvsadm keepalived -y
Real server + nginx服務的2個節點安裝:
yum install -y nginx

 

3、設置配置腳本

Real server節點2台配置腳本:
vim /opt/lvs_dr_rs.sh
#!/bin/bash

vip=192.168.31.38
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev lo:0
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
sysctl -p >/dev/null 2>&1

復制到另外一台

scp lvs_dr-rs.sh root@192.168.31.3:/opt

執行腳本
bash /opt/lvs_dr_rs.sh
查看
ip a

 

 

keepalived節點配置(2節點):

主節點( MASTER )配置文件

vim /etc/keepalived/keepalived.conf

global_defs{
router_id LVS_DEVEL
}
vrrp_instance
VI_1 { state MASTER
interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.31.38 } } virtual_server 192.168.31.38 80 { delay_loop 6 lb_algo rr lb_kind DR persistence_timeout 0 protocol TCP
real_server
192.168.31.2 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } }
real_server
192.168.31.7 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }

從節點( BACKUP )配置文件

拷貝主節點的配置文件keepalived.conf:

scp keepalived.conf  root@192.168.31.3:/etc/keepalived

然后修改如下內容:

state MASTER -> state BACKUP
priority 100 -> priority 90

 keepalived的2個節點執行如下命令,開啟轉發功能:

# echo 1 > /proc/sys/net/ipv4/ip_forward

 

4、啟動nginx

systemctl start nginx

 

5、啟動keepalived

 

 先主后從分別啟動keepalive

systemctl start keepalived.service

 

6、重啟日志記錄服務

修改vim /etc/sysconfig/keepalived日志保存路徑

把KEEPALIVED_OPTIONS="-D" 修改為:KEEPALIVED_OPTIONS="-D -d -S 0"

 在vim /etc/rsyslog.conf 末尾添加

local0.*                  /var/log/keepalived.log

 重啟日志服務

systemctl restart rsyslog

重啟keepalived

systemctl restart keepalived.service

 

 

7、排查

  • 查看/var/log/keepalived.log日志是否啟動成功??
  • ipvsadm -ln查看是否正常
  • ipvsadm -ln --stats查看是否主才有數據,備沒有數據
  • curl vip,然后查看ipvsadm -lnc數據是否異常
  •  

 

 

8、刪除

ifconfig lo:0 down

route del 192.168.31.38

 

LVS DR模式的特性:

1、CIP必須能夠和VIP通訊,所以通常VIP是外網地址 2、DIP和RIP為同一物理網絡,否則無法向RS發送ARP廣播
3、RS上必須配置VIP地址,否則響應報文無法送達客戶端,RS上的VIP對外界是不可見的,但RS可以接收目標地址為VIP的網絡請求,並在回應數據包時將源地址設置為該VIP地址
4、RS上必須做ARP抑制,使RS不響應來自CIP的請求,相當於指定Director來響應CIP的請求
5、調度器幾乎支持所有的UNIX、LINUX系統,但不支持windows,但是RS可以為windows
6、RS的網關不能指向DIP,應該指向出口網關
7、DR模式下,不支持端口映射,即Director不能更改請求報文的端口
8、DR模式效率很高,但配置麻煩,訪問量不是非常大的情況下推薦使用haproxy或者nginx。標准:日訪問量2000W PV以下,或者並發請求1W以下的可以考慮使用haproxy或nginx或使用LVS-NAT模式。
9、直接對外的訪問業務,例如:web服務做RS節點,RS最好使用外網IP,如果不直接對外的業務,例如MySQL、存儲系統RS節點,最好使用內網IP

 

 

 

參考:https://www.cnblogs.com/edisonchou/p/4281978.html

https://blog.csdn.net/Ki8Qzvka6Gz4n450m/article/details/79119665

https://blog.csdn.net/u012852986/article/details/52412174


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM