Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
O la'u fa'afouga lea fa'ailoga muamua, lea o loʻo taʻavale nei i luga o le Kubernetes 1.14 faʻatasi ai ma le CNI lata mai ia Aperila 2019.

Muamua lava, ou te fia faafetai atu i le au Cilium: na fesoasoani mai tama ia te au e siaki ma faasaʻo tusitusiga mataʻituina metrics.

O le a le mea ua suia talu mai Novema 2018

O mea nei na suia talu mai lena taimi (pe a e fiafia):

O le Flannel o lo'o tumau pea le fa'aoga vave ma sili ona faigofie o le CNI, ae e le'o lagolagoina pea faiga fa'avae ma fa'ailoga.

Ua le toe lagolagoina le Romana, o lea ua matou aveesea mai le faʻailoga.

Ua lagolagoina nei e WeaveNet faiga fa'avae feso'ota'iga mo Ingress ma Egress! Ae ua faaitiitia le gaosiga.

I Calico, e mana'omia pea ona e fa'atulagaina ma le lima le lapo'a pito maualuga (MTU) mo le fa'atinoga sili. Calico e ofoina atu ni filifiliga se lua mo le faʻapipiʻiina o le CNI, o lea e mafai ai ona e faia e aunoa ma se isi faleoloa ETCD:

  • teuina le setete i le Kubernetes API e avea o se faleoloa faʻamaumauga (faʻapipiʻi tele <50 nodes);
  • teuina le setete i le Kubernetes API e avea o se faleoloa faʻamaumauga ma se sui o Typha e faʻamama ai le uta i luga o le K8S API (cluster size> 50 nodes).

Calico faalauiloa le lagolago faiga faavae tulaga talosaga i luga ole Istio mo le saogalemu tulaga-le talosaga.

Ua lagolagoina nei e Cilium le fa'ailoga! O le Cilium e tuʻuina atu faʻamatalaga faʻatasi ma IPSec tunnels ma ofoina atu se isi mea i le upega tafailagi WeaveNet. Ae o WeaveNet e sili atu le vave nai lo Cilium ma faʻamatalaga faʻamaonia.

O le Cilium ua faigofie nei ona faʻapipiʻi faʻafetai i le faʻaogaina o le ETCD.

Ua taumafai le au a le Cilium e tipi le mamafa mai lana CNI e ala i le faʻaitiitia o le mafaufau ma le tau o le CPU, ae o loʻo mama pea ona tagata tauva.

Tala fa'atatau

O le fa'ailoga o lo'o fa'atautaia i luga o sapalai Supermicro e tolu e le'o fa'amasani fa'atasi ma le 10 Gb Supermicro ki. O 'au'aunaga e feso'ota'i sa'o i le ki e ala i uaea DAC SFP + ma fa'atulagaina i luga o le VLAN tutusa ma fa'avaa jumbo (MTU 9000).

Kubernetes 1.14.0 faʻapipiʻi i le Ubuntu 18.04 LTS ma Docker 18.09.2 (le faʻaoga Docker version i lenei faʻasalalauga).

Ina ia faʻaleleia le toe faʻaleleia, na matou filifili e faʻapipiʻi i taimi uma le matai i luga o le node muamua, tuʻu le vaega o le server o le faʻailoga i luga o le server lona lua, ma le vaega o le kalani i le lona tolu. Ina ia faia lenei mea, matou te faʻaogaina le NodeSelector i faʻasalalauga Kubernetes.

O le a matou fa'amatalaina fa'ai'uga fa'atatau ile fua lea:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)

Filifilia o se CNI mo se fa'ailoga

Ole fa'ailoga lea mo CNI mai le lisi ile vaega e uiga i le fatuina o se tasi matai fuifui ma kubeadm Va'ai le pepa aloaia Kubernetes. Mai le 9 CNIs, o le a matou naʻo le 6: o le a matou faʻateʻaina i latou e faigata ona faʻapipiʻi ma / pe le galue e aunoa ma le faʻatulagaina e tusa ai ma faʻamaumauga (Romana, Contiv-VPP ma JuniperContrail / TungstenFabric).

O le a matou faʻatusatusa CNI nei:

  • Calico v3.6
  • Canal v3.6 (o le Flannel mo fesoʻotaʻiga + Calico o se pa puipui)
  • Cilium 1.4.2
  • Flannel 0.11.0
  • Kube-router 0.2.5
  • WeaveNet 2.5.1

faatulagaga

O le faigofie o le CNI e faʻapipiʻi, o le sili atu foi lea o le tatou lagona muamua. O CNI uma mai le faʻailoga e matua faigofie lava ona faʻapipiʻi (faʻatasi ma le tasi pe lua faʻatonuga).

E pei ona matou fai atu, o loʻo faʻapipiʻiina le 'auʻaunaga ma le ki faʻatasi ma faʻamalama jumbo ua mafai (matou seti le MTU i le 9000). Matou te fiafia pe a otometi lava ona fuafuaina e le CNI le MTU e fa'atatau i le fetuutuuna'iga. Ae ui i lea, naʻo Cilium ma Flannel na faʻatautaia lenei mea. O isi vaega o le CNI o loʻo i ai talosaga ile GitHub e faʻaopoopoina le MTU otometi, ae o le a matou faʻatulagaina ma le lima e ala i le suia o le ConfigMap mo Calico, Canal ma Kube-router, poʻo le pasia o se siosiomaga fesuiaiga mo WeaveNet.

O le a le fa'afitauli ile MTU le sa'o? O lenei ata o loʻo faʻaalia ai le eseesega i le va o WeaveNet faʻatasi ai ma MTU faʻaletonu ma faʻavaa jumbo ua mafai:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
E fa'afefea ona a'afia e le MTU le gaosiga?

Ua matou va'ai i le taua tele o le MTU mo le fa'atinoga, o lea se'i va'ai pe fa'apefea ona fa'amautu e a tatou CNI:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
E otometi lava ona iloa e le CNI le MTU

O le kalafi o loʻo faʻaalia ai e te manaʻomia le faʻatulagaina o le MTU mo Calico, Canal, Kube-router ma WeaveNet mo le faʻatinoina lelei. Na mafai e Cilium ma Flannel ona sa'o le MTU e aunoa ma ni fa'atulagaga.

Puipuiga

O le a matou faʻatusatusaina le saogalemu o le CNI i ni vaega se lua: o le mafai ona faʻailogaina faʻamatalaga tuʻuina atu ma le faʻatinoina o faiga faʻavae fesoʻotaʻiga Kubernetes (faʻavae i suʻega moni, ae le o faʻamaumauga).

Na'o le lua CNI fa'ailoga fa'amatalaga: Cilium ma WeaveNet. Fa'ailoga WeaveNet e mafai e ala i le setiina o upu fa'ailoga e fai ma suiga ole siosiomaga CNI. IN fa'amaumauga WeaveNet faʻamatalaina i se auala faigata, ae o mea uma e fai faigofie. Fa'ailoga Silia faʻatulagaina e faʻatonuga, e ala i le fatuina o mealilo a Kubernetes, ma e ala i le fesuiaiga o le daemonSet (sili atu le faigata nai lo le WeaveNet, ae o Cilium o loʻo i ai i lea laasaga ma lea laasaga. faatonuga).

Ae mo le faʻatinoina o faiga faʻavae fesoʻotaʻiga, ua latou manuia Calico, Canal, Cilium ma WeaveNet, lea e mafai ona e faʻatulagaina tulafono Ingress ma Egress. Mo Kube-router e iai tulafono na'o Ingress, ma Fululanu E leai se faiga fa'avae feso'ota'iga.

O fa'ai'uga atoa nei:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
Saogalemu Fa'atinoga Fa'ailoga Fa'ai'uga

Gaioiga

O lenei fa'ailoga e fa'aalia ai le averesi o mea e maua i luga ole tolu fa'asologa o su'ega ta'itasi. Matou te suʻeina le faʻatinoga o le TCP ma le UDP (faʻaaogaina iperf3), faʻaoga moni e pei o HTTP (faʻatasi ma Nginx ma curl) poʻo FTP (faʻatasi ma vsftpd ma curl) ma mulimuli ane faʻaogaina le faʻaogaina o le SCP-based encryption (faʻaaogaina le tagata faʻatau ma le server OpenSSH).

Mo su'ega uma, sa matou faia se fa'ailoga u'amea (laina lanu meamata) e fa'atusatusa ai le fa'atinoga o le CNI ma le fa'atinoga o feso'ota'iga. O iinei tatou te faʻaogaina ai le fua tutusa, ae i le lanu:

  • Samasama = lelei tele
  • moli = lelei
  • Blue = fa'apea
  • Mumu = leaga

Matou te le ave'ese le fa'atulagaina o CNI ma o le a fa'aalia na'o fa'ai'uga mo CNI ma le MTU sa'o. (Manatua: Cilium e le sa'o le fa'atatauina o le MTU pe afai e te fa'aogaina fa'amatalaga, o lea e tatau ai ona e fa'aitiitia ma le lima le MTU i le 8900 i le version 1.4. O le isi fa'asologa, 1.5, e otometi lava.)

O i'uga nei:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
TCP Fa'atinoga

O CNI uma na fa'atino lelei i le TCP benchmark. O le CNI ma faʻamatalaga faʻamatalaga e mamao i tua ona o faʻamatalaga e taugata.

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
UDP fa'atinoga

O iinei foi, o loʻo manuia uma CNI. O le CNI faʻatasi ai ma faʻamatalaga na faʻaalia toetoe lava tutusa le iʻuga. O le Cilium o loʻo i tua laʻititi o le tauvaga, ae naʻo le 2,3% o le uʻamea, e le o se taunuuga leaga. Aua ne'i galo e na'o Cilium ma Flannel na latou fuafuaina sa'o le MTU, ma o latou taunuuga ia e aunoa ma se fa'aopoopo fa'aopoopo.

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)

Ae faapefea se talosaga moni? E pei ona e vaʻaia, o le faʻatinoga atoa mo HTTP e laʻititi laʻititi nai lo le TCP. E tusa lava pe e te faʻaogaina HTTP i le TCP, matou te faʻapipiʻi le iperf3 i le TCP benchmark e aloese ai mai se amataga lemu e ono afaina ai le HTTP benchmark. Na faia e tagata uma se galuega lelei iinei. O le Kube-router e i ai se avanoa manino, ae o le WeaveNet e leʻi lelei le gaioiga: e tusa ma le 20% le leaga nai lo le uʻamea. Cilium ma WeaveNet faʻatasi ai ma faʻailoga e foliga faʻanoanoa tele.

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)

Faatasi ai ma le FTP, o le isi TCP-faʻavae protocol, e eseese iʻuga. Flannel ma Kube-router e fai le galuega, ae o Calico, Canal ma Cilium e laʻititi i tua ma e tusa ma le 10% lemu nai lo le uʻamea. WeaveNet o loʻo i tua e tusa ma le 17%, ae faʻailoga WeaveNet e 40% i luma ole Cilium faʻailoga.

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)

Faatasi ai ma le SCP e mafai ona tatou iloa vave le tau o le SSH encryption tau. Toeitiiti lava o CNI uma o loʻo manuia, ae o WeaveNet o loʻo toe tuʻu i tua. Cilium ma WeaveNet faʻatasi ai ma faʻamatalaga e faʻamoemoe e sili ona leaga ona o faʻailoga faʻalua (SSH + CNI).

Ole laulau fa'atootoga lea ma fa'ai'uga:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)

Fa'aaogāga puna'oa

Se'i o tatou fa'atusatusa le fa'aogaina e le CNI o punaoa i lalo o uta mamafa (i le taimi o le TCP transfer, 10 Gbps). I faʻataʻitaʻiga faʻataʻitaʻiga matou te faʻatusatusa le CNI ma le uamea (laina lanumeamata). Mo le fa'aaogaina o puna'oa, se'i o tatou fa'aali le Kubernetes mama (laina viole) e aunoa ma le CNI ma va'ai pe fia ni alagaoa fa'aopoopo e fa'aaogaina e le CNI.

Tatou amata i le manatua. O le tau averesi lea mo nodes 'RAM (e le aofia ai faʻamaʻi ma cache) i le MB i le taimi o le fesiitaiga.

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
Fa'aaogāga manatua

Flannel ma Kube-router na faʻaalia iʻuga lelei - naʻo le 50 MB. Calico ma Canal e tofu i latou ma le 70. WeaveNet e sili atu le faʻaaogaina nai lo isi - 130 MB, ma le Cilium e faʻaaogaina e tusa ma le 400.
Se'i o tatou siaki le taimi ole taimi ole CPU. Matauina: o le ata o loʻo faʻaalia e le o pasene, ae o le ppm, o lona uiga, 38 ppm mo le "uʻamea leai se mea" e 3,8%. O i'uga nei:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
fa'aaogaina o le PPU

Calico, Canal, Flannel ma Kube-router e sili ona lelei le PPU - naʻo le 2% sili atu nai lo Kubernetes e aunoa ma le CNI. WeaveNet e mamao i tua ma le 5% faaopoopo, sosoo ai ma le Cilium i le 7%.

O se aotelega lenei o le fa'aaogaina o punaoa:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)

O taunuʻuga

Laupapa ma fa'ai'uga uma:

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
Fa'ai'uga fa'atatau lautele

iʻuga

I le vaega mulimuli o le a ou faʻaalia loʻu manatu faʻapitoa i taunuuga. Manatua o lenei faʻailoga e naʻo le suʻeina o le gaosiga o se fesoʻotaʻiga tasi i luga o se fuifui laʻititi (3 nodes). E le fa'atatau i fuifui tetele (<50 nodes) po'o feso'ota'iga tutusa.

Ou te fautuaina le faʻaaogaina o CNI nei e faʻatatau i le faʻaaliga:

  • E i ai i lau fuifui nodes e itiiti lava punaoa (tele GB o le RAM, tele cores) ma e te le manaʻomia ni mea saogalemu - filifili Fululanu. Ole tasi lea ole CNI sili ona taugofie. Ma e fetaui ma le tele o ituaiga fausaga (amd64, lima, arm64, ma isi). E le gata i lea, o le tasi lea o le lua (o le isi o le Cilium) CNI e mafai ona otometi lava ona fuafua le MTU, o lea e te le tau faʻatulagaina ai se mea. E talafeagai foi le Kube-router, ae e le o se tulaga masani ma e te manaʻomia le faʻatulagaina ma le lima o le MTU.
  • Afai e manaʻomia fa'ailoga le feso'ota'iga mo le saogalemu, ave WeaveNet. Aua ne'i galo e fa'amaoti le tele o le MTU pe afai o lo'o e fa'aogaina fa'avaa jumbo, ma fa'agaoioi le fa'ailoga e ala i le fa'ama'otiina o se upu fa'aoga e ala i se fesuiaiga o le si'osi'omaga. Ae e sili atu le faʻagalo e uiga i faʻatinoga - o le tau o faʻamatalaga.
  • mo fa'aoga masani Ou te fautua atu calico. O lenei CNI o loʻo faʻaaogaina lautele i meafaigaluega faʻapipiʻi Kubernetes (Kops, Kubespray, Rancher, ma isi). E pei o WeaveNet, ia mautinoa e faʻapipiʻi le MTU i le ConfigMap pe a faʻaogaina faʻavaa jumbo. O se meafaigaluega e tele-galuega e lelei i le tulaga o le faʻaaogaina o punaoa, faʻatinoga ma le saogalemu.

Ma le mea mulimuli, ou te fautuaina oe e mulimuli i le atinaʻe Silia. O lenei CNI o loʻo i ai se 'au malosi tele e galulue tele i luga oa latou oloa (foliga, faʻasaoina o punaoa, faʻatinoga, saogalemu, faʻapipiʻi ...) ma e iai a latou fuafuaga sili ona manaia.

Kubernetes Network Plugin (CNI) Fa'ailoga Fa'ai'uga i luga ole 10 Gbps Network (Fa'afou: Aperila 2019)
Ata va'aia mo filifiliga CNI

puna: www.habr.com

Faaopoopo i ai se faamatalaga