RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

IPVS負(fù)載均衡原理解析

馬哥Linux運(yùn)維 ? 來源:博客園hongdada ? 2024-10-24 17:34 ? 次閱讀

概念:

ipvs (IP Virtual Server)實(shí)現(xiàn)了傳輸層負(fù)載均衡,也就是我們常說的4層LAN交換,作為 Linux 內(nèi)核的一部分。ipvs運(yùn)行在主機(jī)上,在真實(shí)服務(wù)器集群前充當(dāng)負(fù)載均衡器。ipvs可以將基于TCP和UDP的服務(wù)請求轉(zhuǎn)發(fā)到真實(shí)服務(wù)器上,并使真實(shí)服務(wù)器的服務(wù)在單個(gè) IP 地址上顯示為虛擬服務(wù)。

ipvs vs. iptables

我們知道kube-proxy支持 iptables 和 ipvs 兩種模式, 在kubernetesv1.8 中引入了 ipvs 模式,在 v1.9 中處于 beta 階段,在 v1.11 中已經(jīng)正式可用了。iptables 模式在 v1.1 中就添加支持了,從 v1.2 版本開始 iptables 就是 kube-proxy 默認(rèn)的操作模式,ipvs 和 iptables 都是基于netfilter的,那么 ipvs 模式和 iptables 模式之間有哪些差異呢?

ipvs 為大型集群提供了更好的可擴(kuò)展性和性能

ipvs 支持比 iptables 更復(fù)雜的復(fù)制均衡算法(最小負(fù)載、最少連接、加權(quán)等等)

ipvs 支持服務(wù)器健康檢查和連接重試等功能

ipvs 依賴 iptables

ipvs 會(huì)使用 iptables 進(jìn)行包過濾、SNAT、masquared(偽裝)。具體來說,ipvs 將使用ipset來存儲(chǔ)需要DROP或masquared的流量的源或目標(biāo)地址,以確保 iptables 規(guī)則的數(shù)量是恒定的,這樣我們就不需要關(guān)心我們有多少服務(wù)了

LVS調(diào)度算法:

1. 輪叫調(diào)度 rr
這種算法是最簡單的,就是按依次循環(huán)的方式將請求調(diào)度到不同的服務(wù)器上,該算法最大的特點(diǎn)就是簡單。輪詢算法假設(shè)所有的服務(wù)器處理請求的能力都是一樣的,調(diào)度器會(huì)將所有的請求平均分配給每個(gè)真實(shí)服務(wù)器,不管后端 RS 配置和處理能力,非常均衡地分發(fā)下去。

2. 加權(quán)輪叫 wrr
這種算法比 rr 的算法多了一個(gè)權(quán)重的概念,可以給 RS 設(shè)置權(quán)重,權(quán)重越高,那么分發(fā)的請求數(shù)越多,權(quán)重的取值范圍 0 – 100。主要是對rr算法的一種優(yōu)化和補(bǔ)充, LVS 會(huì)考慮每臺(tái)服務(wù)器的性能,并給每臺(tái)服務(wù)器添加要給權(quán)值,如果服務(wù)器A的權(quán)值為1,服務(wù)器B的權(quán)值為2,則調(diào)度到服務(wù)器B的請求會(huì)是服務(wù)器A的2倍。權(quán)值越高的服務(wù)器,處理的請求越多。

3. 最少鏈接 lc
這個(gè)算法會(huì)根據(jù)后端 RS 的連接數(shù)來決定把請求分發(fā)給誰,比如 RS1 連接數(shù)比 RS2 連接數(shù)少,那么請求就優(yōu)先發(fā)給 RS1

4. 加權(quán)最少鏈接 wlc
這個(gè)算法比 lc 多了一個(gè)權(quán)重的概念。

5. 基于局部性的最少連接調(diào)度算法 lblc
這個(gè)算法是請求數(shù)據(jù)包的目標(biāo) IP 地址的一種調(diào)度算法,該算法先根據(jù)請求的目標(biāo) IP 地址尋找最近的該目標(biāo) IP 地址所有使用的服務(wù)器,如果這臺(tái)服務(wù)器依然可用,并且有能力處理該請求,調(diào)度器會(huì)盡量選擇相同的服務(wù)器,否則會(huì)繼續(xù)選擇其它可行的服務(wù)器

6. 復(fù)雜的基于局部性最少的連接算法 lblcr
記錄的不是要給目標(biāo) IP 與一臺(tái)服務(wù)器之間的連接記錄,它會(huì)維護(hù)一個(gè)目標(biāo) IP 到一組服務(wù)器之間的映射關(guān)系,防止單點(diǎn)服務(wù)器負(fù)載過高。

7. 目標(biāo)地址散列調(diào)度算法 dh
該算法是根據(jù)目標(biāo) IP 地址通過散列函數(shù)將目標(biāo) IP 與服務(wù)器建立映射關(guān)系,出現(xiàn)服務(wù)器不可用或負(fù)載過高的情況下,發(fā)往該目標(biāo) IP 的請求會(huì)固定發(fā)給該服務(wù)器。

8. 源地址散列調(diào)度算法 sh
與目標(biāo)地址散列調(diào)度算法類似,但它是根據(jù)源地址散列算法進(jìn)行靜態(tài)分配固定的服務(wù)器資源。

ipvsadm參數(shù)

添加虛擬服務(wù)器
    語法:ipvsadm -A [-t|u|f]  [vip_addr:port]  [-s:指定算法]
    -A:添加
    -t:TCP協(xié)議
    -u:UDP協(xié)議
    -f:防火墻標(biāo)記
    -D:刪除虛擬服務(wù)器記錄
    -E:修改虛擬服務(wù)器記錄
    -C:清空所有記錄
    -L:查看
添加后端RealServer
    語法:ipvsadm -a [-t|u|f] [vip_addr:port] [-r ip_addr] [-g|i|m] [-w 指定權(quán)重]
    -a:添加
    -t:TCP協(xié)議
    -u:UDP協(xié)議
    -f:防火墻標(biāo)記
    -r:指定后端realserver的IP
    -g:DR模式
    -i:TUN模式
    -m:NAT模式
    -w:指定權(quán)重
    -d:刪除realserver記錄
    -e:修改realserver記錄
    -l:查看
通用:
    ipvsadm -ln:查看規(guī)則
    service ipvsadm save:保存規(guī)則

負(fù)載均衡器端:

安裝LVS
    [root@lb01 ~]#yum -y install ipvsadm 
    [root@lb01 ~]#ipvsadm  
添加綁定VIP
    [root@lb01 ~]#ip addr add 192.168.0.89/24 dev eth0 label eth0:1
配置LVS-DR模式
    [root@lb01 ~]#ipvsadm -A -t 192.168.0.89:80 -s rr //創(chuàng)建一個(gè)DR,并指定調(diào)度算法采用rr。
    [root@lb01 ~]#ipvsadm -a -t 192.168.0.89:80 -r 192.168.0.93 -g  //添加RS
    [root@lb01 ~]#ipvsadm -a -t 192.168.0.89:80 -r 192.168.0.94 -g  //添加RS

Real-Server端

配置測試后端realserver
    配置httpd省略
    [root@realserver-1 ~]#curl 192.168.0.93 #測試realserver-1網(wǎng)站是否正常    
    192.168.0.93
    [root@realserver-2 ~]#curl 192.168.0.94 #測試realserver-2網(wǎng)站是否正常
    192.168.0.94
綁定VIP到lo網(wǎng)卡
    [root@realserver-1 ~]#ip addr add 192.168.0.89/32 dev lo label lo:1  #由于DR模式需要realserver也有VIP
抑制ARP
    [root@realserver-1 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  
    [root@realserver-1 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
    [root@realserver-1 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@realserver-1 ~]#echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore

客戶端測試

[root@test ~]#curl 192.168.0.89
192.168.0.93
[root@test ~]#curl 192.168.0.89
192.168.0.94

鏈接:https://www.cnblogs.com/hongdada/p/9758939.html

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40275
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11292

    瀏覽量

    209322
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9123

    瀏覽量

    85322
  • 負(fù)載均衡
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

    12364

原文標(biāo)題:IPVS負(fù)載均衡

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    利用LVS中的IP負(fù)載均衡技術(shù)建立可伸縮性網(wǎng)絡(luò)服務(wù)

    從LVS的通用體系結(jié)構(gòu)入手,分析了IPVS軟件的工作原理,討論了三種IP負(fù)載均衡技術(shù);在分析網(wǎng)絡(luò)地址轉(zhuǎn)換方法(VS/NAT)的缺點(diǎn)和網(wǎng)絡(luò)服務(wù)的非對稱性的基礎(chǔ)上,給出了通過IP隧道
    發(fā)表于 11-10 12:02 ?13次下載

    負(fù)載均衡(Load Balance)

    負(fù)載均衡(Load Balance)   &nbs
    發(fā)表于 01-08 14:39 ?852次閱讀

    什么是服務(wù)器網(wǎng)絡(luò)負(fù)載均衡

    什么是服務(wù)器網(wǎng)絡(luò)負(fù)載均衡 什么是負(fù)載均衡?
    發(fā)表于 01-11 10:58 ?1801次閱讀

    負(fù)載均衡是什么意思?負(fù)載均衡器有什么用

    負(fù)載平衡也稱負(fù)載共享,是指對系統(tǒng)中的負(fù)載情況進(jìn)行動(dòng)態(tài)調(diào)整,以盡量消除或減少系統(tǒng)中各節(jié)點(diǎn)負(fù)載均衡的現(xiàn)象。
    發(fā)表于 12-21 09:48 ?1.9w次閱讀
    <b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>是什么意思?<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>器有什么用

    基于java的負(fù)載均衡算法解析及源碼分享

    負(fù)載均衡的算法實(shí)際上就是解決跨系統(tǒng)調(diào)用的時(shí)候,在考慮后端機(jī)器承載情況的前提下,保證請求分配的平衡和合理。下面是基于java的負(fù)載均衡算法解析
    發(fā)表于 01-01 19:29 ?2217次閱讀

    服務(wù)器負(fù)載均衡有幾種類型,做負(fù)載均衡好在哪

    對于服務(wù)器負(fù)載均衡可能很多朋友并不了解是什么,服務(wù)器負(fù)載均衡的簡單理解就是指對系統(tǒng)中的負(fù)載情況進(jìn)
    的頭像 發(fā)表于 09-02 17:57 ?3266次閱讀

    Apacheproxy負(fù)載均衡和Session復(fù)制

    Apacheproxy負(fù)載均衡和Session復(fù)制(電源技術(shù)交流群)-Apacheproxy負(fù)載均衡和Session復(fù)制? ? ? ? ? ? ? ? ? ??
    發(fā)表于 08-31 12:29 ?0次下載
    Apacheproxy<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>和Session復(fù)制

    解密負(fù)載均衡技術(shù)和負(fù)載均衡算法

    負(fù)載均衡器是一種軟件或硬件設(shè)備,它起到了將網(wǎng)絡(luò)流量分散到一組服務(wù)器的作用,可以防止任何一臺(tái)服務(wù)器過載。負(fù)載均衡算法就是負(fù)載
    的頭像 發(fā)表于 11-12 09:16 ?1126次閱讀

    簡述kube-proxy ipvs原理

    iptables 與 IPVS 都是基于 Netfilter 實(shí)現(xiàn)的,但因?yàn)槎ㄎ徊煌?,二者有著本質(zhì)的差別:iptables 是為防火墻而設(shè)計(jì)的;IPVS 則專門用于高性能負(fù)載均衡,并使
    的頭像 發(fā)表于 05-22 11:35 ?745次閱讀

    負(fù)載均衡是如何工作的?

    負(fù)載均衡是在多個(gè)物理服務(wù)器之間智能分配流量以最大化資源利用率的過程。換句話說,在兩臺(tái)或多臺(tái)計(jì)算機(jī)/服務(wù)器之間共享計(jì)算工作負(fù)載的過程就是負(fù)載均衡
    的頭像 發(fā)表于 06-15 17:26 ?677次閱讀

    SDWAN和負(fù)載均衡的關(guān)系

    SDWAN和負(fù)載均衡的關(guān)系
    的頭像 發(fā)表于 07-21 14:28 ?560次閱讀

    如何確定適合的負(fù)載均衡比例

    路由器的負(fù)載均衡是一種應(yīng)用于網(wǎng)絡(luò)中的技術(shù),它可以平衡網(wǎng)絡(luò)流量的分配,提高網(wǎng)絡(luò)的性能和穩(wěn)定性。在配置路由器的負(fù)載均衡時(shí),選擇合適的負(fù)載
    的頭像 發(fā)表于 12-15 10:36 ?1562次閱讀

    深入解析IPVS(IP虛擬服務(wù)器)

    IPVS是如何決策應(yīng)該把請求調(diào)度到哪個(gè)后端RS(Real Server)上的呢?這是由負(fù)載均衡調(diào)度算法決定的。
    發(fā)表于 02-27 11:12 ?1162次閱讀
    深入<b class='flag-5'>解析</b><b class='flag-5'>IPVS</b>(IP虛擬服務(wù)器)

    視頻網(wǎng)站服務(wù)器的四種負(fù)載均衡技術(shù)

    視頻網(wǎng)站通常會(huì)面臨大量的用戶訪問和視頻流量,為了提高性能和可用性,需要使用負(fù)載均衡技術(shù)。以下是四種常用的視頻網(wǎng)站服務(wù)器負(fù)載均衡技術(shù): 1、基于DNS的
    的頭像 發(fā)表于 04-01 17:36 ?620次閱讀

    nginx負(fù)載均衡配置介紹

    目錄 nginx負(fù)載均衡 nginx負(fù)載均衡介紹 反向代理與負(fù)載均衡 nginx
    的頭像 發(fā)表于 11-10 13:39 ?230次閱讀
    nginx<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>配置介紹
    RM新时代网站-首页