日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

比較 kube-proxy 模式:iptables 還是 IPVS?

來源: 責編: 時間:2024-05-23 17:12:31 234觀看
導讀kube-proxy是任何 Kubernetes 部署中的關鍵組件。它的作用是將流向服務(通過集群 IP 和節(jié)點端口)的流量負載均衡到正確的后端pod。kube-proxy可以運行在三種模式之一,每種模式都使用不同的數(shù)據(jù)平面技術來實現(xiàn):userspace、

kube-proxy是任何 Kubernetes 部署中的關鍵組件。它的作用是將流向服務(通過集群 IP 和節(jié)點端口)的流量負載均衡到正確的后端pod。kube-proxy可以運行在三種模式之一,每種模式都使用不同的數(shù)據(jù)平面技術來實現(xiàn):userspace、iptables 或 IPVS。TIw28資訊網(wǎng)——每日最新資訊28at.com

userspace 模式非常舊且慢,絕對不推薦!但是,應該如何權衡選擇 iptables 還是 IPVS 模式呢?在本文中,我們將比較這兩種模式,在實際的微服務環(huán)境中衡量它們的性能,并解釋在何種情況下你可能會選擇其中一種。TIw28資訊網(wǎng)——每日最新資訊28at.com

首先,我們將簡要介紹這兩種模式的背景,然后深入測試和結果……TIw28資訊網(wǎng)——每日最新資訊28at.com

TIw28資訊網(wǎng)——每日最新資訊28at.com

背景:iptables 代理模式

iptables 是一個 Linux 內(nèi)核功能,旨在成為一個高效的防火墻,具有足夠的靈活性來處理各種常見的數(shù)據(jù)包操作和過濾需求。它允許將靈活的規(guī)則序列附加到內(nèi)核數(shù)據(jù)包處理管道中的各個鉤子上。在 iptables 模式下,kube-proxy將規(guī)則附加到 “NAT pre-routing” 鉤子上,以實現(xiàn)其 NAT 和負載均衡功能。這種方式可行,簡單,使用成熟的內(nèi)核功能,并且與其他使用 iptables 進行過濾的程序(例如 Calico)能夠很好地兼容。TIw28資訊網(wǎng)——每日最新資訊28at.com

然而,kube-proxy 編程 iptables 規(guī)則的方式意味著它名義上是一個 O(n) 風格的算法,其中 n 大致與集群規(guī)模成正比(更準確地說,是與服務的數(shù)量和每個服務背后的后端 pod 數(shù)量成正比)。TIw28資訊網(wǎng)——每日最新資訊28at.com

背景:IPVS 代理模式

IPVS 是一個專門為負載均衡設計的 Linux 內(nèi)核功能。在 IPVS 模式下,kube-proxy通過編程 IPVS 負載均衡器來代替使用 iptables。它同樣使用成熟的內(nèi)核功能,且 IPVS 專為負載均衡大量服務而設計;它擁有優(yōu)化的 API 和查找例程,而不是一系列順序規(guī)則。TIw28資訊網(wǎng)——每日最新資訊28at.com

結果是,在 IPVS 模式下,kube-proxy 的連接處理具有名義上的 O(1) 計算復雜度。換句話說,在大多數(shù)情況下,它的連接處理性能將保持恒定,而不受集群規(guī)模的影響。TIw28資訊網(wǎng)——每日最新資訊28at.com

此外,作為一個專用的負載均衡器,IPVS 擁有多種不同的調(diào)度算法,如輪詢、最短期望延遲、最少連接數(shù)和各種哈希方法。相比之下,iptables 中的 kube-proxy 使用的是隨機的等成本選擇算法。TIw28資訊網(wǎng)——每日最新資訊28at.com

IPVS 的一個潛在缺點是,通過 IPVS 處理的數(shù)據(jù)包在 iptables 過濾鉤子中的路徑與正常情況下的數(shù)據(jù)包非常不同。如果計劃將 IPVS 與其他使用 iptables 的程序一起使用,則需要研究它們是否能夠預期地協(xié)同工作。(別擔心,Calico 早在很久以前就已經(jīng)與 IPVS kube-proxy 兼容了!)TIw28資訊網(wǎng)——每日最新資訊28at.com

性能比較

好的,從名義上來說,kube-proxy在 iptables 模式下的連接處理是 O(n) 復雜度,而在 IPVS 模式下是 O(1) 復雜度。但在實際微服務環(huán)境中,這意味著什么呢?TIw28資訊網(wǎng)——每日最新資訊28at.com

在大多數(shù)情況下,涉及應用程序和微服務時,kube-proxy性能有兩個關鍵屬性可能是您關心的:TIw28資訊網(wǎng)——每日最新資訊28at.com

  • 對往返響應時間的影響:當一個微服務向另一個微服務發(fā)出 API 調(diào)用時,平均而言第一個微服務發(fā)送請求并從第二個微服務接收響應需要多長時間?
  • 對總 CPU 使用率的影響:在運行微服務時,包括用戶空間和內(nèi)核/系統(tǒng)使用在內(nèi)的主機總 CPU 使用率是多少?這包括了支持微服務所需的所有進程,包括 kube-proxy。

為了說明這一點,我們在一個專用節(jié)點上運行了一個clinet微服務pod,每秒生成 1000 個請求,發(fā)送到由 10 個service微服務pod支持的 Kubernetes 服務。然后,我們在iptables和IPVS模式下,在客戶端節(jié)點上測量了性能,使用了各種數(shù)量的 Kubernetes 服務,每個服務有10個pod支持,最多達到 10,000 個服務(即 100,000 個服務后端)。對于微服務,我們使用golang編寫的簡單測試工具作為我們的客戶端微服務,并使用標準NGINX作為服務器微服務的后端pods。TIw28資訊網(wǎng)——每日最新資訊28at.com

往返響應時間

在考慮往返響應時間時,理解連接和請求之間的區(qū)別非常重要。通常,大多數(shù)微服務將使用持久連接或“keepalive”連接,這意味著每個連接會在多個請求之間重復使用,而不是每個請求都需要新建一個連接。這一點很重要,因為大多數(shù)新連接都需要在網(wǎng)絡上進行三次握手(這需要時間),并且在 Linux 網(wǎng)絡棧內(nèi)進行更多處理(這也需要一點時間和 CPU 資源)。TIw28資訊網(wǎng)——每日最新資訊28at.com

為了說明這些差異,我們在有和沒有 keepalive 連接的情況下進行了測試。對于 keepalive 連接,我們使用了 NGINX 的默認配置,該配置會將每個連接保持活躍狀態(tài)以供最多 100 個請求重復使用。請參見下圖,注意響應時間越低越好。TIw28資訊網(wǎng)——每日最新資訊28at.com

TIw28資訊網(wǎng)——每日最新資訊28at.com

圖表顯示了兩個關鍵點:TIw28資訊網(wǎng)——每日最新資訊28at.com

  • 在超過 1,000 個服務(10,000 個后端 pod)之前,iptables 和 IPVS 之間的平均往返響應時間差異微不足道。
  • 平均往返響應時間的差異僅在不使用 keepalive 連接時才明顯。也就是說,當每個請求都使用新連接時,差異才會顯現(xiàn)。

對于 iptables 和 IPVS 模式,kube-proxy 的響應時間開銷與建立連接有關,而不是與連接上的數(shù)據(jù)包或請求數(shù)量有關。這是因為 Linux 使用連接跟蹤(conntrack),能夠非常高效地將數(shù)據(jù)包匹配到現(xiàn)有連接。如果數(shù)據(jù)包在 conntrack 中被匹配到,就不需要通過 kube-proxy 的 iptables 或 IPVS 規(guī)則來決定如何處理它。TIw28資訊網(wǎng)——每日最新資訊28at.com

值得注意的是,在這個例子中,“服務器”微服務使用的是 NGINX pod 提供一個小的靜態(tài)響應體。許多微服務需要做的工作遠不止這些,這將導致相應更高的響應時間,這意味著 kube-proxy 處理的時間差在這種圖表中將占據(jù)更小的百分比。TIw28資訊網(wǎng)——每日最新資訊28at.com

最后有一個奇怪現(xiàn)象需要解釋:為什么在 10,000 個服務時,非 keepalive 連接的響應時間在 IPVS 模式下變得更慢,即使 IPVS 中新連接的處理復雜度是 O(1)?要真正深入了解這一點,我們需要進行更多的挖掘,但其中一個因素是整個系統(tǒng)由于主機上增加的 CPU 使用而變得更慢。這也引出了下一個話題。TIw28資訊網(wǎng)——每日最新資訊28at.com

總CPU使用率

為了說明總 CPU 使用率,下面的圖表集中在不使用持久/keepalive 連接的最壞情況下,此時 kube-proxy 連接處理的開銷影響最大。TIw28資訊網(wǎng)——每日最新資訊28at.com

TIw28資訊網(wǎng)——每日最新資訊28at.com

圖表顯示了兩個關鍵點:TIw28資訊網(wǎng)——每日最新資訊28at.com

  • 在超過 1,000 個服務(10,000 個后端 pod)之前,iptables 和 IPVS 之間的 CPU 使用率差異相對不顯著。
  • 在 10,000 個服務(100,000 個后端 pod)時,iptables 的 CPU 增加約為一個內(nèi)核的 35%,而 IPVS 增加約為一個內(nèi)核的 8%。

有兩個主要因素影響這種 CPU 使用模式。第一個因素是,默認情況下,kube-proxy 每 30 秒重新編程一次內(nèi)核中的所有服務。這解釋了為什么即使 IPVS 的新連接處理名義上是 O(1) 復雜度,IPVS 模式下的 CPU 也會略有增加。此外,較早版本內(nèi)核中重新編程 iptables 的 API 速度比現(xiàn)在慢得多。因此,如果您在 iptables 模式下使用舊版內(nèi)核,CPU 增長將比圖表中顯示的更高。TIw28資訊網(wǎng)——每日最新資訊28at.com

第二個因素是 kube-proxy 使用 iptables 或 IPVS 處理新連接所需的時間。對于 iptables,這在名義上是 O(n) 復雜度。在大量服務的情況下,這對 CPU 使用有顯著影響。例如,在 10,000 個服務(100,000 個后端 pod)時,iptables 每個新連接執(zhí)行約 20,000 條規(guī)則。不過,請記住,在這個圖表中,我們展示的是每個請求都使用新連接的最壞情況。如果我們使用 NGINX 默認的每個連接 100 次 keepalive 請求,那么 kube-proxy 的 iptables 規(guī)則執(zhí)行頻率將減少 100 倍,從而大大降低使用 iptables 而非 IPVS 的 CPU 影響,接近一個內(nèi)核的 2%。TIw28資訊網(wǎng)——每日最新資訊28at.com

值得注意的是,在這個例子中,“客戶端”微服務簡單地丟棄了從“服務器”微服務接收到的每個響應。一個實際的微服務需要做的工作遠不止這些,這將增加圖表中的基礎 CPU 使用率,但不會改變與服務數(shù)量相關的 CPU 增加的絕對值。TIw28資訊網(wǎng)——每日最新資訊28at.com

結論

在顯著超過 1,000 個服務的規(guī)模下,kube-proxy 的 IPVS 模式可以提供一些不錯的性能提升。具體效果可能有所不同,但一般來說,對于使用持久“keepalive”連接風格的微服務,且運行在現(xiàn)代內(nèi)核上的情況下,這些性能提升可能相對有限。對于不使用持久連接的微服務,或者在較舊內(nèi)核上運行時,切換到 IPVS 模式可能會帶來顯著的收益。TIw28資訊網(wǎng)——每日最新資訊28at.com

除了性能方面的考慮外,如果您需要比 kube-proxy 的 iptables 模式的隨機負載均衡更復雜的負載均衡調(diào)度算法,也應該考慮使用 IPVS 模式。TIw28資訊網(wǎng)——每日最新資訊28at.com

如果您不確定 IPVS 是否會對您有利,那么堅持使用 kube-proxy 的 iptables 模式。它已經(jīng)經(jīng)過大量的生產(chǎn)環(huán)境驗證,盡管并不完美,但可以說它作為默認選擇是有原因的。TIw28資訊網(wǎng)——每日最新資訊28at.com

比較 kube-proxy 和 Calico 對 iptables 的使用

在本文中,我們看到 kube-proxy 使用 iptables 在非常大規(guī)模時會導致性能影響。我有時會被問到,為什么 Calico 沒有遇到同樣的挑戰(zhàn)。答案是 Calico 對 iptables 的使用與 kube-proxy 有顯著不同。kube-proxy 使用了一條非常長的規(guī)則鏈,其長度大致與集群規(guī)模成正比,而 Calico 使用的是非常短且優(yōu)化的規(guī)則鏈,并廣泛使用 ipsets,其查找時間復雜度為 O(1),不受其大小影響。為了更好地理解這一點,下面的圖表顯示了在集群中的節(jié)點平均托管 30 個 pod,且集群中的每個 pod 平均適用 3 個網(wǎng)絡策略的情況下,每個連接由 kube-proxy 和 Calico 執(zhí)行的 iptables 規(guī)則的平均數(shù)量。TIw28資訊網(wǎng)——每日最新資訊28at.com

TIw28資訊網(wǎng)——每日最新資訊28at.com

即使在完全擴展的集群中運行,擁有 10,000 個服務和 100,000 個后端 pod 時,Calico 每個連接執(zhí)行的 iptables 規(guī)則數(shù)量大致與 kube-proxy 在擁有 20 個服務和 200 個后端 pod 時執(zhí)行的規(guī)則數(shù)量相同。換句話說,Calico 對 iptables 的使用是可擴展的!TIw28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-90345-0.html比較 kube-proxy 模式:iptables 還是 IPVS?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python 異常處理的十個實用策略

下一篇: Python 辦公神器:教你使用 Python 自動化處理壓縮文件

標簽:
  • 熱門焦點
  • 7月安卓手機性能榜:紅魔8S Pro再奪榜首

    7月份的手機市場風平浪靜,除了紅魔和努比亞帶來了兩款搭載驍龍8Gen2領先版處理器的新機之外,別的也想不到有什么新品了,這也正常,通常6月7月都是手機廠商修整的時間,進入8月份之
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數(shù)量是否小于或等于一個數(shù)字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個人開發(fā)仿造稿定設計的圖片編輯器到現(xiàn)在,不知不覺已過去一年時間了,期間我經(jīng)歷了裁員失業(yè)、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日
  • 三萬字盤點 Spring 九大核心基礎功能

    大家好,我是三友~~今天來跟大家聊一聊Spring的9大核心基礎功能。話不多說,先上目錄:圖片友情提示,本文過長,建議收藏,嘿嘿嘿!一、資源管理資源管理是Spring的一個核心的基礎功能,不
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發(fā)生
  • 三分鐘白話RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(消息堆積)、消費 三大塊領域。那接下來,我們白話一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過程。注意,如果白話中不小心提到相關代
  • 共享單車的故事講到哪了?

    來源丨海克財經(jīng)與共享充電寶相差不多,共享單車已很久沒有被國內(nèi)熱點新聞關照到了。除了一再漲價和用戶直呼用不起了。近日多家媒體再發(fā)報道稱,成都、天津、鄭州等地多個共享單
  • OPPO、vivo、小米等國內(nèi)廠商Q2在印度智能手機市場份額依舊高達55%

    7月20日消息,據(jù)外媒報道,研究機構的報告顯示,在全球智能手機出貨量同比仍在下滑的大背景下,印度這一有潛力的市場也未能幸免,出貨量同比也有下滑,多家廠
  • iQOO 11S新品發(fā)布會

    iQOO將在7月4日19:00舉行新品發(fā)布會,推出杭州亞運會電競賽事官方用機iQOO 11S。
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲经典在线| 国产日韩精品一区二区浪潮av| 久久久噜噜噜久久狠狠50岁| 久久嫩草精品久久久精品一| 美腿丝袜亚洲色图| 欧美片在线播放| 欧美日韩综合在线| 国产欧美精品在线观看| 国外成人免费视频| 亚洲日本免费电影| 亚洲字幕一区二区| 久久精品国产一区二区三| 免费欧美网站| 欧美日韩裸体免费视频| 国产视频在线观看一区二区三区| 樱桃成人精品视频在线播放| 亚洲乱码久久| 欧美一区二区视频在线| 欧美sm极限捆绑bd| 国产精品v欧美精品∨日韩| 国产亚洲精品自拍| 亚洲精品视频免费| 欧美一区二区精品久久911| 久久综合久久久久88| 欧美日韩一区二区三区四区五区| 国产日韩一级二级三级| 91久久中文| 性色av一区二区怡红| 欧美成人蜜桃| 国产美女一区| 日韩视频国产视频| 久久久高清一区二区三区| 欧美久久久久久久| 国产亚洲综合性久久久影院| 日韩午夜在线观看视频| 久久久久久夜| 国产精品久久久久久久久久久久 | 国产精品久久久免费| 一区二区三区中文在线观看| 亚洲调教视频在线观看| 久久亚洲欧美国产精品乐播| 国产精品家教| 最新国产成人在线观看| 欧美一区影院| 欧美视频一区二区三区在线观看| 在线观看不卡| 欧美一区二区三区视频免费播放| 欧美人与禽性xxxxx杂性| 国内成人精品一区| 亚洲欧美国产高清va在线播| 欧美激情片在线观看| 韩国一区二区三区美女美女秀| 一区二区三区国产精华| 免费在线国产精品| 国产在线不卡视频| 亚洲男女毛片无遮挡| 欧美精品18+| 亚洲高清资源| 久久久久久久久久久成人| 国产精品卡一卡二卡三| 一区二区高清在线| 欧美国产日产韩国视频| 精品999在线播放| 欧美影院精品一区| 国产精品日韩精品| 亚洲性视频网站| 欧美日韩色婷婷| 亚洲精品国产拍免费91在线| 裸体歌舞表演一区二区| 国产亚洲一区二区三区| 亚洲综合视频1区| 欧美三级电影一区| 99国产精品久久久久久久久久| 母乳一区在线观看| 在线免费观看日本一区| 久久久久久久精| 国产综合婷婷| 久久久久国产一区二区三区四区| 国产日韩精品一区二区浪潮av| 亚洲免费一级电影| 国产精品捆绑调教| 亚洲欧美日韩一区二区在线| 国产精品久久久久9999| 亚洲性图久久| 国产精品人人爽人人做我的可爱| 亚洲欧美卡通另类91av| 国产精品久久久久婷婷| 亚洲欧美韩国| 国产欧美日韩一区二区三区| 欧美一区二区三区的| 国产视频亚洲| 欧美制服丝袜第一页| 国产综合亚洲精品一区二| 久久精品亚洲一区二区三区浴池| 国产一区二区三区四区老人| 久久久成人网| 亚洲高清视频在线| 欧美精品久久久久久久免费观看| 日韩视频永久免费| 欧美三级日本三级少妇99| 亚洲午夜国产成人av电影男同| 国产精品久久久久久久久婷婷| 亚洲一区二区三区四区在线观看 | 亚洲欧美国产va在线影院| 国产日韩欧美精品在线| 久久精品国内一区二区三区| 永久免费视频成人| 欧美国产免费| 亚洲天堂偷拍| 国产一区二区三区高清| 老司机精品视频一区二区三区| 亚洲国产精品成人| 欧美日韩二区三区| 亚洲欧美日韩国产一区二区三区| 国产日韩欧美日韩大片| 麻豆av一区二区三区| 亚洲乱码一区二区| 国产精品美女久久久久久久| 欧美在线资源| 最新亚洲一区| 国产精品久线观看视频| 久久精品72免费观看| 亚洲黄色精品| 国产精品每日更新在线播放网址| 久久九九精品| 亚洲精品综合在线| 国产免费观看久久| 欧美jizzhd精品欧美喷水| 99香蕉国产精品偷在线观看| 国产欧美韩国高清| 欧美成人精品| 亚洲欧美日韩精品| 亚洲高清影视| 国产精品美女诱惑| 美女精品一区| 亚洲女性裸体视频| 亚洲激情成人| 国产农村妇女毛片精品久久莱园子| 美女脱光内衣内裤视频久久影院 | 欧美视频一区在线观看| 久久不射网站| 亚洲精选一区| 国产视频欧美视频| 欧美精品国产精品日韩精品| 性欧美大战久久久久久久免费观看| 在线观看欧美视频| 国产精品乱子久久久久| 免费日韩视频| 欧美一区91| 99视频+国产日韩欧美| 狠狠色狠狠色综合人人| 欧美视频一区在线| 欧美成ee人免费视频| 欧美一级网站| 9色精品在线| 在线观看91精品国产麻豆| 国产精品系列在线播放| 欧美成人69| 久久精品一二三| 亚洲免费视频网站| 91久久精品国产91性色| 国产婷婷色一区二区三区四区 | 精品av久久久久电影| 国产精品看片资源| 欧美黄色免费网站| 久久露脸国产精品| 亚洲欧美激情视频| 亚洲美女在线国产| 在线观看福利一区| 国产日本欧洲亚洲| 国产精品成人在线| 欧美精品激情| 欧美91精品| 久久噜噜噜精品国产亚洲综合| 亚洲欧美日韩人成在线播放| 日韩视频精品| 亚洲国产专区| 在线成人欧美| 国产原创一区二区| 国产免费成人av| 国产精品视频不卡| 欧美视频免费在线观看| 欧美精品aa| 欧美成人黑人xx视频免费观看| 久久久亚洲国产美女国产盗摄| 性欧美18~19sex高清播放| 中文久久乱码一区二区| 亚洲精品日日夜夜| 亚洲人在线视频| 在线播放一区| 狠狠色伊人亚洲综合网站色| 国产亚洲一区二区精品| 国产精品免费aⅴ片在线观看| 欧美日韩在线另类| 欧美日韩国产高清| 欧美紧缚bdsm在线视频| 欧美激情免费观看| 欧美不卡视频| 欧美成人69| 欧美国产精品v| 欧美精品一二三| 欧美激情免费在线| 欧美激情aⅴ一区二区三区| 免费观看一区|