日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux lvs公网ip,Linux集群架构(2)LVS介绍、LVS的调度算法、NAT模式搭建、 DR模式、keepalive...

發布時間:2025/4/5 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux lvs公网ip,Linux集群架构(2)LVS介绍、LVS的调度算法、NAT模式搭建、 DR模式、keepalive... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

負載均衡集群介紹

LVS介紹

1.LVS NAT模式:(,目標ip轉發。適用于小型集群,機器數量不多10臺左右)

2.LVS IP Tunnel模式(將目標ip進行更改)

(在這個模式下的rs機器都是配置有公網ip)

3.LVS DR模式(把數據包的MAC地址修改)

NAT模式適合小型集群,機器在10臺左右。其優勢是節省公網ip。 IP TUNNEL和DR

相差不大,能使用在較大的集群模式下,但是每臺rs服務器都要配置有公網ip,這樣會比較浪費公網ip,費錢。

LVS的調度算法

常用的算法是前四種:rr 、wrr 、 lc 、wlc。

LVS NAT模式搭建

準備工作:

1.準備三臺機器(我是從第二臺直接克隆的)

(1)修改第三臺克隆機的ip

修改完重啟服務:

(2)修改克隆集主機名:

hostnamectl set-hostname cansheng3

2.將分發器,也叫調度器(簡寫為dir)機器(133)添加多一塊網卡:

(因為之前已經配置有了ens37)

這個ens37的網卡是僅主機模式

同時查看到這個網卡的子網ip網段是192.168.243.0

(1)所以對這個ens37設置ip:

vim /etc/sysconfig/network-scripts/ifcfg-ens37

修改完后重啟網絡服務:

systemctl ?restart network

(2)檢測ip是否能ping通:(在window的終端下測試)

ping 192.168.243.144

3.修改兩臺rs(真實服務器)網關(要和dir分發器的內網一致)

vim /etc/sysconfig/network-scripts/ifcfg-ens33

!!當這兩臺機器rs的網關修改成dir內網的ip時則不能上網。

修改完后重啟服務和查看網關

systemctl restart network

route -n

4.三臺機器上都執行執行

(1)systemctl stop firewalld;

systemc disable firewalld

(2)yum install -y iptables-services

(3)systemctl start ?iptables

(4)iptables -F;

(5)service iptables save

關閉selinux

vim /etc/selinux/config

(如果在使用yum下載的時候發現很慢,則先吧rpel改了名字再下載,需要用到rpel

再把名字改回來

mv?/etc/yum.repos.d/epel.repo ?/etc/yum.repos.d/epel.repo1

)

開始 NAT模式搭建

1.只要在分發器dir上安裝ipvsadm ?(實現lvs功能的重要工具)

yum install -y ipvsadm

2.在dir上編寫腳本,vim /usr/local/sbin/lvs_nat.sh//內容如下

(寫這個腳本是為了更快執行所需命令,不寫則下列命令每行執行一次)

#! /bin/bash

# director 服務器上開啟路由轉發功能(對內核實現轉發)

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

# 關閉icmp的重定向

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects

# 注意區分網卡名字,我的兩個網卡分別為ens33和ens37(根據自己的網卡名設定)

echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects

# director 設置nat防火墻

iptables -t nat -F

iptables -t nat -X

iptables -t nat -A POSTROUTING -s 192.168.136.0/24 ?-j MASQUERADE ?//實現讓同網段的內網實現上網

# director設置ipvsadm

IPVSADM='/usr/sbin/ipvsadm'

$IPVSADM -C ? //清空ipvsadm規則

$IPVSADM -A -t 192.168.243.144:80 -s lc -p 3 ?//添加一個規則,并指定調度算法為lc ,-p指定超時時間(單位秒,建議不加)

$IPVSADM -a -t 192.168.243.144:80 -r 192.168.136.134:80 -m -w 1 //-m:表示NAT模式;-i:ip Tunnel;-g:DR模式-w:表示權重

$IPVSADM -a -t 192.168.243.144:80 -r 192.168.136.135:80 -m -w 1 ?//-a:添加rs;-t:TCP

(-p的設置會是請求在指定的時間內請求在同一臺rs上)

寫完腳本執行一下:

sh?/usr/local/sbin/lvs_nat.sh

(執行腳本任何輸出表示正確)

NAT模式效果測試

1. 兩臺rs上都安裝nginx,并開啟服務

2.設置兩臺rs的主頁,做一個區分,也就是說直接curl兩臺rs的ip時,得到不同的結果

A:對rs1機器操作

> /usr/share/nginx/html/index.html (清空文件內容)

vim /usr/share/nginx/html/index.html

B:對rs2機器操作:

> /usr/share/nginx/html/index.html (清空文件內容)

vim /usr/share/nginx/html/index.html

3. 瀏覽器里訪問192.168.243.144,多訪問幾次看結果差異

瀏覽器中輸入公網ip

使用curl測試:curl 192.168.243.144

(可看出請求均衡在兩臺rs上)

使用命令 ipvadm -ln 可以看到相應的規則

DR模式搭建

(在生產環境中,使用較多的是DR模式,但是使用公網ip資源大。

在生產中也可以搭建一個內網,使用一個公網ip,映射到公網的VIP上,從而減少公網資金支出

)

準備工作

把上面實驗的兩臺rs的網關修改回來

DR模式搭建

1.dir上編寫腳本 vim /usr/local/sbin/lvs_dr.sh //內容如下

#! /bin/bash

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

ipv=/usr/sbin/ipvsadm

vip=192.168.136.200

rs1=192.168.136.134

rs2=192.168.136.135

#注意這里的網卡名字

ifdown ens33

ifup ens33

ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip dev ens33:2

$ipv -C

$ipv -A -t $vip:80 -s wrr

$ipv -a -t $vip:80 -r $rs1:80 -g -w 1

$ipv -a -t $vip:80 -r $rs2:80 -g -w 1

執行腳本:sh /usr/local/sbin/lvs_dr.sh

(這個提示是正常的。因為我們執行了ifdown 和ifup)

2.兩臺rs上也編寫腳本 vim /usr/local/sbin/lvs_rs.sh//內容如下

#/bin/bash

vip=192.168.136.200

#把vip綁定在lo上,是為了實現rs直接把結果返回給客戶端

ifdown lo

ifup lo

ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip lo:0

#以下操作為更改arp內核參數,目的是為了讓rs順利發送mac地址給客戶端

#參考文檔www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

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

兩臺rs都執行腳本:?sh /usr/local/sbin/lvs_rs.sh

檢測VIP

ip addr

3.測試:

測試最好是用另外一臺不同ip網段的虛擬機測試最好。

(當我們的訪問量很大時,自然起到均衡的作用。)

keepalived+ lvs

(在LVS架構中,NAT和DR模式,當后端的RS宕機時,調度器依然會把請求轉發到宕機的RS上。使用keepalived可以解決此問題,keepalived能實現高可用和負載均衡)

一般的情況下,使用這個keepalived做負載均衡,首先就是要做高可用再做負載均衡

所以最少要準備四臺機器:兩臺做keepalived,兩臺作為真實機器

(本次實驗用三臺機器

dir(安裝keepalived)136.133

rs1 136.134

rs2 133.135

vip 133.200

)

步驟

(在實驗之前,我們甚至是不需要使用ipvsadm 即可ipvsadm -c 卸載)

1.?編輯keepalived配置文件:

vim /etc/keepalived/keepalived.conf ?(先把之前內容清空)

/內容請到https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/lvs_keepalived.conf 獲取

內容:

vrrp_instance VI_1 {

#備用服務器上為 BACKUP

state MASTER

#綁定vip的網卡為ens33,你的網卡和阿銘的可能不一樣,這里需要你改一下

interface ens33

virtual_router_id 51

#備用服務器上為90

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass aminglinux

}

virtual_ipaddress { ? ? ?#虛擬ip:VIP

192.168.136.200

}

}

virtual_server 192.168.136.200 80 { ?#端口根據具體監控的端口確定

#(每隔10秒查詢realserver狀態)

delay_loop 10

#(lvs 算法)

lb_algo wlc

#(DR模式)

lb_kind DR

#(同一IP的連接60秒內被分配到同一臺realserver)

persistence_timeout 60

#(用TCP協議檢查realserver狀態)

protocol TCP

real_server 192.168.136.134 80 {

#(權重)

weight 100

TCP_CHECK {

#(10秒無響應超時)

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 192.168.136.135 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

添加完內容后: 啟動keepalived服務

systemctl start keepalived

2.其他兩臺真實機器rs的nginx服務要啟動起來

systemctl start nginx

同時也要把之前的vip清空掉:systemctl restart network

3.使用 ipvsadm -ln :可以查看到設定的VIP和兩臺rs機器

此時我們嘗試著把氣筒一臺或兩臺rs機器的nginx服務停止,可以發現

keepalived會把宕機的rs機器踢出,這樣就可以保證到,當rs真實服務器

宕機后,請求不在發送到其上。

(1)停掉rs1機器后的效果:

(2)把兩臺的rs機器都停了

當我們把rs機器再次啟動的時候,keepalived會自動的把負載的機器添加回來

!!!!使用keepalived+LVS DR需要注意的事項.

(1)兩臺rs上,依然要執行/usr/local/sbin/lvs_rs.sh腳本

兩臺rs上也編寫腳本 vim /usr/local/sbin/lvs_rs.sh//內容如下

#/bin/bash

vip=192.168.136.200

#把vip綁定在lo上,是為了實現rs直接把結果返回給客戶端

ifdown lo

ifup lo

ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up //命令行下添加ip。臨時添加,重啟失去

route add -host $vip lo:0

#以下操作為更改arp內核參數,目的是為了讓rs順利發送mac地址給客戶端

#參考文檔www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html

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

分別在dir上和兩個rs上執行這些腳本

(2)在dir分發器需執行

執行:echo 1 >/proc/sys/net/ipv4/ip_forward

瀏覽器測試:

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的linux lvs公网ip,Linux集群架构(2)LVS介绍、LVS的调度算法、NAT模式搭建、 DR模式、keepalive...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。