摘要:模式選擇模式選擇模式選擇是中的關鍵組件其主要功能是在和其后端之間進行負載均衡。模式下,使用負載均衡代替了。
kube-proxy是kubernetes中的關鍵組件,其主要功能是在Service和其后端Pod之間(Endpoint)進行負載均衡。kube-proxy 有三種運行模式,每種都有不同的實現技術:userspace、iptables或者IPVS。
userspace模式由于性能問題已經不推薦使用。這里主要介紹iptables和IPVS兩種模式的比較及選擇。
如何選擇對于集群規(guī)模較大,特別是Service數量可能超過1000的,推薦選擇IPVS。(詳見后續(xù)測試數據)
對于集群規(guī)模中等,Service數量不多的,推薦選擇iptables。
如果客戶端會出現大量并發(fā)短鏈接,目前建議選擇iptables,原因見下方備注。
備注:在使用IPVS模式的kubernetes集群中進行滾動更新,期間如果有一個客戶端在短時間內(兩分鐘)內發(fā)送大量短鏈接,客戶端端口會被復用,導致node收到的來自于該客戶端的請求報文網絡五元組相同,觸發(fā)IPVS復用Connection,有可能導致報文被轉發(fā)到了一個已經銷毀的Pod上,導致業(yè)務異常。
官方issue:https://github.com/kubernetes/kubernetes/issues/81775
如何切換iptables模式iptables是一個Linux內核功能,是一個高效的防火墻,并提供了數據包處理和過濾方面的能力。它可以在核心數據包處理管線上用Hook掛接一系列的規(guī)則。iptables模式中kube-proxy在NAT pre-routing Hook中實現它的NAT和負載均衡功能。這種方法簡單有效,依賴于成熟的內核功能,并且能夠和其它跟 iptables 協(xié)作的應用融洽相處。
IPVS模式IPVS是一個用于負載均衡的Linux內核功能。IPVS模式下,kube-proxy使用IPVS負載均衡代替了iptables。IPVS的設計思路就是用來為大量服務進行負載均衡的,它有一套優(yōu)化過的API,使用優(yōu)化的查找算法,而不是從列表中查找規(guī)則,在大規(guī)模場景下相對IPVS性能更好。
模式對比無論是iptables模式還是IPVS模式,轉發(fā)性能都與Service及對應的Endpoint數量有關,原因是Node上iptables或IPVS轉發(fā)規(guī)則的數量與svc和ep的數目成正比。
IPVS和iptables轉發(fā)性能主要差異體現在TCP三次握手連接建立的過程,因此在大量短連接請求的場景下,兩種模式的性能差異尤為突出。
在Service和Endpoint的數量較少的情況下(Service數十到數百,Endpoint數百到數千),iptables模式轉發(fā)性能要略優(yōu)于IPVS。
隨著Service和Endpoint的數量逐漸提升,iptables模式轉發(fā)性能明顯下降,IPVS模式轉發(fā)性能則相對穩(wěn)定。
Service數量1000左右,Endpoint數量到20000左右時,iptables模式轉發(fā)性能開始低于IPVS,隨著Service和Endpoint的數量繼續(xù)增大(Service數千,Endpoint數萬),IPVS模式性能略微下降,iptables模式性能則大幅下降。
測試用例我們使用了2臺Node作為測試節(jié)點,一臺節(jié)點KubeProxy使用iptables模式,記為N1;另一臺KubeProxy使用IPVS模式,記為N2。
在N1和N2上準備好壓測客戶端ab,并發(fā)連接數1000,一共需要完成10000次短連接請求。
在N1和N2上分別但不同時執(zhí)行測試命令,觀察ab返回的結果:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 1 38 8.4 38 59
Processing: 10 41 9.7 40 67
Waiting: 1 28 9.0 28 56
Total: 51 79 7.5 78 101
不斷變化Service數量,100,500,1000,2000,3000,4000,觀察結果采集數據。
以下為UK8S團隊針對IPVS和iptables進行的性能測試數據。
可以看出,在Service數量為100和500時,iptables轉發(fā)性能要優(yōu)于IPVS;Service數量達到1000時,兩者大體持平;Service數量繼續(xù)增大,IPVS的性能優(yōu)勢則越發(fā)明顯。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127082.html
摘要:已如下集群為例,集群模式默認是。我們在此修改為模式。切換集群節(jié)點的模式我們采用新增新節(jié)點,新節(jié)點后刪除一個老節(jié)點的循環(huán)操作進行集群全部節(jié)點的模式切換。節(jié)點不在調度范圍內,不用進行切換。kube-proxy模式切換在UK8S集群創(chuàng)建時我們會對集群創(chuàng)建生成默認的kube-proxy模式,在集群中新增的Node節(jié)點都會依賴這個集群默認kube-proxy模式進行新增,您可以參考以下操作進行集群ku...
摘要:模式選擇是中的關鍵組件其主要功能是在和其后端之間進行負載均衡。詳見后續(xù)測試數據對于集群規(guī)模中等,數量不多的,推薦選擇。模式下,使用負載均衡代替了。漏洞修復記錄HTTP/2漏洞升級說明Runc容器逃逸漏洞修復說明cloudprovider更新20.10.1集群節(jié)點配置推薦1、Master配置推薦Master規(guī)格跟集群規(guī)模有關,集群規(guī)模越大,所需要的Master規(guī)格也越高,不同集群規(guī)模的,Mas...
摘要:完全兼容原生的,以私有網絡為基礎,并整合了等云產品。綜合資源有效利用率錯誤容忍度兩個因素,在不考慮業(yè)務混合部署業(yè)務總體規(guī)模大小的情況下,我們建議生產環(huán)境的節(jié)點應該介于核至核之間。模式是一個用于負載均衡的內核功能。產品概念UCloud Container Service for Kubernetes (UK8S)是一項基于Kubernetes的容器管理服務,你可以在UK8S上部署、管理、擴展你...
摘要:詳細請見產品價格產品概念使用須知名詞解釋漏洞修復記錄集群節(jié)點配置推薦模式選擇產品價格操作指南集群創(chuàng)建需要注意的幾點分別是使用必讀講解使用需要賦予的權限模式切換的切換等。UK8S概覽UK8S是一項基于Kubernetes的容器管理服務,你可以在UK8S上部署、管理、擴展你的容器化應用,而無需關心Kubernetes集群自身的搭建及維護等運維類工作。了解使用UK8S為了讓您更快上手使用,享受UK...
摘要:創(chuàng)建集群如果你是初次接觸,我們建議你預先創(chuàng)建好一個新的和子網,與生產環(huán)境隔離。節(jié)點的可用區(qū)選擇會根據的可用區(qū)選擇變化,現已支持針對節(jié)點的平臺硬件隔離組最大數標簽等設置。創(chuàng)建集群如果你是初次接觸Kubernetes,我們建議你預先創(chuàng)建好一個新的VPC和子網,與生產環(huán)境隔離。創(chuàng)建集群之前,你需要先了解下Kubernetes中的Node CIDR、Pod CIDR、Service CIDR等基本概...
摘要:但考慮到該用戶在跨集群模式下的困擾,開始策劃將托管云物理機納入現有集群統(tǒng)一管理的方案,即在混合云架構下僅需部署管理一套集群。托管云物理機納入UK8S集群統(tǒng)一管理后,可實現托管云物理機保障平峰時業(yè)務正常運行,高峰時期利用UK8S快速擴容公有云資源的理想應用場景,繼而提升混合云的可用性。 ——海豹他趣技術負責人 張嵩 混合云的業(yè)務模式 廈門海豹他趣信息技術股份有限公司于2012年4...
閱讀 284·2024-11-07 18:25
閱讀 130363·2024-02-01 10:43
閱讀 868·2024-01-31 14:58
閱讀 828·2024-01-31 14:54
閱讀 82766·2024-01-29 17:11
閱讀 3047·2024-01-25 14:55
閱讀 1985·2023-06-02 13:36
閱讀 3032·2023-05-23 10:26