Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

TL; DR: Mae pob CNI yn gweithio fel y dylent, ac eithrio Kube-Router a Kube-OVN, Calico, ac eithrio canfod MTU awtomatig, yw'r gorau.

Diweddariad erthygl o'm gwiriadau blaenorol (2018 и 2019), ar adeg y profi rwy'n defnyddio Kubernetes 1.19 ar Ubuntu 18.04 gyda CNIs wedi'u diweddaru ym mis Awst 2020.

Cyn i ni blymio i fetrigau ...

Beth sy'n newydd ers Ebrill 2019?

  • Yn gallu profi ar eich clwstwr eich hun: Gallwch chi redeg profion ar eich clwstwr eich hun gan ddefnyddio ein hofferyn Meincnod Rhwydwaith Kubernetes: knb
  • Mae aelodau newydd wedi ymddangos
  • Senarios Newydd: Mae gwiriadau cyfredol yn rhedeg profion perfformiad rhwydwaith "Pod-to-Pod", ac mae sgript "Pod-to-Service" newydd wedi'i ychwanegu sy'n rhedeg profion yn agosach at amodau'r byd go iawn. Yn ymarferol, mae eich Pod gydag API yn gweithio gyda'r sylfaen fel gwasanaeth, ac nid trwy'r cyfeiriad ip Pod (wrth gwrs rydym yn gwirio TCP a CDU ar gyfer y ddau senario).
  • Defnydd o adnoddau: mae gan bob prawf bellach ei gymhariaeth adnoddau ei hun
  • Dileu Profion Cais: Nid ydym bellach yn gwneud profion HTTP, FTP a SCP gan fod ein cydweithrediad ffrwythlon gyda'r gymuned a chynhalwyr CNI wedi darganfod bwlch rhwng canlyniadau iperf dros TCP a chanlyniadau cyrlio oherwydd oedi wrth gychwyn CNI (ychydig eiliadau cyntaf Pod cychwyn, nad yw'n nodweddiadol mewn amodau go iawn).
  • Ffynhonnell agored: mae'r holl ffynonellau prawf (sgriptiau, gosodiadau yml a data "crai" gwreiddiol) ar gael yma

Protocol Prawf Cyfeirnod

Disgrifir y protocol yn fanwl ymaSylwch fod yr erthygl hon yn ymwneud â Ubuntu 18.04 gyda'r cnewyllyn rhagosodedig.

Dewis CNI ar gyfer Asesiad

Mae'r profion hwn wedi'u hanelu at gymharu CNIs wedi'u ffurfweddu ag un ffeil yaml (felly, mae pawb sydd wedi'u gosod gan sgriptiau, fel VPP ac eraill, wedi'u heithrio).

Ein CNIs dethol i'w cymharu:

  • Antrea v.0.9.1
  • Calico v3.16
  • Camlas v3.16 (rhwydwaith gwlanen + Polisïau Rhwydwaith Calico)
  • Ciliwm 1.8.2
  • Gwlanen 0.12.0
  • Kube-router diweddaraf (2020-08-25)
  • WeaveNet 2.7.0

Ffurfweddu MTU ar gyfer CNI

Yn gyntaf oll, rydym yn gwirio effaith canfod MTU awtomatig ar berfformiad TCP:

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Effaith MTU ar Berfformiad TCP

Gwelir bwlch hyd yn oed yn fwy wrth ddefnyddio CDU:

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)
Effaith MTU ar Berfformiad y CDU

O ystyried yr effaith enfawr ar berfformiad a ddatgelwyd yn y profion, hoffem anfon llythyr o obaith at holl gynhalwyr CNI: ychwanegwch ganfod MTU awtomatig i CNI. Byddwch yn arbed cathod bach, unicorns a hyd yn oed yr un mwyaf ciwt: y Devop bach.

Fodd bynnag, os oes angen i chi ddefnyddio CNI heb gefnogaeth ar gyfer canfod MTU yn awtomatig, gallwch ei ffurfweddu â llaw i gael perfformiad. Sylwch fod hyn yn berthnasol i Calico, Canal a WeaveNet.

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)
Fy nghais bach i'r CNIs cysylltiedig...

Profi CNI: Data Crai

Yn yr adran hon, byddwn yn cymharu CNI â'r MTU cywir (a bennir yn awtomatig neu wedi'i osod â llaw). Y prif nod yma yw dangos y data crai mewn graffiau.

Chwedl lliw:

  • llwyd - sampl (h.y. haearn noeth)
  • gwyrdd - lled band uwch na 9500 Mbps
  • melyn - lled band uwch na 9000 Mbps
  • oren - lled band uwch na 8000 Mbps
  • coch - lled band o dan 8000 Mbps
  • glas - niwtral (ddim yn gysylltiedig â lled band)

Defnydd o adnoddau dim llwyth

Yn gyntaf oll, gwiriwch y defnydd o adnoddau pan fydd y clwstwr yn “cysgu”.

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)
Defnydd o adnoddau dim llwyth

Pod-i-Pod

Mae'r senario hwn yn tybio bod y cleient Pod yn cysylltu'n uniongyrchol â'r gweinydd Pod gan ddefnyddio ei gyfeiriad IP.

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)
Senario Pod-i-Pod

TCP

Canlyniadau TCP Pod-i-Pod a defnydd cyfatebol o adnoddau:

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Cynllun Datblygu Unedol

Canlyniadau CDU Pod-i-Pod a defnydd cyfatebol o adnoddau:

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Pod-i-Wasanaeth

Mae'r adran hon yn berthnasol ar gyfer achosion defnydd go iawn, mae'r cleient Pod yn cysylltu â Pod y gweinydd trwy'r gwasanaeth ClusterIP.

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)
Sgript Pod-i-Wasanaeth

TCP

Canlyniadau TCP Pod-i-Wasanaeth a defnydd cyfatebol o adnoddau:

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Cynllun Datblygu Unedol

Canlyniadau CDU Pod-i-Wasanaeth a defnydd cyfatebol o adnoddau:

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Cefnogaeth polisi rhwydwaith

Ymhlith yr uchod i gyd, yr unig un nad yw'n cefnogi gwleidyddiaeth yw Gwlanen. Mae pob un arall yn gweithredu polisïau rhwydwaith yn gywir, gan gynnwys i mewn ac allan. Swydd ardderchog!

amgryptio CNI

Ymhlith y CNIs wedi'u gwirio mae yna rai a all amgryptio cyfnewid rhwydwaith rhwng Pods:

  • Antrea gan ddefnyddio IPsec
  • Calico gan ddefnyddio giard gwifren
  • Cilium gan ddefnyddio IPsec
  • WeaveNet gan ddefnyddio IPsec

Lled band

Gan fod llai o CNI ar ôl, gadewch i ni roi'r holl senarios mewn un graff:

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Defnydd o adnoddau

Yn yr adran hon, byddwn yn gwerthuso'r adnoddau a ddefnyddir wrth brosesu cyfathrebu Pod-i-Pod yn TCP a CDU. Nid oes diben llunio graff Pod-i-Wasanaeth gan nad yw'n darparu gwybodaeth ychwanegol.

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Rhoi'r cyfan at ei gilydd

Gadewch i ni geisio ailadrodd yr holl graffiau, fe wnaethom gyflwyno ychydig o oddrychedd yma, gan ddisodli'r gwerthoedd gwirioneddol gyda'r geiriau “vwry fast”, “isel”, ac ati.

Asesiad perfformiad CNI ar gyfer rhwydwaith Kubernetes dros 10G (Awst 2020)

Casgliad a fy nghasgliadau

Mae hyn ychydig yn oddrychol, gan fy mod yn cyfleu fy nehongliad fy hun o'r canlyniadau.

Rwy'n falch bod CNIs newydd yn ymddangos, perfformiodd Antrea yn dda, gweithredwyd llawer o swyddogaethau hyd yn oed mewn fersiynau cynnar: canfod MTU awtomatig, amgryptio a gosod hawdd.

Os byddwn yn cymharu perfformiad, mae pob CNI yn gweithio'n dda, ac eithrio Kube-OVN a Kube-Router. Nid oedd Kube-Router hefyd yn gallu canfod yr MTU, ni wnes i ddod o hyd i ffordd i'w ffurfweddu yn unrhyw le yn y ddogfennaeth (yma mae cais ar y pwnc hwn yn agored).

O ran y defnydd o adnoddau, mae Cilium yn dal i ddefnyddio mwy o RAM nag eraill, ond mae'r gwneuthurwr yn amlwg yn targedu clystyrau mawr, sy'n amlwg nad yw yr un peth â phrawf ar glwstwr tri nod. Mae Kube-OVN hefyd yn defnyddio llawer o adnoddau CPU a RAM, ond mae'n CNI ifanc yn seiliedig ar Open vSwitch (fel Antrea, mae'n perfformio'n well ac yn defnyddio llai).

Mae gan bawb ac eithrio Wlanen bolisïau rhwydwaith. Mae'n debygol iawn na fydd byth yn eu cefnogi, gan fod y nod yn symlach na maip wedi'i stemio: y ysgafnach, gorau oll.

Hefyd, ymhlith pethau eraill, mae'r perfformiad amgryptio yn anhygoel. Calico yw un o'r CNIs hynaf, ond dim ond ychydig wythnosau yn ôl y ychwanegwyd amgryptio. Dewison nhw gard gwifrau yn lle IPsec, ac yn syml, mae'n gweithio'n wych ac yn anhygoel, gan eclipsio CNIs eraill yn llwyr yn y rhan hon o'r profion. Wrth gwrs, mae'r defnydd o adnoddau yn cynyddu oherwydd amgryptio, ond mae'r trwybwn a gyflawnwyd yn werth chweil (dangosodd Calico welliant chwe gwaith yn y prawf amgryptio o'i gymharu â Cilium, sy'n ail). Ar ben hynny, gallwch chi alluogi giard gwifrau ar unrhyw adeg ar ôl i chi ddefnyddio Calico i'r clwstwr, a gallwch chi hefyd ei analluogi am gyfnod byr neu'n barhaol os dymunwch. Mae'n hynod o gyfleus, serch hynny! Rydym yn eich atgoffa nad yw Calico yn canfod MTU yn awtomatig ar hyn o bryd (mae'r nodwedd hon wedi'i chynllunio ar gyfer fersiynau'r dyfodol), felly gwnewch yn siŵr eich bod yn ffurfweddu'r MTU os yw'ch rhwydwaith yn cefnogi Jumbo Frames (MTU 9000).

Ymhlith pethau eraill, nodwch y gall Cilium amgryptio traffig rhwng nodau clwstwr (ac nid yn unig rhwng Podiau), a all fod yn bwysig iawn ar gyfer nodau clwstwr cyhoeddus.

I gloi, awgrymaf yr achosion defnydd canlynol:

  • Angen CNI ar gyfer clwstwr bach iawn NEU nid oes angen sicrwydd arnaf: gweithio gyda Flannel, y CNI ysgafnaf a mwyaf sefydlog (mae hefyd yn un o'r hynaf, yn ôl y chwedl fe'i dyfeisiwyd gan Homo Kubernautus neu Homo Contaitorus). Efallai y bydd gennych ddiddordeb hefyd yn y prosiect mwyaf dyfeisgar k3au, gwirio!
  • Angen CNI ar gyfer clwstwr rheolaidd: Calico - eich dewis chi, ond peidiwch ag anghofio ffurfweddu'r MTU os oes angen. Gallwch chi chwarae'n hawdd ac yn naturiol gyda pholisïau rhwydwaith, troi amgryptio ymlaen ac i ffwrdd, ac ati.
  • Angen CNI ar gyfer clwstwr (iawn) ar raddfa fawr: Wel, nid yw'r prawf yn dangos ymddygiad clystyrau mawr, byddwn yn falch o gynnal profion, ond nid oes gennym gannoedd o weinyddion sydd â chysylltiad 10Gbps. Felly'r opsiwn gorau yw rhedeg prawf wedi'i addasu ar eich nodau, o leiaf gyda Calico a Cilium.

Ffynhonnell: hab.com

Ychwanegu sylw