導讀:隨著雲原生進入越來越多的領域,使用者對容器網路的需求也不斷增長,對容器網路的功能和效能的要求都在不斷的提升。基於軟體的容器網路由於無法在提供豐富的功能同時保證優秀的效能,不得不在功能和效能之間進行取捨。有沒有一種方案能夠在提供豐富的功能情況下依然能提供出色的效能呢?
本文將介紹 Kube-OVN +智慧網路卡的結合方案,通過軟體與硬體的結合,在保持容器網路豐富功能基礎上,吞吐量up300%,讓使用者獲得優於宿主機的效能體驗。正所謂,“功能”和“效能”兩手都要抓,兩手都要硬!
雲原生網路使用場景越來越複雜
隨著雲原生不斷在各個場景落地,需求的多樣性和複雜度都在不斷上升,新的需求也在不斷的湧現。基於廣大社群使用者的真實使用案例下,我們在各場景、各行業中總結出來以下需求:
1、傳統應用上雲有對固定 IP 和IP管理方面的需求
2、資料中心基礎設施管理需要有異構裝置管理、網路虛擬化、多租戶 VPC 的需求
3、跨雲多叢集有著互聯互通的需求
4、邊緣場景有著高效能輕量化的需求
5、金融領域有著流量映象、審計、安全加密的需求
6、運營商有著多網融合、流量編排的需求
……
等等
網路效能瓶頸成企業大規模雲原生落地阻礙
Overlay 型別網路由於其對底層依賴少,功能靈活得到了越來越多的使用,但是額外的功能通常會帶來額外的效能開銷,導致 Overlay 網路的整體資源消耗會有明顯的上升。
經過我們的 Profile 各個功能會帶來如下開銷:
1、安全策略,NAT 規則會使用到 netfilter, conntrack 功能,單個資料包會帶來額外 20% CPU 開銷
2、流量映象會帶來 5% CPU 開銷
3、Overlay 封裝解封裝會帶來 5% CPU 開銷
4、由於 Overlay 的 UDP 封裝導致網路卡 TCP 相關 offload 失效,TCP 大包吞吐量可能會出現數量級的下降
5、veth 額外的網路複製帶來 3% CPU 開銷
6、網路加密會帶來延遲和 CPU 使用率的大幅提升
我們簡單通過 qperf 來測試在不同包大小情況下的 UDP 傳輸吞吐量,可見隨著包大小的增加,容器網路吞吐量相比宿主機網路出現顯著下降,在資料包為 16KB 的情況下,容器網路頻寬僅為宿主機網路的 40%。
注:該效能測試資料在 Kube-OVN 預設模式下未經優化測試而得
在大規模的部署中,這些額外的效能開銷通常會帶來資料中心寶貴 CPU 資源的浪費。
在閘道器這種南北流量集中的關鍵節點,由於純軟體方案效能的瓶頸,會導致關鍵鏈路延遲大幅上升,QPS 下降,這種業務感知明顯的效能問題。因此,也會讓整個業務團隊對網路模組信心不足,導致企業大規模雲原生化的一個阻礙。
高效能網路方案功能欠缺無法滿足需求
那麼是否選擇高效能網路方案就可以解決問題了呢?
Macvlan/SR-IOV 等網路方案,通過繞過主機網路核心棧直通容器等手段提供了高效能的容器網路,但是這類方案通常存在著靈活性和功能性的欠缺:
1、這類技術通常使用了 Underlay 的方案,容器網路和底層網路直接打通,需要底層網路進行配合,通常會涉及到跨部門的協作管理,故障責任區分變得困難2、由於該類方案繞過了主機網路棧,只提供了基本的網路連通能力,高階功能的開發變得困難或不可行
3、網路的靈活度下降,無法根據需求快速的變化
那麼是否存在著一種能同時滿足功能豐富靈活而又高效能的雲原生網路方案呢?
“功能、效能”兩全其美的選擇:Kube-OVN+智慧網路卡
面對不斷變化的使用者需求,最初為微服務應用平臺設計的雲原生網路外掛Kube-OVN,需要不斷變化調整,擴充自己的能力和實力。
一方面我們希望 Overlay 網路帶來的靈活性和豐富的功能,另一方面我們又不希望網路成為效能瓶頸,消耗寶貴的 CPU 資源。具備 OVS 解除安裝能力的智慧網路卡和提供豐富網路功能的 Kube-OVN 就成為了一個能很好平衡功能和效能的解決方案。
Kube-OVN 通過將 OVN 和 Kubernetes 結合,將傳統 SDN 的網路能力引入 Kubernetes 中,為 Kubernetes 提供靈活功能豐富的容器網路,極大地強化了容器網路的能力。
智慧網路卡提供的 OVS Offload 能力能夠將 Overlay 網路中複雜的 CPU 計算密集型任務解除安裝到網路卡上進行,極大降低網路對 CPU 的消耗,此外由於網路的處理離資料包更近,延遲和吞吐量都能得到大幅改善。
在智慧網路卡的選擇上,芯啟源Agilio系列網路卡,NVIDIA Mellanox CX5 CX6 Bluefield 系列網路卡等主流網路卡,均可適配。
相關操作手冊:
Kube-OVN+芯啟源Agilio系列網路卡方案
Kube-OVN+NVIDIA Mellanox CX5 CX6 Bluefield 系列網路卡
經過優化後,我們再次通過 qperf 來測試在不同包大小情況下的 UDP 傳輸吞吐量,可見隨著包大小的增加,容器網路吞吐量相對宿主機網路並沒有出現下降。由於使用 Offload 後,容器網路的路徑相比宿主機更短,甚至出現了容器網路效能由於宿主機網路的情況。在 16KB 包大小的情況下,容器網路吞吐量是宿主機網路的 1.2 倍,是原始未經優化容器網路吞吐量的 3 倍。
總結
通過Kube-OVN 和智慧網路卡的結合,我們可以在提供豐富容器網路的基礎上保持了良好的效能,在硬體的加持下,容器網路的效能在一些場景下表現還會優於宿主機網路。
優化後的雲原生網路解決方案,可以很好的適應,企業資料中心基礎設施管理;跨雲多叢集有著互聯互通;邊緣高效能輕量化等場景,以及在金融行業流量映象、審計、安全加密;運營商多網融合、流量編排等複雜需求。這套方案已無縫融入靈雀云云原生生態體系中,以及靈雀雲ACP產品中,為金融、製造、運營商等中國IT支出最大的頭部企業,提供提供高標準、高效能的雲原生網路產品和服務。
與此同時,這套雲原生網路方案,也為未來的雲原生網路方案設計思路提供了新的啟示。“軟硬體結合”,我們可以在同功能和效能兩個方向,同時達到更高的水平。
關於【雲原生小課堂】
【雲原生小課堂】是由靈雀雲、Kube-OVN社群、雲原生技術社群聯合開設的公益性技術分享類專題,將以豐富詳實的精品內容和靈活多樣的呈現形式,持續為您分享雲原生前沿技術,帶您瞭解更多雲原生實踐乾貨。
在數字化轉型的背景下,雲原生已經成為企業創新發展的核心驅動力。作為國內最早將 Kubernetes 產品化的廠商之一,靈雀雲從出生便攜帶“雲原生基因”,致力於通過革命性的技術幫助企業完成數字化轉型,我們期待著雲原生給這個世界帶來更多改變。
關注我們,學習更多雲原生知識,一起讓改變發生。