Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Seo an ùrachadh agam slat-tomhais roimhe, a tha a-nis a’ ruith air Kubernetes 1.14 leis an dreach CNI as ùire bhon Ghiblean 2019.

An toiseach, tha mi airson taing a thoirt do sgioba Cilium: chuidich na balaich mi gus na sgriobtaichean sgrùdaidh meatrach a sgrùdadh agus a cheartachadh.

Na tha air atharrachadh bhon t-Samhain 2018

Seo na tha air atharrachadh bhon uairsin (ma tha ùidh agad):

Tha Flannel fhathast mar an eadar-aghaidh CNI as luaithe agus as sìmplidh, ach chan eil e fhathast a’ toirt taic do phoileasaidhean lìonra agus crioptachadh.

Chan eil Romana a’ faighinn taic tuilleadh, agus mar sin tha sinn air a thoirt air falbh bhon t-slat-tomhais.

Tha WeaveNet a-nis a’ toirt taic do phoileasaidhean lìonra airson Ingress and Egress! Ach tha cinneasachd air a dhol sìos.

Ann an Calico, feumaidh tu fhathast am meud pacaid as àirde (MTU) a rèiteachadh le làimh airson an coileanadh as fheàrr. Tha Calico a’ tabhann dà roghainn airson CNI a chuir a-steach, gus an urrainn dhut a dhèanamh às aonais stòr ETCD air leth:

  • a’ stòradh stàite ann an API Kubernetes mar stòr dàta (meud brabhsair <50 nod);
  • a’ stòradh stàite ann an API Kubernetes mar stòr dàta le neach-ionaid Typha gus faochadh a thoirt don luchd air an K8S API (meud cnuasachaidh> nodan 50).

Dh'ainmich Calico taic poileasaidhean ìre tagraidh a bharrachd air Istio airson tèarainteachd ìre tagraidh.

Tha Cilium a-nis a’ toirt taic do chrioptachadh! Bidh Cilium a’ toirt seachad crioptachadh le tunailean IPSec agus a’ tabhann roghainn eile seach an lìonra crioptaichte WeaveNet. Ach tha WeaveNet nas luaithe na Cilium le crioptachadh air a chomasachadh.

Tha Cilium a-nis nas fhasa a chleachdadh le taing don ghnìomhaiche ETCD togte.

Tha sgioba Cilium air feuchainn ri beagan cuideam a ghearradh bhon CNI aca le bhith a’ lughdachadh caitheamh cuimhne agus cosgaisean CPU, ach tha na farpaisich aca fhathast nas aotroime.

Co-theacs comharrachaidh

Tha an slat-tomhais air a ruith air trì frithealaichean Supermicro neo-bhrìgheil le tionndadh 10 Gb Supermicro. Tha na frithealaichean ceangailte gu dìreach ris an tionndadh tro chàbaill fulangach DAC SFP + agus tha iad air an rèiteachadh air an aon VLAN le frèamaichean jumbo (MTU 9000).

Kubernetes 1.14.0 air a chuir a-steach air Ubuntu 18.04 LTS le Docker 18.09.2 (an dreach bunaiteach Docker san fhoillseachadh seo).

Gus ath-riochdachadh a leasachadh, chuir sinn romhainn am maighstir a rèiteachadh an-còmhnaidh air a ’chiad nód, cuir am pàirt frithealaiche den slat-tomhais air an dàrna frithealaiche, agus pàirt an neach-dèiligidh air an treas fear. Gus seo a dhèanamh, bidh sinn a’ cleachdadh NodeSelector ann an cleachdadh Kubernetes.

Bheir sinn cunntas air na toraidhean slat-tomhais air an sgèile a leanas:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)

A’ taghadh CNI airson slat-tomhais

Is e slat-tomhais a tha seo a-mhàin airson CNI bhon liosta san roinn mu bhith a’ cruthachadh aon phrìomh bhuidheann le kubeadm Faic na sgrìobhainnean oifigeil Kubernetes. De na 9 CNIn, cha ghabh sinn ach 6: cuiridh sinn a-mach an fheadhainn a tha doirbh a stàladh agus/no nach eil ag obair gun rèiteachadh a rèir nan sgrìobhainnean (Romana, Contiv-VPP agus JuniperContrail/TungstenFabric).

Nì sinn coimeas eadar na CNIn a leanas:

  • Calico v3.6
  • Canàl v3.6 (gu dearbh Flannel airson lìonrachadh + Calico mar bhalla-teine)
  • Cilium 1.4.2
  • Flannal 0.11.0
  • Kube-router 0.2.5
  • WeaveNet 2.5.1

suidheachadh

Mar as fhasa an CNI a chuir a-steach, is ann as fheàrr a bhios a’ chiad bheachd againn. Tha a h-uile CNI bhon t-slat-tomhais glè fhurasta a stàladh (le àithne no dhà).

Mar a thuirt sinn, tha na frithealaichean agus an tionndadh air an rèiteachadh le frèaman jumbo air an comasachadh (shuidhich sinn an MTU gu 9000). Bhiodh sinn toilichte nan deidheadh ​​​​CNI a dhearbhadh gu fèin-ghluasadach air an MTU stèidhichte air rèiteachadh an luchd-atharrachaidh. Ach, cha robh ach Cilium agus Flannel a’ riaghladh seo. Tha iarrtasan aig a’ chòrr de na CNIn air GitHub gus lorg MTU fèin-ghluasadach a chuir ris, ach rèitichidh sinn e le làimh le bhith ag atharrachadh an ConfigMap airson Calico, Canal agus Kube-router, no a’ dol seachad air caochladair àrainneachd airson WeaveNet.

Dè an duilgheadas a th’ ann le MTU ceàrr? Tha an diagram seo a’ sealltainn an eadar-dhealachaidh eadar WeaveNet le frèamaichean àbhaisteach MTU agus jumbo air an comasachadh:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Ciamar a tha MTU a’ toirt buaidh air tar-chur?

Chunnaic sinn cho cudromach sa tha MTU airson coileanadh, a-nis chì sinn mar a bhios na CNIn againn ga dhearbhadh gu fèin-ghluasadach:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Bidh CNI gu fèin-obrachail a’ lorg MTU

Tha an graf a’ sealltainn gum feum thu an MTU a rèiteachadh airson Calico, Canal, Kube-router agus WeaveNet airson an coileanadh as fheàrr. Bha Cilium agus Flannel comasach air an MTU fhèin a dhearbhadh gu ceart às aonais suidheachadh sam bith.

Tèarainteachd

Nì sinn coimeas eadar tèarainteachd CNI ann an dà thaobh: an comas dàta tar-chuir a chrioptachadh agus buileachadh poileasaidhean lìonra Kubernetes (stèidhichte air fìor dheuchainnean, chan e sgrìobhainnean).

Chan eil ach dà CNI a’ crioptachadh dàta: Cilium agus WeaveNet. Crioptachadh WeaveNet air a chomasachadh le bhith a’ suidheachadh am facal-faire crioptachaidh mar chaochladair àrainneachd CNI. ANNS sgrìobhainnean Tha WeaveNet ga mhìneachadh ann an dòigh iom-fhillte, ach tha a h-uile dad air a dhèanamh gu sìmplidh. Crioptachadh cilium air a rèiteachadh le òrdughan, le bhith a’ cruthachadh dìomhaireachdan Kubernetes, agus tro bhith ag atharrachadh an daemonSet (beagan nas toinnte na ann an WeaveNet, ach tha ceum air cheum aig Cilium stiùireadh).

A thaobh buileachadh poileasaidh lìonra, tha iad air soirbheachadh Calico, Canàl, Cilium agus WeaveNet, anns an urrainn dhut riaghailtean Ingress and Egress a rèiteachadh. Airson Kube-router chan eil ann ach riaghailtean airson Ingress, agus Flannel Chan eil poileasaidhean lìonraidh ann idir.

Seo na toraidhean iomlan:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Toraidhean Slatan-tomhais Coileanaidh Sàbhailteachd

Coileanadh

Tha an slat-tomhais seo a’ sealltainn an gluasad cuibheasach thairis air co-dhiù trì ruith de gach deuchainn. Bidh sinn a’ dèanamh deuchainn air coileanadh TCP agus UDP (a’ cleachdadh iperf3), fìor thagraidhean leithid HTTP (le Nginx agus curl) no FTP (le vsftpd agus curl) agus mu dheireadh coileanadh tagraidh a’ cleachdadh crioptachadh stèidhichte air SCP (a’ cleachdadh teachdaiche is frithealaiche OpenSSH).

Airson a h-uile deuchainn, rinn sinn slat-tomhais meatailt lom (loidhne uaine) gus coimeas a dhèanamh eadar coileanadh CNI agus coileanadh lìonra dùthchasach. An seo bidh sinn a’ cleachdadh an aon sgèile, ach ann an dath:

  • Buidhe = glè mhath
  • Orains = math
  • Gorm = mar sin
  • Dearg = dona

Cha ghabh sinn CNIan a tha air an rèiteachadh gu ceàrr agus cha sheall sinn ach toraidhean airson CNIn leis an MTU ceart. (Nòta: Chan eil Cilium a’ tomhas an MTU gu ceart ma chuireas tu an comas crioptachadh, mar sin feumaidh tu an MTU a lughdachadh le làimh gu 8900 ann an dreach 1.4. Bidh an ath dhreach, 1.5, a’ dèanamh seo gu fèin-ghluasadach.)

Seo na toraidhean:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Coileanadh TCP

Rinn a h-uile CNI gu math ann an slat-tomhais TCP. Tha CNI le crioptachadh fada air dheireadh oir tha crioptachadh daor.

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Coileanadh UDP

An seo cuideachd, tha a h-uile CNI a’ dèanamh gu math. Sheall CNI le crioptachadh cha mhòr an aon toradh. Tha Cilium beagan air cùl na farpais, ach chan eil ann ach 2,3% de mheatailt lom, agus mar sin chan e droch thoradh a th’ ann. Na dì-chuimhnich nach robh ach Cilium agus Flannel a 'dearbhadh an MTU gu ceart iad fhèin, agus is iad sin na toraidhean aca gun rèiteachadh a bharrachd.

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)

Dè mu dheidhinn tagradh fìor? Mar a chì thu, tha coileanadh iomlan airson HTTP beagan nas ìsle na airson TCP. Fiù ma chleachdas tu HTTP le TCP, shuidhich sinn iperf3 ann an slat-tomhais TCP gus tòiseachadh slaodach a sheachnadh a bheireadh buaidh air slat-tomhais HTTP. Rinn a h-uile duine obair mhath an seo. Tha buannachd shoilleir aig Kube-router, ach cha do rinn WeaveNet gu math: mu 20% nas miosa na meatailt lom. Tha Cilium agus WeaveNet le crioptachadh a’ coimhead gu math brònach.

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)

Le FTP, protocol eile stèidhichte air TCP, bidh toraidhean ag atharrachadh. Bidh Flannel agus Kube-router a’ dèanamh an obair, ach tha Calico, Canal agus Cilium beagan air dheireadh agus tha iad timcheall air 10% nas slaodaiche na meatailt lom. Tha WeaveNet air dheireadh cho mòr ri 17%, ach tha WeaveNet crioptaichte 40% air thoiseach air Cilium crioptaichte.

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)

Le SCP chì sinn sa bhad dè a chosgas crioptachadh SSH dhuinn. Tha cha mhòr a h-uile CNI a’ dèanamh gu math, ach tha WeaveNet air dheireadh a-rithist. Tha dùil gur e Cilium agus WeaveNet le crioptachadh an fheadhainn as miosa air sgàth crioptachadh dùbailte (SSH + CNI).

Seo clàr geàrr-chunntas leis na toraidhean:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)

Caitheamh stòrais

A-nis dèanamaid coimeas eadar mar a bhios CNI ag ithe ghoireasan fo luchdan trom (rè gluasad TCP, 10 Gbps). Ann an deuchainnean coileanaidh bidh sinn a’ dèanamh coimeas eadar CNI agus meatailt lom (loidhne uaine). Airson caitheamh ghoireasan, seallaidh sinn Kubernetes fìor (loidhne purpaidh) às aonais CNI agus faic cia mheud goireas a bharrachd a bhios CNI ag ithe.

Feuch an tòisich sinn le cuimhne. Seo an luach cuibheasach airson RAM nodan (ach a-mhàin bufairean agus tasgadan) ann am MB aig àm gluasaid.

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Caitheamh cuimhne

Sheall Flannel agus Kube-router toraidhean sàr-mhath - dìreach 50 MB. Tha 70 aig Calico agus Canal gach fear. Bidh WeaveNet gu soilleir ag ithe barrachd na an fheadhainn eile - 130 MB, agus bidh Cilium a’ cleachdadh suas ri 400.
A-nis leig dhuinn sùil a thoirt air caitheamh ùine CPU. Sònraichte: chan eil an diagram a’ sealltainn ceudadan, ach tha ppm, is e sin, 38 ppm airson “iarann ​​​​lom” 3,8%. Seo na toraidhean:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Caitheamh CPU

Tha Calico, Canal, Flannel agus Kube-router gu math èifeachdach le CPU - dìreach 2% nas motha na Kubernetes às aonais CNI. Tha WeaveNet fada air dheireadh le 5% a bharrachd, air a leantainn le Cilium aig 7%.

Seo geàrr-chunntas air caitheamh ghoireasan:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)

Builean

Clàr leis a h-uile toradh:

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Toraidhean comharran coitcheann

co-dhùnadh

Anns a 'phàirt mu dheireadh cuiridh mi an cèill mo bheachd pearsanta air na toraidhean. Cuimhnich nach bi an slat-tomhais seo ach a’ dèanamh deuchainn air trochur aon cheangal air cruinneachadh glè bheag (3 nodan). Chan eil e a’ buntainn ri cruinneachaidhean mòra (<50 nodan) no ceanglaichean co-shìnte.

Tha mi a’ moladh na CNIn a leanas a chleachdadh a rèir an t-suidheachaidh:

  • A bheil agad anns a’ bhraisle agad nodan le glè bheag de ghoireasan (grunn GB de RAM, grunn choraichean) agus chan fheum thu feartan tèarainteachd - tagh Flannel. Is e seo aon de na CNIan as èifeachdaiche a thaobh cosgais. Agus tha e co-chòrdail ri measgachadh farsaing de ailtireachd (amd64, gàirdean, arm64, msaa). A bharrachd air an sin, is e seo aon de dhà (is e Cilium am fear eile) CNI as urrainn an MTU a dhearbhadh gu fèin-ghluasadach, gus nach fheum thu dad a rèiteachadh. Tha Kube-router cuideachd freagarrach, ach chan eil e cho àbhaisteach agus feumaidh tu an MTU a rèiteachadh le làimh.
  • Ma tha feum air crioptachadh an lìonra airson sàbhailteachd, gabh WeaveNet. Na dìochuimhnich am meud MTU a shònrachadh ma tha thu a’ cleachdadh frèamaichean jumbo, agus cuir an comas crioptachadh le bhith a’ sònrachadh facal-faire tro chaochladair àrainneachd. Ach tha e nas fheàrr dìochuimhneachadh mu choileanadh - is e sin cosgais crioptachaidh.
  • airson cleachdadh àbhaisteach советую Calico. Tha an CNI seo air a chleachdadh gu farsaing ann an grunn innealan cleachdadh Kubernetes (Kops, Kubespray, Rancher, msaa). Coltach ri WeaveNet, bi cinnteach gun cuir thu an MTU air dòigh ann an ConfigMap ma chleachdas tu frèamaichean jumbo. Is e inneal ioma-ghnìomhach a th’ ann a tha èifeachdach a thaobh caitheamh ghoireasan, coileanadh agus tèarainteachd.

Agus mu dheireadh, tha mi a 'toirt comhairle dhut an leasachadh a leantainn cilium. Tha sgioba gu math gnìomhach aig an CNI seo a bhios ag obair gu mòr air an toradh aca (feartan, sàbhalaidhean ghoireasan, coileanadh, tèarainteachd, cruinneachadh ...) agus tha planaichean gu math inntinneach aca.

Toraidhean comharrachaidh plugan Kubernetes Networking (CNI) thairis air lìonra 10 Gbps (air ùrachadh sa Ghiblean 2019)
Diagram lèirsinneach airson taghadh CNI

Source: www.habr.com

Cuir beachd ann