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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

IPVS負載均衡原理解析

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

概念:

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

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 默認的操作模式,ipvs 和 iptables 都是基于netfilter的,那么 ipvs 模式和 iptables 模式之間有哪些差異呢?

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

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

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

ipvs 依賴 iptables

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

LVS調(diào)度算法:

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

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

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

4. 加權最少鏈接 wlc
這個算法比 lc 多了一個權重的概念。

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

6. 復雜的基于局部性最少的連接算法 lblcr
記錄的不是要給目標 IP 與一臺服務器之間的連接記錄,它會維護一個目標 IP 到一組服務器之間的映射關系,防止單點服務器負載過高。

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

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

ipvsadm參數(shù)

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

負載均衡器端:

安裝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)建一個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)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關注

    關注

    3

    文章

    1359

    瀏覽量

    40183
  • Linux
    +關注

    關注

    87

    文章

    11199

    瀏覽量

    208688
  • 服務器
    +關注

    關注

    12

    文章

    8947

    瀏覽量

    85065
  • 負載均衡
    +關注

    關注

    0

    文章

    104

    瀏覽量

    12350

原文標題:IPVS負載均衡

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    負載均衡(Load Balance)

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

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

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

    負載均衡是什么意思?負載均衡器有什么用

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

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

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

    服務器負載均衡有幾種類型,做負載均衡好在哪

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

    Apacheproxy負載均衡和Session復制

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

    解密負載均衡技術和負載均衡算法

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

    簡述kube-proxy ipvs原理

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

    負載均衡是如何工作的?

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

    搭建Keepalived+Lvs+Nginx高可用集群負載均衡

    ? 一、Nginx安裝 二、配置反向代理 三、配置負載均衡 四、upstream指令參數(shù) 五、配置ssl證書提供https訪問 六、配置ha nginx 七、LVS(Linux Virtual
    的頭像 發(fā)表于 06-25 15:39 ?2746次閱讀
    搭建Keepalived+Lvs+Nginx高可用集群<b class='flag-5'>負載</b><b class='flag-5'>均衡</b>

    SDWAN和負載均衡的關系

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

    如何確定適合的負載均衡比例

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

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

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

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

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