Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Dyma fy niweddariad meincnod blaenorol, sydd bellach yn rhedeg ar Kubernetes 1.14 gyda'r fersiwn CNI diweddaraf ym mis Ebrill 2019.

Yn gyntaf oll, hoffwn ddiolch i dîm Cilium: fe wnaeth y dynion fy helpu i wirio a chywiro'r sgriptiau monitro metrigau.

Beth sydd wedi newid ers Tachwedd 2018

Dyma beth sydd wedi newid ers hynny (os oes gennych ddiddordeb):

Gwlanen yw'r rhyngwyneb CNI cyflymaf a symlaf o hyd, ond nid yw'n cefnogi polisïau rhwydwaith ac amgryptio o hyd.

Nid yw Romana bellach yn cael ei gefnogi, felly rydym wedi ei dynnu o'r meincnod.

Mae WeaveNet bellach yn cefnogi polisïau rhwydwaith ar gyfer Ingress and Egress! Ond mae cynhyrchiant wedi gostwng.

Yn Calico, mae angen i chi ffurfweddu'r maint pecyn uchaf (MTU) â llaw ar gyfer y perfformiad gorau. Mae Calico yn cynnig dau opsiwn ar gyfer gosod CNI, felly gallwch chi wneud heb ystorfa ETCD ar wahân:

  • cyflwr storio yn API Kubernetes fel storfa ddata (maint clwstwr < 50 nod);
  • cyflwr storio yn API Kubernetes fel storfa ddata gyda dirprwy Typha i leddfu'r llwyth ar yr API K8S (maint clwstwr> nodau 50).

Cyhoeddodd Calico gefnogaeth polisïau lefel cais ar ben Istio ar gyfer diogelwch lefel cais.

Mae Cilium nawr yn cefnogi amgryptio! Mae Cilium yn darparu amgryptio gyda thwneli IPSec ac yn cynnig dewis arall i'r rhwydwaith WeaveNet wedi'i amgryptio. Ond mae WeaveNet yn gyflymach na Cilium gydag amgryptio wedi'i alluogi.

Mae Cilium bellach yn haws i'w ddefnyddio diolch i'r gweithredwr ETCD adeiledig.

Mae tîm Cilium wedi ceisio torri rhywfaint o bwysau o'i CNI trwy leihau defnydd cof a chostau CPU, ond mae ei gystadleuwyr yn dal yn ysgafnach.

Cyd-destun meincnod

Mae'r meincnod yn cael ei redeg ar dri gweinydd Supermicro nad ydynt yn rhithwir gyda switsh Supermicro 10 Gb. Mae'r gweinyddwyr wedi'u cysylltu'n uniongyrchol â'r switsh trwy geblau goddefol DAC SFP+ ac wedi'u ffurfweddu ar yr un VLAN â fframiau jumbo (MTU 9000).

Gosododd Kubernetes 1.14.0 ar Ubuntu 18.04 LTS gyda Docker 18.09.2 (y fersiwn Docker rhagosodedig yn y datganiad hwn).

Er mwyn gwella atgynhyrchu, penderfynasom bob amser ffurfweddu'r meistr ar y nod cyntaf, gosod rhan gweinydd y meincnod ar yr ail weinydd, a rhan y cleient ar y trydydd. I wneud hyn, rydym yn defnyddio NodeSelector mewn gosodiadau Kubernetes.

Byddwn yn disgrifio'r canlyniadau meincnod ar y raddfa ganlynol:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)

Dewis CNI ar gyfer meincnod

Mae hwn yn feincnod ar gyfer CNI yn unig o'r rhestr yn yr adran am greu un clwstwr meistr gyda kubeadm Gweler dogfennaeth swyddogol Kubernetes. O'r 9 CNI, byddwn yn cymryd 6 yn unig: byddwn yn eithrio'r rhai sy'n anodd eu gosod a/neu nad ydynt yn gweithio heb gyfluniad yn ôl y ddogfennaeth (Romana, Contiv-VPP a JuniperContrail/TungstenFabric).

Byddwn yn cymharu'r CNIs canlynol:

  • Calico v3.6
  • Camlas v3.6 (Wlanen yn ei hanfod ar gyfer rhwydweithio + Calico fel wal dân)
  • Ciliwm 1.4.2
  • Gwlanen 0.11.0
  • Kube-llwybrydd 0.2.5
  • WeaveNet 2.5.1

Gosod

Po hawsaf yw'r CNI i'w osod, y gorau fydd ein hargraff gyntaf. Mae pob CNI o'r meincnod yn hawdd iawn i'w gosod (gydag un neu ddau o orchmynion).

Fel y dywedasom, mae'r gweinyddwyr a'r switsh wedi'u ffurfweddu gyda fframiau jumbo wedi'u galluogi (rydym yn gosod yr MTU i 9000). Byddem yn hapus pe bai CNI yn pennu'r MTU yn awtomatig yn seiliedig ar gyfluniad yr addaswyr. Fodd bynnag, dim ond Cilium a Wlanen oedd yn rheoli hyn. Mae gan weddill y CNIs geisiadau ar GitHub i ychwanegu darganfyddiad MTU awtomatig, ond byddwn yn ei ffurfweddu â llaw trwy newid y ConfigMap ar gyfer Calico, Canal a Kube-router, neu basio newidyn amgylchedd ar gyfer WeaveNet.

Beth yw'r broblem gyda MTU anghywir? Mae'r diagram hwn yn dangos y gwahaniaeth rhwng WeaveNet gyda MTU rhagosodedig a fframiau jumbo wedi'u galluogi:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Sut mae MTU yn effeithio trwybwn?

Rydym wedi gweld pa mor bwysig yw MTU ar gyfer perfformiad, nawr gadewch i ni weld sut mae ein CNIs yn ei bennu'n awtomatig:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Mae CNI yn canfod MTU yn awtomatig

Mae'r graff yn dangos bod angen i chi ffurfweddu'r MTU ar gyfer Calico, Canal, Kube-router a WeaveNet ar gyfer y perfformiad gorau posibl. Roedd Cilium a Wlanen yn gallu pennu'r MTU eu hunain yn gywir heb unrhyw osodiadau.

diogelwch

Byddwn yn cymharu diogelwch CNI mewn dwy agwedd: y gallu i amgryptio data a drosglwyddir a gweithredu polisïau rhwydwaith Kubernetes (yn seiliedig ar brofion go iawn, nid dogfennaeth).

Dim ond dau CNI sy'n amgryptio data: Cilium a WeaveNet. Amgryptio GwehydduNet wedi'i alluogi trwy osod y cyfrinair amgryptio fel newidyn amgylchedd CNI. YN dogfennaeth Mae WeaveNet yn ei ddisgrifio mewn ffordd gymhleth, ond mae popeth yn cael ei wneud yn syml. Amgryptio ciliwm wedi'i ffurfweddu gan orchmynion, trwy greu cyfrinachau Kubernetes, a thrwy addasu'r daemonSet (ychydig yn fwy cymhleth nag yn WeaveNet, ond mae gan Cilium gam wrth gam cyfarwyddiadau).

O ran gweithredu polisi rhwydwaith, maent wedi llwyddo Calico, Camlas, Cilium a WeaveNet, lle gallwch chi ffurfweddu rheolau Ingress and Egress. Canys Kube-llwybrydd nid oes ond rheolau ar gyfer Ingress, a Flannel Nid oes unrhyw bolisïau rhwydwaith o gwbl.

Dyma’r canlyniadau cyffredinol:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Canlyniadau Meincnodi Perfformiad Diogelwch

Cynhyrchiant

Mae'r meincnod hwn yn dangos y trwybwn cyfartalog dros o leiaf dri rhediad o bob prawf. Rydym yn profi perfformiad TCP a CDU (gan ddefnyddio iperf3), cymwysiadau go iawn fel HTTP (gyda Nginx a curl) neu FTP (gyda vsftpd a curl) ac yn olaf perfformiad cymhwysiad gan ddefnyddio amgryptio seiliedig ar SCP (gan ddefnyddio cleient a gweinydd OpenSSH).

Ar gyfer pob prawf, fe wnaethom berfformio meincnod metel noeth (llinell werdd) i gymharu perfformiad CNI â pherfformiad rhwydwaith brodorol. Yma rydym yn defnyddio'r un raddfa, ond mewn lliw:

  • Melyn = da iawn
  • Oren = da
  • Glas = mor-so
  • Coch = drwg

Ni fyddwn yn cymryd CNIs sydd wedi'u ffurfweddu'n anghywir a byddwn ond yn dangos canlyniadau ar gyfer CNIs gyda'r MTU cywir. (Sylwer: Nid yw Cilium yn cyfrifo'r MTU yn gywir os ydych yn galluogi amgryptio, felly bydd yn rhaid i chi leihau'r MTU â llaw i 8900 yn fersiwn 1.4. Mae'r fersiwn nesaf, 1.5, yn gwneud hyn yn awtomatig.)

Dyma'r canlyniadau:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Perfformiad TCP

Perfformiodd pob CNI yn dda yn y meincnod TCP. Mae CNI gydag amgryptio ymhell ar ei hôl hi oherwydd bod amgryptio yn ddrud.

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Perfformiad y CDU

Yma, hefyd, mae pob CNI yn gwneud yn dda. Dangosodd CNI gydag amgryptio bron yr un canlyniad. Mae Cilium ychydig y tu ôl i'r gystadleuaeth, ond dim ond 2,3% o fetel noeth ydyw, felly nid yw'n ganlyniad gwael. Peidiwch ag anghofio mai dim ond Cilium a Wlanen a benderfynodd yr MTU yn gywir eu hunain, a dyma eu canlyniadau heb unrhyw ffurfweddiad ychwanegol.

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)

Beth am gais go iawn? Fel y gallwch weld, mae perfformiad cyffredinol HTTP ychydig yn is nag ar gyfer TCP. Hyd yn oed os ydych chi'n defnyddio HTTP gyda TCP, fe wnaethom ffurfweddu iperf3 yn y meincnod TCP i osgoi cychwyn araf a fyddai'n effeithio ar feincnod HTTP. Gwnaeth pawb waith da yma. Mae gan Kube-router fantais amlwg, ond ni pherfformiodd WeaveNet yn dda: tua 20% yn waeth na metel noeth. Mae Cilium a WeaveNet gydag amgryptio yn edrych yn drist iawn.

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)

Gyda FTP, protocol arall sy'n seiliedig ar TCP, mae'r canlyniadau'n amrywio. Mae Wlanen a Kube-router yn gwneud y gwaith, ond mae Calico, Canal a Cilium ychydig ar ei hôl hi ac maen nhw tua 10% yn arafach na metel noeth. Mae WeaveNet ar ei hôl hi cymaint â 17%, ond mae WeaveNet wedi'i amgryptio 40% ar y blaen i Cilium wedi'i amgryptio.

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)

Gyda SCP gallwn weld ar unwaith faint mae amgryptio SSH yn ei gostio i ni. Mae bron pob CNI yn gwneud yn dda, ond mae WeaveNet ar ei hôl hi eto. Disgwylir mai Cilium a WeaveNet ag amgryptio yw'r gwaethaf oherwydd amgryptio dwbl (SSH + CNI).

Dyma dabl cryno gyda’r canlyniadau:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)

Defnydd o adnoddau

Nawr, gadewch i ni gymharu sut mae CNI yn defnyddio adnoddau o dan lwythi trwm (yn ystod trosglwyddiad TCP, 10 Gbps). Mewn profion perfformiad rydym yn cymharu CNI â metel noeth (llinell werdd). Ar gyfer defnydd adnoddau, gadewch i ni ddangos Kubernetes pur (llinell borffor) heb CNI a gweld faint o adnoddau ychwanegol y mae CNI yn eu defnyddio.

Gadewch i ni ddechrau gyda'r cof. Dyma'r gwerth cyfartalog ar gyfer RAM nodau (ac eithrio byfferau a storfa) mewn MB wrth drosglwyddo.

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Defnydd cof

Dangosodd Wlanen a Kube-router ganlyniadau rhagorol - dim ond 50 MB. Mae gan Calico a Canal 70 yr un. Mae WeaveNet yn amlwg yn defnyddio mwy na'r lleill - 130 MB, ac mae Cilium yn defnyddio cymaint â 400.
Nawr, gadewch i ni wirio defnydd amser y CPU. Yn nodedig: mae’r diagram yn dangos nid canrannau, ond ppm, hynny yw, 38 ppm ar gyfer “haearn noeth” yw 3,8%. Dyma'r canlyniadau:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Defnydd CPU

Mae Calico, Canal, Wlanen a Kube-router yn CPU effeithlon iawn - dim ond 2% yn fwy na Kubernetes heb CNI. Mae WeaveNet ymhell ar ei hôl hi gyda 5% ychwanegol, ac yna Cilium ar 7%.

Dyma grynodeb o'r defnydd o adnoddau:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)

Canlyniadau

Tabl gyda'r holl ganlyniadau:

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Canlyniadau meincnod cyffredinol

Casgliad

Yn y rhan olaf byddaf yn mynegi fy marn oddrychol ar y canlyniadau. Cofiwch fod y meincnod hwn ond yn profi trwygyrch un cysylltiad ar glwstwr bach iawn (3 nod). Nid yw'n berthnasol i glystyrau mawr (<50 nod) neu gysylltiadau cyfochrog.

Rwy'n argymell defnyddio'r CNIs canlynol yn dibynnu ar y senario:

  • Oes gennych chi yn eich clwstwr nodau gydag ychydig o adnoddau (sawl GB o RAM, sawl craidd) ac nid oes angen nodweddion diogelwch arnoch chi - dewiswch Flannel. Dyma un o'r CNIs mwyaf cost-effeithiol. Ac mae'n gydnaws ag amrywiaeth eang o bensaernïaeth (amd64, braich, braich64, ac ati). Yn ogystal, mae hwn yn un o ddau (y llall yw Cilium) CNI a all bennu'r MTU yn awtomatig, felly nid oes rhaid i chi ffurfweddu unrhyw beth. Mae Kube-router hefyd yn addas, ond nid yw mor safonol a bydd angen i chi ffurfweddu'r MTU â llaw.
  • Os oes angen amgryptio'r rhwydwaith er diogelwch, cymerwch GwehydduNet. Peidiwch ag anghofio nodi'r maint MTU os ydych yn defnyddio fframiau jumbo, a galluogi amgryptio trwy nodi cyfrinair trwy newidyn amgylchedd. Ond mae'n well anghofio am berfformiad - dyna gost amgryptio.
  • I defnydd arferol советую Calico. Defnyddir y CNI hwn yn helaeth mewn amrywiol offer defnyddio Kubernetes (Kops, Kubespray, Rancher, ac ati). Yn yr un modd â WeaveNet, gwnewch yn siŵr eich bod chi'n ffurfweddu'r MTU yn ConfigMap os ydych chi'n defnyddio fframiau jumbo. Mae'n offeryn aml-swyddogaethol sy'n effeithlon o ran defnydd adnoddau, perfformiad a diogelwch.

Ac yn olaf, rwy'n eich cynghori i ddilyn y datblygiad ciliwm. Mae gan y CNI hwn dîm gweithgar iawn sy'n gweithio llawer ar eu cynnyrch (nodweddion, arbedion adnoddau, perfformiad, diogelwch, clystyru...) ac mae ganddyn nhw gynlluniau diddorol iawn.

Canlyniadau Meincnodi Ategyn Rhwydweithio Kubernetes (CNI) dros Rwydwaith 10 Gbps (diweddarwyd Ebrill 2019)
Diagram gweledol ar gyfer dewis CNI

Ffynhonnell: hab.com

Ychwanegu sylw