全面解析 Kubernetes 流量負載均衡:iptables 與 IPVS 模式

目錄

Kubernetes 中 Service 的流量負載均衡模式

1. iptables 模式

工作原理

數據路徑

優點

缺點

適用場景

2. IPVS 模式

工作原理

數據路徑

優點

缺點

適用場景

兩種模式的對比

如何切換模式

啟用 IPVS 模式

驗證模式

總結


Kubernetes 中 Service 的流量負載均衡模式

Kubernetes 的 Service 提供了一種抽象,用于將網絡流量分發到一組后端 Pod 上,實現流量的負載均衡和高可用。具體來說,Service 的流量負載均衡有兩種實現模式:


1. iptables 模式

工作原理
  • 使用 Linux 內核的 Netfilter 框架,通過 iptables 規則實現流量轉發。
  • 每個 Kubernetes Service 都會對應一組 iptables 規則。
  • 當請求到達 Service 的 ClusterIP 或 NodePort 時,iptables 會根據規則將流量轉發到后端 Pod。
數據路徑
  1. 用戶請求到達 Kubernetes Service 的 ClusterIP。
  2. iptables 根據規則匹配 Service 的 Endpoints。
  3. 流量隨機轉發到某個 Pod。
優點
  • 簡單可靠:iptables 是 Linux 系統中非常成熟的技術。
  • 易于使用:默認配置,開箱即用。
  • 無額外依賴:無需安裝額外的工具或模塊。
缺點
  • 性能限制:規則數量多時性能下降(規則逐條匹配)。
  • 不支持動態更新:當后端 Pod 狀態變化時,重建規則會導致短暫的流量中斷。
  • 流量監控難度高:不易獲取詳細的流量分發信息。
適用場景

適合小型集群或對性能要求不高的場景。


2. IPVS 模式

工作原理
  • 基于 Linux 內核的 IP Virtual Server(IPVS)技術實現負載均衡。
  • IPVS 使用 Netfilter 框架,通過在內核中構建高效的哈希表實現流量分發。
  • 支持多種負載均衡算法,如輪詢 (RR)、加權輪詢 (WRR)、最少連接 (LC) 等。
數據路徑
  1. 用戶請求到達 Kubernetes Service 的 ClusterIP。
  2. IPVS 根據預定義的調度算法選擇后端 Pod。
  3. 流量直接轉發到選定的 Pod。
優點
  • 性能高效:基于內核實現,比 iptables 更快。
  • 擴展性強:支持更多的負載均衡算法(如源地址散列、目標地址散列等)。
  • 動態更新:后端 Pod 狀態變化時,可以快速更新規則,避免流量中斷。
  • 可觀測性:使用工具(如 ipvsadm)可以直接查看流量分發信息。
缺點
  • 依賴內核模塊:需要加載 IPVS 相關內核模塊。
  • 配置較復雜:需要手動啟用和配置。
適用場景

適合大規模集群或對負載均衡性能要求較高的場景。


兩種模式的對比

特性iptables 模式IPVS 模式
性能中等高效
負載均衡算法隨機輪詢、加權輪詢、最少連接等
動態更新延遲更新,可能中斷流量快速更新,無中斷
規則處理順序匹配規則哈希表處理,性能更優
依賴性無需額外模塊需加載 IPVS 相關模塊
監控工具不支持直接監控支持 ipvsadm 查看狀態
適用場景小型集群,默認使用大規模集群,高性能要求

如何切換模式

啟用 IPVS 模式
  1. 確保節點支持 IPVS 模塊:

    lsmod | grep ip_vs
    

    如果未加載,手動加載:

    modprobe ip_vs
    modprobe ip_vs_rr
    modprobe ip_vs_wrr
    modprobe ip_vs_sh
    
  2. 編輯 kube-proxy 配置:

    kubectl -n kube-system edit configmap kube-proxy
    

    設置 proxy-modeipvs

    apiVersion: kubeproxy.config.k8s.io/v1alpha1
    kind: KubeProxyConfiguration
    mode: "ipvs"
    
  3. 重啟 kube-proxy:

    kubectl -n kube-system delete pod -l k8s-app=kube-proxy
    
驗證模式

檢查 kube-proxy 的模式:

kubectl -n kube-system get configmap kube-proxy -o yaml

查看 IPVS 規則:

ipvsadm -Ln

總結

  • iptables 模式 是 Kubernetes 的默認模式,簡單易用,適合小規模集群。
  • IPVS 模式 性能更高,支持多種負載均衡算法,適合大規模、高并發場景。
  • 根據集群規模和性能需求選擇合適的模式,同時注意 IPVS 模式需要額外的配置和依賴支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/63860.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/63860.shtml
英文地址,請注明出處:http://en.pswp.cn/web/63860.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

每日十題八股-2024年12月19日

1.Bean注入和xml注入最終得到了相同的效果,它們在底層是怎樣做的? 2.Spring給我們提供了很多擴展點,這些有了解嗎? 3.MVC分層介紹一下? 4.了解SpringMVC的處理流程嗎? 5.Handlermapping 和 handleradapter有…

藍橋杯嵌入式備賽教程(1、led,2、lcd,3、key)

一、工程模版創建流程 第一步 創建新項目 第二步 選擇型號和管腳封裝 第三步 RCC使能 外部時鐘,高速外部時鐘 第四步晶振時鐘配置 由數據手冊7.1可知外部晶振頻率為24MHz 最后一項設置為80 按下回車他會自動配置時鐘 第五步,如果不勾選可能程序只會…

詳細解讀sedex驗廠

SEDEX驗廠,即供貨商商業道德信息交流認證(Supplier Ethical Data Exchange),是一種表明企業遵守商業道德的認證。以下是對SEDEX驗廠的詳細解讀: 一、SEDEX驗廠概述 SEDEX是一家總部位于英國倫敦的非營利組織&#xf…

2.4 設備管理

文章目錄 設備管理概述設備管理技術磁盤調度 設備管理概述 設備管理是操作系統中最繁雜、與硬件關系緊密的部分。 設備可以按照數據組織、資源分配、數據傳輸率分類。 數據組織:分為塊設備(ex. 磁盤)、字符設備(ex. 打印機)。資源分配&#…

網絡安全滲透有什么常見的漏洞嗎?

弱口令與密碼安全問題 THINKMO 01 暴力破解登錄(Weak Password Attack) 在某次滲透測試中,測試人員發現一個網站的后臺管理系統使用了非常簡單的密碼 admin123,而且用戶名也是常見的 admin。那么攻擊者就可以通過暴力破解工具&…

PSDK的編譯與ROS包封裝

本文檔講述在NIVIDIA開發板上使用大疆提供的Payload SDK獲取無人機實時GPS信息的方法,以及基于Payload SDK發布ROS GPS話題信息的方法。 文章目錄 0 實現目標1 Payload SDK1.1 PSDK 源碼的編譯1.2 PSDK 的使用 2 遙測數據的讀取2.1 示例代碼結構2.2 讀取機載GPS信息…

模型 課題分離

系列文章 分享 模型,了解更多👉 模型_思維模型目錄。明確自我與他人責任。 1 課題分離的應用 1.1課題分離在心理治療中的應用案例:李曉的故事 李曉,一位28歲的軟件工程師,在北京打拼。他面臨著工作、家庭和感情的多重…

1222面經

1,Kafka 如何保障順序消費? Kafka 保障順序消費主要通過以下幾個關鍵機制和配置來實現: 分區策略 Kafka 將主題劃分為多個分區,每個分區內的消息是天然有序的,其按照消息發送到分區的先后順序進行存儲和追加。生產者在發送消息…

sed命令中單引號的處理

sed中’‘之間的單引號&#xff08;即單引號之間的單引號字符&#xff09;&#xff0c;特殊處理需要’“”’ &#xff08;兩個單引號中兩個雙引號再最里面是目標一個單引號&#xff09; 比如&#xff1a; sed -i s#<a id""img_logo"" href"http…

語音增強的損失函數選擇

一、最優尺度不變信噪比&#xff08;OSISNR&#xff09;損失函數 參考&#xff1a;論文解讀 --Optimal scale-invariant signal-to-noise ratio and curriculum learning for monaural multi-spea ??最優尺度不變信噪比&#xff08;OSI-SNR&#xff09;是一種用于評估信號質量…

【置信區間】之Python實現

置信區間是統計學中的一個核心概念,用于估計總體參數(如均值、比例等)的取值范圍。以下是對置信區間的詳細解釋: 一、定義與基本概念 定義:置信區間是指由樣本統計量所構造的總體參數的估計區間。它給出了參數真實值有一定概率落在該區間內的范圍,反映了測量值的可信程度…

大恒相機開發(3)—大恒相機工業檢測的實際案例

大恒相機工業檢測的實際案例 工業檢測的實際案例圖像采集性能優化技巧工業環境下的穩定性 工業檢測的實際案例 以下是一些使用大恒相機進行工業檢測的實際案例&#xff1a; 多特征光學成像系統&#xff1a; 在這個案例中&#xff0c;使用大恒相機構建了一個全方位、多特征的圖…

Java基礎面試題20:Java語言sendRedirect()和forward()方法有什么區別?

Java基礎面試題&#xff1a;Java語言sendRedirect()和forward()方法有什么區別&#xff1f; 在 Java Web 開發中&#xff0c;sendRedirect() 和 forward() 是兩個非常常用的方法&#xff0c;但它們有一些核心區別。我們來用最簡單的方式給你解釋清楚。 一、sendRedirect() 和 …

go官方日志庫帶色彩格式化

go默認的 log 輸出的日志樣式比較難看&#xff0c;所以通過以下方式進行了美化和格式化&#xff0c;而且加入了 unicode 的ascii碼&#xff0c;進行色彩渲染。 package mainimport ("fmt""log""os""runtime""strings""…

Linux shell腳本用于常見圖片png、jpg、jpeg、webp、tiff格式批量轉PDF文件

Linux Debian12基于ImageMagick圖像處理工具編寫shell腳本用于常見圖片png、jpg、jpeg、webp、tiff格式批量轉PDF文件&#xff0c;”多個圖片分開生成多個PDF文件“或者“多個圖片合并生成一個PDF文件” 在Linux系統中&#xff0c;使用ImageMagick可以圖片格式轉換&#xff0c…

【C++語言】多態

一、多態的概念 多態的概念&#xff1a;通俗來說&#xff0c;就是多種形態&#xff0c;具體點就是去完成某種行為&#xff0c;當不同的對象去完成時會產生出不同的狀態。 我們可以舉一個例子&#xff1a; 比如買票這種行為&#xff0c;當普通人買票時&#xff0c;是全價買票&am…

Centos7配置webrtc-streamer環境

Centos7配置webrtc-streamer環境 安裝webrtc-streamer0.7版本 升級gdb 1、yum安裝2、查看gdb版本3.下載待升級的gdb版本4.QA 1、預編譯的時候報錯no acceptable C compiler found in $PATH2、make的時候報錯[all-bfd] Error3、make的時候報錯 升級GCC 1.源碼編譯升級gcc9.3.0…

Vue.js 響應接口

Vue.js 響應接口 引言 Vue.js,作為當前前端開發領域中的佼佼者,以其簡潔、高效和靈活的特點,贏得了廣大開發者的喜愛。其核心功能之一便是響應式系統,它使得數據與視圖之間的同步變得異常簡單。本文將深入探討Vue.js的響應接口,解析其工作原理,并展示如何在實際項目中有…

深入了解藍牙Profile類型與設備的對應關系

在現代技術中,藍牙作為一種無線通信技術,廣泛應用于各種設備之間的短距離通信。不同的設備在連接時使用不同的藍牙Profile(配置文件),每種Profile都為特定的設備功能提供支持,例如音頻流傳輸、語音通話、文件傳輸等。在本文中,我們將詳細介紹藍牙Profile的常見類型及其對…

LLMs之PDF:MinerU(將PDF文件轉換成Markdown和JSON格式)的簡介、安裝和使用方法、案例應用之詳細攻略

LLMs之PDF&#xff1a;MinerU(將PDF文件轉換成Markdown和JSON格式)的簡介、安裝和使用方法、案例應用之詳細攻略 目錄 MinerU的簡介 0、日志 1、MinerU 的主要特點 2、已知問題 MinerU 安裝和使用方法 1、MinerU的三種體驗方式 T1、在線演示 T2、快速CPU演示 T3、GPU …