Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

TL; DR: Ĉiuj CNI funkcias kiel ili devus, escepte de Kube-Router kaj Kube-OVN, Calico, kun la escepto de aŭtomata MTU-detekto, estas la plej bona.

Artikolo-ĝisdatigo de miaj pasintaj kontroloj (2018 и 2019), dum la testado mi uzas Kubernetes 1.19 sur Ubuntu 18.04 kun ĝisdatigitaj CNI-oj ekde aŭgusto 2020.

Antaŭ ol ni plonĝi en metrikon...

Kio estas nova ekde aprilo 2019?

  • Povas testi sur via propra areto: Vi povas fari testojn sur via propra areto uzante nian ilon Kubernetes Reto Benchmark: knb
  • Novaj membroj aperis
  • Novaj Scenaroj: Nunaj kontroloj efektivigas testojn pri retaj rendimento "Pod-al-Pod", kaj nova skripto "Pod-al-Servo" estis aldonita, kiu faras testojn pli proksime al realaj kondiĉoj. En la praktiko, via Pod kun API funkcias kun la bazo kiel servo, kaj ne per la Pod ip-adreso (kompreneble ni kontrolas kaj TCP kaj UDP por ambaŭ scenaroj).
  • Rimedokonsumo: ĉiu testo nun havas sian propran resursan komparon
  • Forigo de Aplikaj Testoj: Ni ne plu faras HTTP, FTP kaj SCP-testojn ĉar nia fruktodona kunlaboro kun la komunumo kaj CNI-subtenantoj malkovris breĉon inter iperf-rezultoj super TCP kaj buklaj rezultoj pro malfruo en CNI-komenco (la unuaj malmultaj sekundoj de Pod. ekfunkciigo, kiu ne tipaj en realaj kondiĉoj).
  • Malferma fonto: ĉiuj testfontoj (skriptoj, yml-agordoj kaj originalaj "krudaj" datumoj) estas haveblaj tie

Referenca Testa Protokolo

La protokolo estas detale priskribita tieBonvolu noti, ke ĉi tiu artikolo temas pri Ubuntu 18.04 kun la defaŭlta kerno.

Elektante CNI por Taksado

Ĉi tiu provo celas kompari CNI-ojn agorditajn kun unu yaml-dosiero (tial ĉiuj instalitaj per skriptoj, kiel VPP kaj aliaj, estas ekskluditaj).

Niaj elektitaj CNI-oj por komparo:

  • Antrea v.0.9.1
  • Calico v3.16
  • Kanalo v3.16 (Flanela reto + Calico-Retaj Politikoj)
  • Cilio 1.8.2
  • Flanelo 0.12.0
  • Kube-enkursigilo plej nova (2020-08-25)
  • WeaveNet 2.7.0

Agordante MTU por CNI

Antaŭ ĉio, ni kontrolas la efikon de aŭtomata MTU-detekto sur TCP-agado:

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Efiko de MTU sur TCP Performance

Eĉ pli granda interspaco estas trovita dum uzado de UDP:

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)
Efiko de MTU sur UDP Performance

Konsiderante la GRANdan efikecon malkaŝitan en la testoj, ni ŝatus sendi leteron de espero al ĉiuj CNI-subtenantoj: bonvolu aldoni aŭtomatan MTU-detekton al CNI. Vi savos katidojn, unikornojn kaj eĉ la plej belan: la malgrandan Devop.

Tamen, se vi bezonas uzi CNI sen subteno por aŭtomata MTU-detekto, vi povas agordi ĝin permane por akiri rendimenton. Bonvolu noti, ke ĉi tio validas por Calico, Canal kaj WeaveNet.

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)
Mia malgranda peto al la akompanantaj CNIoj...

CNI Testado: Krudaj Datumoj

En ĉi tiu sekcio, ni komparos CNI kun la ĝusta MTU (determinita aŭtomate aŭ agordita permane). La ĉefa celo ĉi tie estas montri la krudajn datumojn en grafikaĵoj.

Kolora legendo:

  • griza - specimeno (t.e. nuda fero)
  • verda - larĝa de bando super 9500 Mbps
  • flava - larĝa de bando super 9000 Mbps
  • oranĝa - larĝa de bando super 8000 Mbps
  • ruĝa - larĝa de bando sub 8000 Mbps
  • blua - neŭtrala (ne rilata al bendolarĝo)

Senŝarĝa resursa konsumo

Antaŭ ĉio, kontrolu la konsumon de rimedoj kiam la areto "dormas".

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)
Senŝarĝa resursa konsumo

Pod-al-Pod

Ĉi tiu scenaro supozas, ke la kliento Pod konektas rekte al la servilo Pod uzante sian IP-adreson.

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)
Pod-al-Pod Scenaro

TCP

Rezultoj de Pod-al-Pod TCP kaj responda konsumo de rimedoj:

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

UDP

Rezultoj de Pod-al-Pod UDP kaj responda konsumo de rimedoj:

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Pod-al-Servo

Ĉi tiu sekcio estas grava por realaj uzkazoj, la kliento Pod konektas al la servilo Pod per la servo ClusterIP.

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)
Pod-al-Serva Skripto

TCP

Rezultoj de TCP-al-servoj kaj responda konsumo de rimedoj:

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

UDP

Rezultoj de Pod-al-Servaj UDP kaj responda konsumo de rimedoj:

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Reta politika subteno

Inter ĉio supre, la sola, kiu ne subtenas politikon, estas Flanelo. Ĉiuj aliaj ĝuste efektivigas retajn politikojn, inkluzive de enirantaj kaj elirantaj. Bonega laboro!

CNI-ĉifrado

Inter la kontrolitaj CNI-oj estas tiuj, kiuj povas ĉifri retan interŝanĝon inter Pods:

  • Antrea uzante IPsec
  • Kaliko uzante dratprotekton
  • Cilium uzante IPsec
  • WeaveNet uzante IPsec

Larĝa de bando

Ĉar restas malpli da CNI-oj, ni metu ĉiujn scenarojn en unu grafeon:

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Rimeda konsumo

En ĉi tiu sekcio, ni taksos la rimedojn uzatajn dum prilaborado de Pod-al-Pod-komunikado en TCP kaj UDP. Ne utilas desegni Pod-al-Servan grafeon ĉar ĝi ne provizas pliajn informojn.

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Kunmetante ĉion

Ni provu ripeti ĉiujn grafikaĵojn, ni enkondukis iom da subjektiveco ĉi tie, anstataŭigante la realajn valorojn per la vortoj "vwry fast", "low", ktp.

Takso de rendimento de CNI por Kubernetes super 10G-reto (aŭgusto 2020)

Konkludo kaj miaj konkludoj

Ĉi tio estas iom subjektiva, ĉar mi transdonas mian propran interpreton de la rezultoj.

Mi ĝojas, ke novaj CNI-oj aperis, Antrea bone funkciis, multaj funkcioj estis efektivigitaj eĉ en fruaj versioj: aŭtomata MTU-detekto, ĉifrado kaj facila instalado.

Se ni komparas rendimenton, ĉiuj CNI-oj funkcias bone, krom Kube-OVN kaj Kube-Router. Kube-Router ankaŭ ne povis detekti la MTU, mi ne trovis manieron agordi ĝin ie ajn en la dokumentado (tie peto pri ĉi tiu temo estas malfermita).

Koncerne al konsumo de rimedoj, Cilium ankoraŭ uzas pli da RAM ol aliaj, sed la fabrikanto klare celas grandajn aretojn, kio klare ne samas kiel provo sur tri-noda areto. Kube-OVN ankaŭ konsumas multajn CPU- kaj RAM-resursojn, sed ĝi estas juna CNI bazita sur Open vSwitch (kiel Antrea, ĝi funkcias pli bone kaj konsumas malpli).

Ĉiuj krom Flannel havas retajn politikojn. Tre verŝajne li neniam subtenos ilin, ĉar la celo estas pli simpla ol vaporita rapo: ju pli malpeza, des pli bone.

Ankaŭ, interalie, la ĉifrada rendimento estas mirinda. Calico estas unu el la plej malnovaj CNI-oj, sed ĉifrado estis aldonita nur antaŭ kelkaj semajnoj. Ili elektis wireguard anstataŭ IPsec, kaj simple dirite, ĝi funkcias bonege kaj mirinda, tute superigante aliajn CNI-ojn en ĉi tiu parto de la testado. Kompreneble, la konsumo de rimedoj pliiĝas pro ĉifrado, sed la trafiko atingita valoras ĝin (Caliko montris sesoblan plibonigon en la ĉifrado-testo kompare kun Cilium, kiu estas dua). Plie, vi povas ebligi dratprotekton iam ajn post kiam vi deplojos Calico-on al la areto, kaj vi ankaŭ povas malŝalti ĝin por mallonga tempo aŭ konstante, se vi volas. Ĝi tamen estas nekredeble oportuna! Ni memorigas al vi, ke Calico nuntempe ne aŭtomate detektas MTU (ĉi tiu funkcio estas planita por estontaj versioj), do nepre agordu la MTU se via reto subtenas Jumbo Frames (MTU 9000).

Interalie, notu, ke Cilium povas ĉifri trafikon inter clusternodoj (kaj ne nur inter Pods), kio povas esti tre grava por publikaj clusternodoj.

Kiel konkludo, mi sugestas la sekvajn uzkazojn:

  • Bezonas CNI por tre malgranda areto AŬ mi ne bezonas sekurecon: labori kun Fandalo, la plej malpeza kaj plej stabila CNI (li ankaŭ estas unu el la plej maljunaj, laŭ legendo li estis inventita de Homo Kubernautus aŭ Homo Contaitorus). Vi povas ankaŭ interesiĝi pri la plej sprita projekto k3-aj jaroj, kontrolu!
  • Bezonas CNI por regula areto: Kalico - via elekto, sed ne forgesu agordi la MTU se necese. Vi povas facile kaj nature ludi kun retaj politikoj, ŝalti kaj malŝalti ĉifradon ktp.
  • Bezonas CNI por (tre) grandskala areto: Nu, la testo ne montras la konduton de grandaj aretoj, mi ĝojus fari testojn, sed ni ne havas centojn da serviloj kun 10Gbps konekto. Do la plej bona elekto estas fari modifitan teston sur viaj nodoj, almenaŭ kun Calico kaj Cilium.

fonto: www.habr.com

Aldoni komenton