LVS負載均衡配置與keepalive服務配置
負載均衡模型
D-NAT
D-NAT模型的缺點在於網路上傳與下載的不對稱性,返回資料包時會經過負責負載均衡的機器,網路io任務很重,可能導致卡頓,並且tcp握手是與負載機進行的,流量一大則很容易響應不過來。
DR
DR模型的均衡機接收到資料包後直接把目標mac地址改為負載機的mac地址(RIP的mac),資料包直接轉發給伺服器,伺服器配置了虛擬網路卡,虛擬網路卡的ip地址(vip)與均衡機公開的vip相同,但對外不暴露,所以收到轉發過來的資料包會收下,處理完後以虛擬網路卡的ip通過其他可達網路發回給client,不再經過負載機;但由於均衡機是修改mac地址進行資料包轉發的,所以負載機(server)和均衡機(轉發機)必須處於同一區域網中。
TUN
沒有明顯缺點,直接再包一層ip包頭轉發給server,可以不處於同一區域網中,但轉發資料包也可能產生延遲,所以服務響應可能會稍慢。
配置LVS
實驗虛擬機器
系統centos
node01:ip/192.168.150.11、網路卡名:eth0
node02:ip/192.168.150.12、網路卡名:eth0
node03:ip/192.168.150.13、網路卡名:eth0
1、
node01物理網路卡建立子ip
ifconfig eth0:8 192.168.150.100/24
2、
設定node02和03的arp報文響應、通告級別
隱藏VIP方法:對外隱藏,對內可見 :
kernel parameter:
目標mac地址為全F時,交換機會觸發arp廣播,當網路卡上電時,不修改響應級別的話會發起arp廣播,導致閘道器接收到伺服器的mac和ip,從而新增記錄到路由表中,閘道器收到發往vip的資料包時會直接發給server,進一步導致轉發機收不到資料包,做負載均衡失敗,因此需要修改server的arp響應和通告級別
arp_ignore: 定義接收到ARP請求時的響應級別:
0:只要本地配置的有相應地址,就給予響應;
1:僅在請求的目標(MAC)地址配置請求
到達的介面上的時候,才給予響應;
arp_announce:定義將自己地址向外通告時的通告級別:
0:將本地任何介面上的任何地址向外通告;
1:試圖僅向目標網路通告與其網路匹配的地址;
2:僅向與本地介面上地址匹配的網路進行通告;
node02/03 分別做如下操作:
設定響應通告級別
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
設定隱藏的vip,僅自己可見
ifconfig lo:3 192.168.150.100 netmask 255.255.255.255
3、
LVS服務配置
node01:
yum install ipvsadm -y
ipvsadm -A -t 192.168.150.100:80 -s rr
ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.12 -g -w 1
ipvsadm -a -t 192.168.150.100:80 -r 192.168.150.13 -g -w 1
ipvsadm -ln
node02/03:
yum install httpd -y
touch /var/www/html/index.html
echo 02/03 > /var/www/html/index.html #02/03區別操作
service httpd start #centos7: systemctl start httpd
最後物理機開啟瀏覽器,位址列輸入192.168.150.100驗證,開多個瀏覽器可看到不同結果
node01:
netstat -natp 結論看不到socket連線
node02~node03:
netstat -natp 結論看到很多的socket連線
node01:
ipvsadm -lnc 檢視記錄本
TCP 00:57 FIN_WAIT 192.168.150.1:51587 192.168.150.100:80 192.168.150.12:80
FIN_WAIT: 連線過,偷窺了所有的包
SYN_RECV: 基本上lvs都記錄了,證明lvs沒事,一定是後邊網路層出問題
ipvs核心模組:
yum install ipvsadm -y
管理叢集服務:
新增:-A -t|u|f service-address [-s scheduler]
-t: TCP協議的叢集
-u: UDP協議的叢集
service-address: IP:PORT
-f: FWM: 防火牆標記
service-address: Mark Number
修改:-E
刪除:-D -t|u|f service-address
ipvsadm -A -t 192.168.9.100:80 -s rr
Keepalive
keepalive可以做lvs負載均衡的高可用,防止均衡機掛掉,還能夠實時監測伺服器服務是否線上,動態調整負載,但keepalive本身也可能掛掉
實驗虛擬機器:node01/node04
node01:
ipvsadm -C #清除負載策略
ifconfig eth0:8 down #關閉虛擬機器物理網路卡子ip
node01,node04:
yum install keepalived ipvsadm -y
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vi keepalived.conf
配置keepalive:
vrrp_instance VI_1 {
state MASTER // node04 BACKUP
interface eth0
virtual_router_id 51
priority 100 // node04 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.150.100/24 dev eth0 label eth0:3
}
}
virtual_server 192.168.150.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.150.12 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.150.13 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
scp ./keepalived.conf root@node04:`pwd` #node04需要進到keepalive配置目錄下
不要忘記修改node04的keepalive配置檔案
可以隨機關掉node01/04的網路卡或關掉node02/03的http服務測試服務是否正常。
相關文章
- linux搭建LVS+keepalive+nginx實現叢集高效能負載均衡配置詳解LinuxNginx負載
- LVS+Keepalive 實現負載均衡高可用叢集負載
- nginx配置web服務|反向代理|負載均衡NginxWeb負載
- LVS 負載均衡負載
- Kubernetes:服務與負載均衡負載
- Linux LVS 負載均衡Linux負載
- LVS負載均衡群集負載
- LVS負載均衡群集概念、NAT模式LVS負載均衡實戰部署負載模式
- 使用LVS實現負載均衡原理及安裝配置詳解負載
- nginx配置+uwsgi+負載均衡配置Nginx負載
- 負載均衡之LVS與Nginx對比負載Nginx
- 負載均衡LVS+NAT負載
- Ribbon負載均衡策略與自定義配置負載
- 【Nginx】Windows平臺下配置Nginx服務實現負載均衡NginxWindows負載
- SpringCloud(二):服務呼叫與負載均衡SpringGCCloud負載
- 負載均衡之--Nginx、LVS、HAProxy負載Nginx
- LVS負載均衡群集--NAT模式負載模式
- 運維講堂:LVS負載均衡模式與F5負載均衡盤點運維負載模式
- IdentityServer4 負載均衡配置IDEServer負載
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- 使用Nginx配置TCP負載均衡NginxTCP負載
- LVS 負載均衡之 VS/NAT 模式負載模式
- LVS 負載均衡之 VS/TUN 模式負載模式
- LVS 負載均衡之 VS/DR 模式負載模式
- LVS+KEEPALIVED負載均衡實驗負載
- Nginx服務系列——負載均衡Nginx負載
- 負載均衡技術(二)———常用負載均衡服務介紹負載
- nginx安裝及負載均衡配置Nginx負載
- 服務發現與負載均衡機制-Service負載
- 深入理解微服務中的負載均衡演算法與配置策略微服務負載演算法
- LVS#MySQL+Keepalived四層負載均衡MySql負載
- 伺服器群集LVS負載均衡-NAT伺服器負載
- lvs+keepAlived→效率最高的負載均衡負載
- 負載均衡-構建CDN服務負載
- 伺服器群集—LVS負載均衡群集(LVS-NAT部署)伺服器負載
- 【SpringCloud】3.OpenFeign——服務註冊與負載均衡SpringGCCloud負載
- LVS+Keepalived 實現高可用負載均衡負載
- RHEL 7配置HAProxy實現Web負載均衡Web負載