Dan huwa l-aġġornament tiegħi
L-ewwelnett, irrid nirringrazzja lit-tim ta 'Cilium: il-guys għenuni jiċċekkja u jikkoreġi l-iskripts tal-monitoraġġ tal-metriċi.
Dak li nbidel minn Novembru 2018
Hawn dak li nbidel minn dakinhar (jekk int interessat):
Flanella tibqa 'l-interface CNI l-aktar mgħaġġla u sempliċi, iżda xorta ma tappoġġjax il-politiki tan-netwerk u l-encryption.
Romana m'għadhiex appoġġjata, għalhekk neħħenieha mill-benchmark.
WeaveNet issa jappoġġja politiki tan-netwerk għal Ingress u Egress! Iżda l-produttività naqset.
F'Calico, għad trid tikkonfigura manwalment id-daqs massimu tal-pakkett (MTU) għall-aħjar prestazzjoni. Calico joffri żewġ għażliet għall-installazzjoni tas-CNI, sabiex tkun tista' tagħmel mingħajr repożitorju separat tal-ETCD:
- stat tal-ħażna fl-API Kubernetes bħala maħżen tad-dejta (daqs tal-cluster < 50 nodi);
- stat tal-ħażna fl-API Kubernetes bħala maħżen tad-dejta bi prokura Typha biex ittaffi t-tagħbija fuq l-API K8S (daqs tal-cluster > 50 nodi).
Calico ħabbar appoġġ
Cilium issa jappoġġja l-encryption! Cilium jipprovdi encryption bil-mini IPSec u joffri alternattiva għan-netwerk encrypted WeaveNet. Iżda WeaveNet huwa aktar mgħaġġel minn Cilium bil-kriptaġġ attivat.
Cilium issa huwa aktar faċli biex jintuża grazzi għall-operatur integrat tal-ETCD.
It-tim ta 'Cilium ipprova jnaqqas xi piż mis-CNI tiegħu billi jnaqqas il-konsum tal-memorja u l-ispejjeż tas-CPU, iżda l-kompetituri tiegħu għadhom eħfef.
Kuntest ta' referenza
Il-punt ta’ referenza jitmexxa fuq tliet servers Supermicro mhux virtwali bi swiċċ Supermicro ta’ 10 Gb. Is-servers huma konnessi direttament mal-iswiċċ permezz ta 'kejbils DAC SFP+ passivi u huma kkonfigurati fuq l-istess VLAN b'frejms jumbo (MTU 9000).
Kubernetes 1.14.0 installat fuq Ubuntu 18.04 LTS b'Docker 18.09.2 (il-verżjoni default Docker f'dan ir-rilaxx).
Biex intejbu r-riproduċibilità, iddeċidejna li dejjem tikkonfigura l-kaptan fuq l-ewwel node, poġġi l-parti tas-server tal-punt ta 'referenza fuq it-tieni server, u l-parti tal-klijent fuq it-tielet. Biex nagħmlu dan, nużaw NodeSelector fl-iskjeramenti ta' Kubernetes.
Aħna ser niddeskrivu r-riżultati tal-benchmark fuq l-iskala li ġejja:
Għażla ta' CNI għal benchmark
Dan huwa punt ta' referenza biss għal CNI mil-lista fit-taqsima
Se nqabblu s-CNIs li ġejjin:
- Calico v3.6
- Canal v3.6 (essenzjalment Flannel għan-netwerking + Calico bħala firewall)
- Cilium 1.4.2
- Flanella 0.11.0
- Kube-router 0.2.5
- WeaveNet 2.5.1
Installazzjoni
Iktar ma jkun faċli li tinstalla s-CNI, aħjar tkun l-ewwel impressjoni tagħna. Is-CNIs kollha mill-benchmark huma faċli ħafna biex jiġu installati (b'kmandi wieħed jew tnejn).
Kif għidna, is-servers u l-iswiċċ huma kkonfigurati b'frejms jumbo attivati (aħna nissettjaw l-MTU għal 9000). Inkunu kuntenti jekk is-CNI tiddetermina awtomatikament l-MTU abbażi tal-konfigurazzjoni tal-adapters. Madankollu, Cilium u Flannel biss irnexxielhom dan. Il-bqija tas-CNIs għandhom talbiet fuq GitHub biex iżidu skoperta awtomatika tal-MTU, iżda aħna ser tikkonfiguraha manwalment billi nibdlu l-ConfigMap għal Calico, Canal u Kube-router, jew ngħaddu varjabbli ambjentali għal WeaveNet.
X'inhi l-problema b'MTU żbaljat? Din id-dijagramma turi d-differenza bejn WeaveNet b'MTU default u frames jumbo attivati:
Kif l-MTU jaffettwa t-throughput?
Rajna kemm huwa importanti l-MTU għall-prestazzjoni, issa ejja naraw kif is-CNIs tagħna jiddeterminawha awtomatikament:
CNI awtomatikament jiskopri MTU
Il-graff turi li għandek bżonn tikkonfigura l-MTU għal Calico, Canal, Kube-router u WeaveNet għall-aħjar prestazzjoni. Cilium u Flannel setgħu jiddeterminaw b'mod korrett l-MTU huma stess mingħajr ebda settings.
sigurtà
Se nqabblu s-sigurtà tas-CNI f'żewġ aspetti: il-kapaċità li nikkriptaw id-dejta trażmessa u l-implimentazzjoni tal-politiki tan-netwerk Kubernetes (ibbażati fuq testijiet reali, mhux dokumentazzjoni).
Żewġ CNI biss jikkriptaw id-dejta: Cilium u WeaveNet. Encryption WeaveNet ppermettiet billi tissettja l-password tal-kriptaġġ bħala varjabbli ambjentali CNI. IN
Fir-rigward tal-implimentazzjoni tal-politika tan-netwerk, huma rnexxielhom Calico, Canal, Cilium u WeaveNet, li fiha tista' tikkonfigura r-regoli ta' Dħul u Ħruġ. Għal Kube-router hemm regoli biss għall-Ingress, u Flannel M'hemm l-ebda politika tan-netwerk għal kollox.
Hawn huma r-riżultati ġenerali:
Riżultati ta' Benchmark tal-Prestazzjoni tas-Sigurtà
Produttività
Dan il-punt ta' referenza juri t-throughput medju fuq mill-inqas tliet ġirjiet ta' kull test. Aħna nittestjaw il-prestazzjoni ta 'TCP u UDP (bl-użu ta' iperf3), applikazzjonijiet reali bħal HTTP (b'Nginx u curl) jew FTP (b' vsftpd u curl) u finalment il-prestazzjoni tal-applikazzjoni bl-użu ta 'encryption ibbażat fuq SCP (bl-użu ta' klijent u server OpenSSH).
Għat-testijiet kollha, għamilna punt ta' referenza tal-metall vojt (linja ħadra) biex inqabblu l-prestazzjoni tas-CNI mal-prestazzjoni tan-netwerk nattiv. Hawnhekk nużaw l-istess skala, iżda bil-kulur:
- Isfar = tajjeb ħafna
- Oranġjo = tajjeb
- Blu = hekk hekk
- Aħmar = ħażin
Aħna mhux se nieħdu CNIs ikkonfigurati ħażin u nuru biss riżultati għal CNIs bl-MTU korrett. (Nota: Cilium ma jikkalkulax b'mod korrett l-MTU jekk tippermetti l-encryption, għalhekk ikollok tnaqqas manwalment l-MTU għal 8900 fil-verżjoni 1.4. Il-verżjoni li jmiss, 1.5, tagħmel dan awtomatikament.)
Hawn huma r-riżultati:
Is-CNIs kollha marru tajjeb fil-benchmark tat-TCP. Is-CNI b'encryption għadha lura ħafna minħabba li l-encryption hija għalja.
Hawnhekk ukoll, is-CNIs kollha sejrin tajjeb. CNI b'encryption wera kważi l-istess riżultat. Cilium huwa ftit wara l-kompetizzjoni, iżda huwa biss 2,3% tal-metall vojt, għalhekk mhuwiex riżultat ħażin. Tinsiex li Cilium u Flannel biss iddeterminaw l-MTU b'mod korrett huma stess, u dawn huma r-riżultati tagħhom mingħajr ebda konfigurazzjoni addizzjonali.
Xi ngħidu dwar applikazzjoni reali? Kif tistgħu taraw, il-prestazzjoni ġenerali għal HTTP hija kemxejn inqas minn għal TCP. Anke jekk tuża HTTP ma 'TCP, aħna kkonfigurajna iperf3 fil-benchmark TCP biex nevitaw bidu bil-mod li jaffettwa l-benchmark HTTP. Kulħadd għamel xogħol tajjeb hawn. Kube-router għandu vantaġġ ċar, iżda WeaveNet ma wettaqx tajjeb: madwar 20% agħar minn bare metal. Cilium u WeaveNet b'encryption jidhru tassew imdejjaq.
Bl-FTP, protokoll ieħor ibbażat fuq TCP, ir-riżultati jvarjaw. Flannel u Kube-router jagħmlu x-xogħol, iżda Calico, Canal u Cilium huma ftit lura u huma madwar 10% aktar bil-mod mill-metall vojt. WeaveNet jinsab lura sa 17%, iżda WeaveNet ikkodifikat huwa 40% qabel Cilium ikkodifikat.
B'SCP nistgħu naraw immedjatament kemm jiswielna l-encryption SSH. Kważi s-CNIs kollha sejrin tajjeb, iżda WeaveNet reġa' għadu lura. Cilium u WeaveNet b'encryption mistennija huma l-agħar minħabba l-encryption doppja (SSH + CNI).
Hawnhekk hawn tabella fil-qosor bir-riżultati:
Konsum tar-riżorsi
Issa ejja nqabblu kif is-CNI jikkonsma r-riżorsi taħt tagħbijiet tqal (matul it-trasferiment TCP, 10 Gbps). Fit-testijiet tal-prestazzjoni nqabblu CNI mal-metall vojt (linja ħadra). Għall-konsum tar-riżorsi, ejja nuru Kubernetes pur (linja vjola) mingħajr CNI u ara kemm CNI tikkonsma riżorsi żejda.
Nibdew bil-memorja. Hawn hu l-valur medju għar-RAM tan-nodi (esklużi buffers u cache) f'MB waqt it-trasferiment.
Flannel u Kube-router wrew riżultati eċċellenti - 50 MB biss. Calico u Canal kull wieħed għandhom 70. WeaveNet jikkunsma b'mod ċar aktar mill-oħrajn - 130 MB, u Cilium juża daqs 400.
Issa ejja niċċekkjaw il-konsum tal-ħin tas-CPU. Ta’ min jinnota: id-dijagramma turi mhux perċentwali, iżda ppm, jiġifieri, 38 ppm għal "ħadid vojt" huwa 3,8%. Hawn huma r-riżultati:
Calico, Canal, Flannel u Kube-router huma CPU effiċjenti ħafna - 2% biss aktar minn Kubernetes mingħajr CNI. WeaveNet għadu lura ħafna b'5% żejda, segwit minn Cilium b'7%.
Hawn sommarju tal-konsum tar-riżorsi:
Riżultati ta '
Tabella bir-riżultati kollha:
Riżultati ta' referenza ġenerali
Konklużjoni
Fl-aħħar parti se nesprimi l-opinjoni suġġettiva tiegħi dwar ir-riżultati. Ftakar li dan il-punt ta' referenza jittestja biss il-fluss ta' konnessjoni waħda fuq cluster żgħir ħafna (3 nodi). Ma japplikax għal clusters kbar (<50 nodi) jew konnessjonijiet paralleli.
Nirrakkomanda li tuża s-CNIs li ġejjin skont ix-xenarju:
- Għandek fil-cluster tiegħek nodi bi ftit riżorsi (diversi GB ta 'RAM, diversi qlub) u m'għandekx bżonn karatteristiċi ta' sigurtà - agħżel Flannel. Din hija waħda mill-aktar CNIs kosteffettivi. U huwa kompatibbli ma 'varjetà wiesgħa ta' arkitetturi (amd64, arm, arm64, eċċ.). Barra minn hekk, dan huwa wieħed minn tnejn (l-ieħor huwa Cilium) CNI li jistgħu jiddeterminaw awtomatikament l-MTU, sabiex ma jkollokx għalfejn tikkonfigura xejn. Kube-router huwa adattat ukoll, iżda mhuwiex bħala standard u ser ikollok bżonn tikkonfigura manwalment l-MTU.
- Jekk meħtieġ kriptaġġ tan-netwerk għas-sigurtà, ħu WeaveNet. Tinsiex tispeċifika d-daqs MTU jekk qed tuża jumbo frames, u ppermetti l-encryption billi tispeċifika password permezz ta' varjabbli ambjentali. Iżda huwa aħjar li tinsa dwar il-prestazzjoni - dik hija l-ispiża tal-kriptaġġ.
- Għal użu normali Nagħti parir Calico. Dan is-CNI huwa użat ħafna f'diversi għodod ta 'skjerament ta' Kubernetes (Kops, Kubespray, Rancher, eċċ.). Bħal WeaveNet, kun żgur li tikkonfigura l-MTU f'ConfigMap jekk tuża jumbo frames. Hija għodda multi-funzjonali li hija effiċjenti f'termini ta 'konsum tar-riżorsi, prestazzjoni u sigurtà.
U finalment, nagħtik parir biex issegwi l-iżvilupp Ċilium. Dan is-CNI għandu tim attiv ħafna li jaħdem ħafna fuq il-prodott tagħhom (karatteristiċi, iffrankar tar-riżorsi, prestazzjoni, sigurtà, clustering...) u għandhom pjanijiet interessanti ħafna.
Dijagramma viżwali għall-għażla tas-CNI
Sors: www.habr.com