Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

TL; DR: CNI zote hufanya kazi inavyopaswa, isipokuwa Kube-Router na Kube-OVN, Calico, isipokuwa utambuzi wa kiotomatiki wa MTU, ndio bora zaidi.

Sasisho la nakala ya hundi zangu za zamani (2018 ΠΈ 2019), wakati wa majaribio ninatumia Kubernetes 1.19 kwenye Ubuntu 18.04 na CNIs zilizosasishwa kutoka Agosti 2020.

Kabla hatujazama katika vipimo...

Ni nini kipya tangu Aprili 2019?

  • Unaweza kujaribu kwenye kundi lako mwenyewe: Unaweza kufanya majaribio kwenye nguzo yako mwenyewe kwa kutumia zana yetu Benchmark ya Mtandao wa Kubernetes: knb
  • Wanachama wapya wameonekana
  • Matukio Mapya: Ukaguzi wa sasa huendesha majaribio ya utendakazi wa mtandao wa "Pod-to-Pod", na hati mpya ya "Pod-to-Service" imeongezwa ambayo hufanya majaribio karibu na hali halisi ya ulimwengu. Kwa vitendo, Pod yako yenye API hufanya kazi na msingi kama huduma, na si kupitia anwani ya ip ya Pod (bila shaka tunaangalia TCP na UDP kwa hali zote mbili).
  • Matumizi ya rasilimali: kila jaribio sasa lina ulinganisho wake wa rasilimali
  • Kuondoa Majaribio ya Maombi: Hatufanyi tena majaribio ya HTTP, FTP na SCP kwani ushirikiano wetu wenye manufaa na jumuiya na watunzaji wa CNI umegundua pengo kati ya matokeo ya iperf juu ya TCP na matokeo ya curl kutokana na kuchelewa kwa kuanzisha CNI (sekunde chache za kwanza za Pod kuanza, ambayo sio kawaida katika hali halisi).
  • Chanzo huria: vyanzo vyote vya majaribio (hati, mipangilio ya yml na data halisi "mbichi") vinapatikana hapa

Itifaki ya Jaribio la Marejeleo

Itifaki imeelezwa kwa undani hapaTafadhali kumbuka kuwa nakala hii inahusu Ubuntu 18.04 na kernel chaguo-msingi.

Kuchagua CNI kwa Tathmini

Jaribio hili linalenga kulinganisha CNI zilizosanidiwa na faili moja ya yaml (kwa hivyo, zote zilizosakinishwa na hati, kama vile VPP na zingine, hazijumuishwa).

CNI zetu zilizochaguliwa kwa kulinganisha:

  • Antrea v.0.9.1
  • Kaliko v3.16
  • Mfereji v3.16 (Mtandao wa Flannel + Sera za Mtandao wa Calico)
  • Cilium 1.8.2
  • Flannel 0.12.0
  • Kube-router ya hivi punde (2020–08–25)
  • WeaveNet 2.7.0

Inasanidi MTU kwa CNI

Kwanza kabisa, tunaangalia athari za ugunduzi wa kiotomatiki wa MTU kwenye utendaji wa TCP:

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Athari za MTU kwenye Utendaji wa TCP

Pengo kubwa zaidi hupatikana wakati wa kutumia UDP:

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)
Athari za MTU kwenye Utendaji wa UDP

Kwa kuzingatia athari KUBWA ya utendakazi iliyofichuliwa katika majaribio, tungependa kutuma barua ya matumaini kwa wahudumu wote wa CNI: tafadhali ongeza utambuzi wa kiotomatiki wa MTU kwenye CNI. Utaokoa kittens, nyati na hata moja cutest: Devop kidogo.

Hata hivyo, ikiwa unahitaji kutumia CNI bila usaidizi wa utambuzi wa kiotomatiki wa MTU, unaweza kuisanidi wewe mwenyewe ili kupata utendakazi. Tafadhali kumbuka kuwa hii inatumika kwa Calico, Canal na WeaveNet.

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)
Ombi langu dogo kwa CNI zinazoambatana...

Upimaji wa CNI: Data Ghafi

Katika sehemu hii, tutalinganisha CNI na MTU sahihi (iliyoamuliwa kiotomatiki au iliyowekwa kwa mikono). Lengo kuu hapa ni kuonyesha data mbichi kwenye grafu.

Hadithi ya rangi:

  • kijivu - sampuli (yaani chuma tupu)
  • kijani - bandwidth juu ya 9500 Mbps
  • njano - kipimo data juu ya 9000 Mbps
  • machungwa - kipimo data juu ya 8000 Mbps
  • nyekundu - bandwidth chini ya 8000 Mbps
  • bluu - neutral (haihusiani na bandwidth)

Matumizi ya rasilimali bila mzigo

Awali ya yote, angalia matumizi ya rasilimali wakati nguzo "inalala".

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)
Matumizi ya rasilimali bila mzigo

Pod-to-Pod

Hali hii inadhania kwamba Pod ya mteja inaunganisha moja kwa moja kwenye Pod ya seva kwa kutumia anwani yake ya IP.

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)
Hali ya Pod-to-Pod

TCP

Matokeo ya Pod-to-Pod TCP na utumiaji wa rasilimali unaolingana:

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

UDP

Matokeo ya Pod-to-Pod UDP na utumiaji wa rasilimali unaolingana:

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Podi-kwa-Huduma

Sehemu hii ni muhimu kwa kesi za matumizi halisi, Pod ya mteja inaunganisha kwenye Pod ya seva kupitia huduma ya ClusterIP.

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)
Hati ya Pod-to-Service

TCP

Matokeo ya Pod-to-Service TCP na utumiaji wa rasilimali unaolingana:

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

UDP

Matokeo ya UDP ya Pod-to-Service na utumiaji wa rasilimali unaolingana:

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Usaidizi wa sera ya mtandao

Miongoni mwa yote hapo juu, pekee asiyeunga mkono siasa ni Flannel. Wengine wote hutekeleza kwa usahihi sera za mtandao, ikijumuisha zinazoingia na zinazotoka. Kazi nzuri!

Usimbaji fiche wa CNI

Kati ya CNI zilizoangaliwa kuna zile zinazoweza kusimba ubadilishanaji wa mtandao kati ya Pods:

  • Antrea kwa kutumia IPsec
  • Calico kwa kutumia wireguard
  • Cilium kwa kutumia IPsec
  • WeaveNet kwa kutumia IPsec

Mbinu

Kwa kuwa kuna CNI chache zilizosalia, wacha tuweke matukio yote kwenye grafu moja:

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Matumizi ya rasilimali

Katika sehemu hii, tutatathmini rasilimali zinazotumiwa wakati wa kuchakata mawasiliano ya Pod-to-Pod katika TCP na UDP. Hakuna maana katika kuchora grafu ya Pod-to-Service kwani haitoi maelezo ya ziada.

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Kuweka yote pamoja

Wacha tujaribu kurudia grafu zote, tulianzisha mada kidogo hapa, tukibadilisha maadili halisi na maneno "vwry haraka", "chini", nk.

Tathmini ya Utendaji ya CNI kwa Kubernetes juu ya Mtandao wa 10G (Agosti 2020)

Hitimisho na hitimisho langu

Hili ni jambo la msingi kidogo, kwani ninawasilisha tafsiri yangu mwenyewe ya matokeo.

Ninafurahi kuwa CNI mpya zilionekana, Antrea ilifanya vizuri, kazi nyingi zilitekelezwa hata katika matoleo ya awali: kugundua MTU moja kwa moja, encryption na ufungaji rahisi.

Ikiwa tunalinganisha utendaji, CNI zote hufanya kazi vizuri, isipokuwa Kube-OVN na Kube-Router. Kube-Router pia haikuweza kugundua MTU, sikupata njia ya kuisanidi mahali popote kwenye nyaraka (hapa ombi juu ya mada hii liko wazi).

Kwa upande wa matumizi ya rasilimali, Cilium bado hutumia RAM zaidi kuliko wengine, lakini mtengenezaji analenga wazi makundi makubwa, ambayo ni wazi si sawa na mtihani kwenye nguzo ya nodi tatu. Kube-OVN pia hutumia rasilimali nyingi za CPU na RAM, lakini ni CNI changa kulingana na Open vSwitch (kama Antrea, inafanya kazi vizuri na kwa matumizi kidogo).

Kila mtu isipokuwa Flannel ana sera za mtandao. Kuna uwezekano mkubwa kwamba hatawaunga mkono kamwe, kwa kuwa lengo ni rahisi zaidi kuliko turnip ya mvuke: nyepesi, bora zaidi.

Pia, kati ya mambo mengine, utendaji wa usimbuaji ni wa kushangaza. Calico ni mojawapo ya CNI kongwe zaidi, lakini usimbaji fiche uliongezwa wiki chache zilizopita. Walichagua wireguard badala ya IPsec, na kwa ufupi, inafanya kazi vizuri na ya kushangaza, ikifunika kabisa CNI zingine katika sehemu hii ya majaribio. Kwa kweli, matumizi ya rasilimali huongezeka kwa sababu ya usimbuaji, lakini matokeo yaliyopatikana yanafaa (Calico ilionyesha uboreshaji mara sita katika jaribio la usimbuaji ikilinganishwa na Cilium, ambayo ni ya pili). Zaidi ya hayo, unaweza kuwezesha wireguard wakati wowote baada ya kupeleka Calico kwenye nguzo, na unaweza pia kuizima kwa muda mfupi au kabisa ukipenda. Inafaa sana, ingawa! Tunakukumbusha kwamba kwa sasa Calico haitambui MTU kiotomatiki (kipengele hiki kimepangwa kwa matoleo yajayo), kwa hivyo hakikisha kuwa umesanidi MTU ikiwa mtandao wako unatumia Jumbo Frames (MTU 9000).

Miongoni mwa mambo mengine, kumbuka kuwa Cilium inaweza kusimba trafiki kati ya nodi za nguzo (na sio tu kati ya Pods), ambayo inaweza kuwa muhimu sana kwa nodi za nguzo za umma.

Kama hitimisho, ninapendekeza kesi zifuatazo za utumiaji:

  • Ninahitaji CNI kwa nguzo ndogo sana AU sihitaji usalama: kazi na Flannel, CNI nyepesi na thabiti zaidi (yeye pia ni mmoja wa wa zamani zaidi, kulingana na hadithi alivumbuliwa na Homo Kubernautus au Homo Contaitorus.) Unaweza pia kupendezwa na mradi wa busara zaidi k3s, angalia!
  • Unahitaji CNI kwa nguzo ya kawaida: Calico - chaguo lako, lakini usisahau kusanidi MTU ikiwa inahitajika. Unaweza kucheza kwa urahisi na kawaida na sera za mtandao, kuwasha na kuzima usimbaji, n.k.
  • Inahitaji CNI kwa (sana) nguzo kubwa: Kweli, mtihani hauonyeshi tabia ya vikundi vikubwa, ningefurahi kufanya majaribio, lakini hatuna mamia ya seva zilizo na muunganisho wa 10Gbps. Kwa hivyo chaguo bora ni kufanya mtihani uliobadilishwa kwenye nodi zako, angalau na Calico na Cilium.

Chanzo: mapenzi.com

Kuongeza maoni