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