近日,華為云·云容器引擎CCE國內首發支持了基于Kubernetes的容器網絡高吞吐IPVS模式。該特性解決了大規模場景下服務間通信性能劣化的問題,比起Kubernetes中原生的iptables模式有著更好的性能表現。IPVS早已被廣泛應用于互聯網視頻領域,而本次華為云CCE在國內率先將IPVS技術應用在Kubernetes容器網絡部署中,使容器網絡方面的性能得到了革命性的提升,滿足中大型項目的的網絡性能需求。
每秒十萬次處理的嚇人技術
IPVS全稱IP Virtual Server,是LVS項目的一部分,是一款運行在Linuxkernel當中的四層負載均衡器,其性能優異,可以輕松處理每秒10萬次以上的轉發請求,在中大型互聯網項目,如視頻、直播、大型游戲等被廣泛使用。
· 傳輸層Load Balancer,LVS負載均衡器的實現 |
· 同樣基于Netfilter,但使用的是hash表 |
· 支持TCP, UDP,SCTP協議,IPV4,IPV6 |
· 支持多種負載均衡策略rr, wrr, lc, wlc, sh, dh, lblc… |
· 支持會話保持persistent connection調度算法 |
CCE 率先支持IPVS使能互聯網大場景
華為云CCE基于業界Kubernetes和Docker生態,深度整合華為云的計算、存儲、網絡等IaaS資源,為用戶提供高效自動化的企業級云容器全棧解決方案。一直以來,在Kubernetes 中原生的 Service 負載均衡是基于Iptables 實現,但iptables有一個致命的問題就是當部署的服務數達到一定規模(例如上萬)時,會導致網絡性能瓶頸。究其原因主要是在轉發規則更新時,全量式更新消耗了非常多的時間。據測算,當集群中有2萬個服務時,增加一條規則需要耗時5h。此外,iptables還會出現按規則刷新時服務斷開等問題,這些都限制了K8S集群在大規模場景下的應用。
華為作為CNCF社區的初創成員和白金會員,K8S的最早采用者之一,積極回饋Kubernetes社區,綜合貢獻度位居全球前四,國內第一。華為基于多年來在網絡技術上積累的實踐經驗,將IPVS引入K8S內部代替了iptables,解決了規則匹配和更新時耗時的問題,同時也降低了規則維護時的資源開銷,大大優化了服務間的轉發性能。在經歷電信級大規模場景實踐考驗后,現正式將K8S IPVS技術應用在CCE上,幫助用戶應對大規模場景的負載均衡處理。
IPVS對比iptables性能卓越高下立現
將IPVS接入Kubernetes聽上去很酷,但是在具體效果體現上又如何呢,我們從在影響大規模場景部署轉發的更新時延、以及帶寬影響兩個方面用iptables和IPVS兩種轉發模式進行兩輪詳細的測評PK。
Round1轉發規則更新時的時延PK:從分鐘級到微秒級
Service數量和規則更新時延
上圖可見,當集群中的Service達到2萬規模時,iptable的規則更新的時延從50us暴增到5小時,而IPVS的規則更新時延僅僅上升至70us,體驗上沒有任何變化。
Round2網絡帶寬時延穩定表現性能無傷
Service數量和網絡帶寬
上圖可見,當集群中Service增加時,iptables模式下第一個創建的服務和最后一個創建的服務的網絡帶寬有著巨大的差別(因為最后一個服務規則更新的時延很長),而IPVS模式服務的帶寬并無多少差別。
在云容器引擎CCE的IPVS模式下創建集群,不但可以一鍵式完成部署,還可以獲得相比iptables更優秀的服務間通信性能。目前,K8S IPVS已支持ClusterIP,NodePort,External IP,Load Balancer等多種類型Service,兼容iptables模式幾乎全部的現有能力,針對用戶自身場景同時支持兩種模式的完美運行。IPVS模式的引入,消除了K8S在大規模場景下的網絡瓶頸,解決了大型應用在K8S上運行的后顧之憂,為用戶提供體驗更加極致的云上應用服務。
注:Kubernetes是Linux Foundation旗下基金會CNCF(Cloud Native Computing Foundation)管理的開源容器編排項目,目前已成為容器編排市場的主導者;而華為云CCE容器引擎團隊是全球領先的Kubernetes容器產品研發團隊,無論是在社區貢獻、生態構建、產品自研競爭力構建上都遙遙領先:
中國唯一獲得CNCF技術監督委員會(ToC)委員席位(全球僅9席)
中國唯一獲得Kubernetes社區指導委員會委員席位(全球僅13席)
中國唯一CNCF初創成員和白金會員
中國第一Kubernetes&Docker社區綜合貢獻度,8名maintainer
全球首批獲得KSCPs(Kubernetes認證服務提供商)資質廠商
全球首批通過“Kubernetes一致性認證”的云服務商