Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Tani waa cusbooneysiintayda benchmark hore, kaas oo hadda ku shaqeeya Kubernetes 1.14 oo wata nooca CNI ee ugu dambeeyay laga bilaabo Abriil 2019.

Ugu horreyntii, waxaan rabaa inaan u mahadceliyo kooxda Cilium: ragga ayaa iga caawiyay inaan hubiyo oo aan saxo qoraallada kormeerka cabbirka.

Maxaa is beddelay ilaa Noofambar 2018

Waa kuwan waxa is beddelay tan iyo markaas (haddii aad xiisaynayso):

Flannel waa kan ugu dhaqsaha badan uguna fudud interface CNI, laakiin wali ma taageerayo siyaasadaha shabakada iyo sirta.

Romana hadda lama taageero, sidaas darteed waxaan ka saarnay bartilmaameedka.

WeaveNet hadda waxay taageertaa siyaasadaha shabakada ee soo gelida iyo ka bixista! Laakiin wax-soo-saarkii ayaa hoos u dhacay.

Calico, waxaad weli u baahan tahay inaad gacanta ku habayso cabbirka baakidhka ugu sarreeya (MTU) waxqabadka ugu fiican. Calico waxay bixisaa laba ikhtiyaar oo lagu rakibo CNI, markaa waxaad samayn kartaa la'aanteed kayd ETCD oo gooni ah:

  • ku kaydinta gobolka Kubernetes API sida kayd xog ahaan (xajmiga kooxda <50 nodes);
  • ku kaydinta gobolka Kubernetes API sida kayd xog ah oo wata wakiil Typha si loo yareeyo culayska K8S API (xajmiga kutlada> 50 noode).

Calico ayaa ku dhawaaqay taageero siyaasadaha heerka codsiga dusha sare ee Istio ee amniga heerka codsiga.

Cilium hadda waxay taageertaa sirta! Cilium waxay siisaa sir sir leh tunnel IPSec waxayna bixisaa beddelka shabakadda WeaveNet sir ah. Laakiin WeaveNet way ka dhakhso badan tahay Cilium iyadoo sirtu ay karti u leedahay.

Cilium hadda way fududahay in la geeyo iyada oo ay ugu mahadcelinayso hawl-wadeenka ETCD ee ku dhex-jira.

Kooxda Cilium waxay isku dayday inay ka jarto qaar ka mid ah miisaanka CNI-da iyaga oo yareynaya isticmaalka xusuusta iyo kharashyada CPU, laakiin tartamayaasheeda ayaa weli fudud.

macnaha guud

Halbeegga waxa lagu maamulaa saddex adeegayaal Supermicro oo aan virtualized ahayn oo leh 10 Gb Supermicro beddelka. Adeegayaashu waxay si toos ah ugu xidhan yihiin beddelka iyaga oo isticmaalaya xadhkaha DAC SFP+ ee dadban waxaana lagu habeeyey isla VLAN oo leh xargaha jumbo (MTU 9000).

Kubernetes 1.14.0 ayaa lagu rakibay Ubuntu 18.04 LTS oo leh Docker 18.09.2 (nooca Docker-ka caadiga ah ee sii deyntan).

Si loo hagaajiyo soo saarista, waxaan go'aansanay inaan mar walba ku habeyno sayidyada qanjidhada koowaad, dhigno qaybta server-ka ee bartilmaameedka serverka labaad, qaybta macmiilka ahna qaybta saddexaad. Si tan loo sameeyo, waxaan u isticmaalnaa NodeSelector gudaha Kubernetes geynta.

Waxaan ku qeexi doonaa natiijada cabbirka miisaanka soo socda:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)

Doorashada CNI ee bar-tilmaameedka

Tani waa halbeegga kaliya ee CNI ee liiska qaybta ku saabsan abuurista hal koox sayid oo leh kubeadm Eeg dokumentiga rasmiga ah ee Kubernetes 9-ka CNI-yada, waxaanu qaadan doonaa 6 oo kaliya: waxaanu ka saaraynaa kuwa ay adagtahay in la rakibo iyo/ama aan shaqaynayn qaabayn la'aan sida ku cad dukumeentiyada (Romana, Contiv-VPP iyo JuniperContrail/TungstenFabric).

Waxaan is barbar dhigi doonaa CNI-yada soo socda:

  • Calico v3.6
  • Kanaalka v3.6 (asal ahaan Flannel ee isku xirka + Calico sida dab-damis)
  • Cilium 1.4.2
  • Flannel 0.11.0
  • Kube-router 0.2.5
  • WeaveNet 2.5.1

Ku rakibida

Sida ugu sahlan ee CNI ay tahay in la rakibo, sida ugu wanagsan ee aragtidayada ugu horreysa ayaa noqon doonta. Dhammaan CNI-yada laga soo bilaabo bartilmaameedka aad bay u fududahay in la rakibo (hal ama laba amar).

Sida aan sheegnay, server-yada iyo furayaasha waxaa lagu habeeyey iyada oo la adeegsanayo jumbo frames (waxaanu MTU u dhignay 9000). Waan ku faraxsanaan lahayn haddii CNI ay si toos ah u go'aamiso MTU iyada oo ku saleysan qaabeynta adapters-ka. Si kastaba ha ahaatee, kaliya Cilium iyo Flannel ayaa tan maamulay. Inta kale ee CNI-yada waxay qabaan codsiyo ku saabsan GitHub si ay ugu daraan sahaminta tooska ah ee MTU, laakiin waxaanu u habayn doonaa gacanta annagoo bedelna ConfigMap ee Calico, Canal iyo Kube-router, ama u gudbiya doorsoomayaasha deegaanka ee WeaveNet.

Waa maxay dhibaatada MTU-da khaldan? Jaantuskani wuxuu muujinayaa farqiga u dhexeeya WeaveNet oo leh MTU-ga caadiga ah iyo fareemada jumbo ee karti leh:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Sidee MTU u saamaysaa wax soo saarka?

Waxaan aragnay sida ay muhiim ugu tahay MTU waxqabadka, hadda aan aragno sida CNI-yadayada ay si toos ah u go'aamiyaan:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
CNI waxay si toos ah u ogaataa MTU

Jaantusku wuxuu muujinayaa inaad u baahan tahay inaad u habayso MTU-ga Calico, Canal, Kube-router iyo WeaveNet si aad u hesho waxqabadka ugu fiican. Cilium iyo Flannel waxay awoodeen inay si sax ah u go'aamiyaan MTU laftooda iyada oo aan wax habayn ah.

Amniga

Waxaan is barbardhigi doonaa amniga CNI laba dhinac: awoodda sirta xogta la gudbiyo iyo hirgelinta siyaasadaha shabakada Kubernetes (oo ku saleysan imtixaanada dhabta ah, ma aha dukumeenti).

Kaliya laba CNI ayaa sir ah xogta: Cilium iyo WeaveNet. Sirin WeaveNet karti u leh dejinta sirta sirta ah sida doorsoomayaasha deegaanka ee CNI. IN dukumentiyo WeaveNet wuxuu u qeexayaa hab adag, laakiin wax walba si fudud ayaa loo sameeyaa. Sirin cilium lagu habeeyey amarada, adoo abuuraya siraha Kubernetes, iyo iyada oo loo marayo wax ka beddelka daemonSet (wax yar ka dhib badan kan WeaveNet, laakiin Cilium waxay leedahay tallaabo-tallaabo tilmaamaha).

Dhanka hirgelinta siyaasadda shabakadaha, way ku guuleysteen Calico, Kanaalka, Cilium iyo WeaveNet, kaas oo aad ku habayn karto sharciyada soo galootiga iyo Egresska. Waayo Kube-router waxaa jira xeerar kaliya oo loogu talagalay Ingress, iyo Flannel Ma jiraan siyaasado shabakad gabi ahaanba.

Waa kuwan natiijooyinka guud:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Natiijooyinka Barbardhigga Waxqabadka Badbaadada

Wax-soo-saarka

Halbeeggani waxa uu muujinayaa celceliska wax-soo-saarka ugu yaraan saddex runood ee imtixaan kasta. Waxaan tijaabineynaa waxqabadka TCP iyo UDP (adigoo isticmaalaya iperf3), codsiyada dhabta ah sida HTTP (oo leh Nginx iyo curl) ama FTP (oo leh vsftpd iyo curl) iyo ugu dambeyntii waxqabadka codsiga iyadoo la adeegsanayo sirta ku salaysan SCP (adoo la adeegsanayo macmiilka iyo server OpenSSH).

Dhammaan imtixaanada, waxaanu samaynay bartilmaameed bir ah oo qaawan (khadka cagaaran) si aan u barbar dhigno waxqabadka CNI iyo waxqabadka shabakada hooyo. Halkan waxaan ku isticmaalnaa miisaan isku mid ah, laakiin midab ahaan:

  • Jaalle = aad u wanaagsan
  • Orange = wanaagsan
  • Buluug = sidaas
  • Casaan = xun

Ma qaadan doono CNI-yada si khaldan loo habeeyey waxaanan kaliya tusi doonaa natiijooyinka CNI-yada leh MTU-ga saxda ah. (Fiiro gaar ah: Cilium si sax ah uma xisaabiyo MTU haddii aad awood u yeelatid sirta, markaa waa inaad gacanta ku dhimataa MTU ilaa 8900 nooca 1.4. Nooca soo socda, 1.5, si toos ah ayuu u sameeyaa.)

Waa kuwan natiijooyinka:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Waxqabadka TCP

Dhammaan CNI-yadu waxay si fiican u qabteen marka la eego bartilmaameedka TCP. CNI oo leh sireed ayaa aad uga dambeeya sababtoo ah sirtu waa qaali.

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Waxqabadka UDP

Halkan, sidoo kale, dhammaan CNI-yada si fiican ayay u socdaan. CNI oo leh sireed ayaa muujisay ku dhawaad ​​isla natiijada. Cilium wax yar ayuu ka dambeeyaa tartanka, laakiin waa 2,3% oo keliya birta qaawan, markaa ma aha natiijo xun. Ha iloobin in kaliya Cilium iyo Flannel ay si sax ah u go'aamiyeen MTU laftooda, kuwanuna waa natiijooyinkooda iyada oo aan wax qaabayn dheeraad ah la helin.

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)

Ka warran codsi dhab ah? Sida aad arki karto, waxqabadka guud ee HTTP wax yar ayuu ka hooseeyaa kan TCP. Xitaa haddii aad HTTP ku isticmaasho TCP, waxaan ku habaynay iperf3 bar-tilmaameedka TCP si aan uga fogaano bilawga gaabis ah ee saameeya bartilmaameedka HTTP. Qof walba shaqo fiican ayuu halkan ka qabtay. Kube-router wuxuu leeyahay faa'iido cad, laakiin WeaveNet si fiican uma aysan qaban: qiyaastii 20% ayaa ka xun birta qaawan. Cilium iyo WeaveNet oo leh sir sir ayaa u muuqda runtii murugo.

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)

FTP, borotokool kale oo ku salaysan TCP, natiijadu way kala duwan tahay. Flannel iyo Kube-router ayaa qabanaya shaqada, laakiin Calico, Canal iyo Cilium ayaa wax yar ka dambeeya waxayna 10% ka hooseeyaan birta qaawan. WeaveNet ayaa ka dambeeya ilaa 17%, laakiin WeaveNet sir ah ayaa 40% ka horeeya Cilium sir ah.

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)

SCP waxaan isla markiiba arki karnaa inta ay le'eg tahay sirta SSH. Ku dhawaad ​​​​dhammaan CNI-yada si fiican ayay u shaqeynayaan, laakiin WeaveNet ayaa dib u dhaceysa mar kale. Cilium iyo WeaveNet oo leh sir sireed ayaa la filayaa inay yihiin kuwa ugu xun sababtoo ah sirta labanlaabka ah (SSH + CNI).

Waa kan shaxda kooban ee natiijooyinka:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)

Isticmaalka kheyraadka

Hadda aan is barbar dhigno sida CNI ay u isticmaasho agabka culeyska culus (inta lagu jiro wareejinta TCP, 10 Gbps). Imtixaannada waxqabadka waxaan barbar dhignaa CNI iyo birta qaawan (khadka cagaaran). Isticmaalka kheyraadka, aan tusno Kubernetes saafi ah (khadka guduudan) la'aanteed CNI oo aan aragno inta agab ee dheeraadka ah ee CNI ay isticmaasho.

Aan ku bilowno xusuusta. Halkan waxaa ah celceliska qiimaha RAM ee noodes-ka (marka laga reebo kaydinta iyo kaydinta) MB inta lagu jiro wareejinta.

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Isticmaalka xusuusta

Flannel iyo Kube-router waxay muujiyeen natiijooyin aad u fiican - kaliya 50 MB. Calico iyo Canal mid kastaa wuxuu leeyahay 70. WeaveNet waxay si cad u isticmaashaa in ka badan kuwa kale - 130 MB, iyo Cilium waxay isticmaashaa ilaa 400.
Hadda aynu eegno isticmaalka wakhtiga CPU. Xusid mudan: jaantusku ma muujinayo boqolkiiba, laakiin ppm, taas oo ah, 38 ppm "birta qaawan" waa 3,8%. Waa kuwan natiijooyinka:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Isticmaalka CPU

Calico, Canal, Flannel iyo Kube-router aad bay u hufan yihiin CPU - kaliya 2% in ka badan Kubernetes oo aan lahayn CNI. WeaveNet aad ayuu uga dambeeyaa 5% oo dheeri ah, waxaa ku xiga Cilium 7%.

Halkan waxaa ah soo koobidda isticmaalka kheyraadka:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)

Natiijooyinka

Shaxda dhammaan natiijooyinka:

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Natiijooyinka bartilmaameedka guud

gunaanad

Qeybta ugu dambeysa waxaan ku cabiri doonaa ra'yigayga ku saabsan natiijooyinka. Xasuusnoow in bartilmaameedkan kaliya uu tijaabiyo soo-saarka hal xiriiriye oo ku yaal koox aad u yar (3 nodes). Ma khusayso rucubyada waaweyn (<50 nodes) ama xidhiidhada barbar socda.

Waxaan ku talinayaa in la isticmaalo CNI-yada soo socda iyadoo ku xiran xaaladda:

  • Ma ku jirtaa kooxdaada noodhka leh kheyraad yar (dhowr GB oo RAM ah, dhowr nooc) oo uma baahnid sifooyinka amniga - dooro Flannel. Tani waa mid ka mid ah CNI-yada ugu waxtarka badan. Waxayna la jaanqaadi kartaa naqshado kala duwan oo kala duwan (amd64, cudud, arm64, iwm.). Intaa waxaa dheer, tani waa mid ka mid ah laba (ka kale waa Cilium) CNI oo si toos ah u go'aamin kara MTU, markaa uma baahnid inaad wax dejiso. Kube-router sidoo kale waa ku habboon yahay, laakiin maaha sida caadiga ah waxaadna u baahan doontaa inaad gacanta ku habayso MTU.
  • Haddii loo baahdo sir shabakada Badbaadada, qaado WeaveNet. Ha iloobin inaad qeexdo cabbirka MTU haddii aad isticmaalayso jumbo frames, oo awood sireed adoo qeexaya erayga sirta ah ee doorsoomiyaha deegaanka. Laakiin way fiicantahay in la iloobo waxqabadka - taasi waa qiimaha sirta ah.
  • Si aad u isticmaalka caadiga ah waan kula talinayaa Calico. CNI-kan waxaa si weyn loogu isticmaalaa qalabyada kala duwan ee Kubernetes geynta (Kops, Kubespray, Rancher, iwm.). Sida WeaveNet, iska hubi inaad ku habayso MTU-ga ConfigMap haddii aad isticmaalayso xargaha jumbo. Waa qalab hawl badan oo waxtar u leh xagga isticmaalka kheyraadka, waxqabadka iyo amniga.

Ugu dambayntii, waxaan kugula talinayaa inaad raacdo horumarka cilium. CNI waxay leedahay koox aad u firfircoon oo wax badan ka shaqeysa wax soo saarkooda (sifooyinka, kaydinta kheyraadka, waxqabadka, amniga, iskudhafka ...) waxayna leeyihiin qorshooyin aad u xiiso badan.

Kubernetes Network Plugin (CNI) Benchmark Natiijooyinka in ka badan 10 Gbps Network (la cusboonaysiiyay: Abriil 2019)
Jaantuska muuqaalka ah ee xulashada CNI

Source: www.habr.com

Add a comment