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