ProHoster > blog > Gweinyddiaeth > 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
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).
Yn gyntaf oll, rydym yn gwirio effaith canfod MTU awtomatig ar berfformiad TCP:
Effaith MTU ar Berfformiad TCP
Gwelir bwlch hyd yn oed yn fwy wrth ddefnyddio CDU:
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.
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”.
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.
Senario Pod-i-Pod
TCP
Canlyniadau TCP Pod-i-Pod a defnydd cyfatebol o adnoddau:
Cynllun Datblygu Unedol
Canlyniadau CDU Pod-i-Pod a defnydd cyfatebol o adnoddau:
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.
Sgript Pod-i-Wasanaeth
TCP
Canlyniadau TCP Pod-i-Wasanaeth a defnydd cyfatebol o adnoddau:
Cynllun Datblygu Unedol
Canlyniadau CDU Pod-i-Wasanaeth a defnydd cyfatebol o adnoddau:
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:
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.
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.
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.