Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Sa a se aktyalizasyon mwen an referans anvan yo, ki kounye a kouri sou Kubernetes 1.14 ak dènye vèsyon CNI a nan mwa avril 2019.

Premye a tout, mwen vle remèsye ekip Cilium la: mesye yo te ede m 'tcheke ak korije scripts siveyans mezi yo.

Ki sa ki chanje depi Novanm 2018

Men sa ki chanje depi lè sa a (si w enterese):

Flanèl rete koòdone CNI ki pi rapid ak pi senp, men li toujou pa sipòte politik rezo ak chifreman.

Romana pa sipòte ankò, kidonk nou retire li nan referans lan.

WeaveNet kounye a sipòte politik rezo pou Antre ak Sòti! Men, pwodiktivite te diminye.

Nan Calico, ou toujou bezwen manyèlman configured gwosè maksimòm pake (MTU) pou pi bon pèfòmans. Calico ofri de opsyon pou enstale CNI, kidonk, ou ka fè san yo pa yon depo ETCD separe:

  • estoke eta nan API Kubernetes kòm yon magazen done (gwosè gwoup < 50 nœuds);
  • eta estoke nan API Kubernetes kòm yon magazen done ak yon prokurasyon Typha pou soulaje chaj la sou API K8S (gwosè gwoup > 50 nœuds).

Calico te anonse sipò politik nivo aplikasyon yo sou tèt Istio pou sekirite nan nivo aplikasyon an.

Cilium kounye a sipòte chifreman! Cilium bay chifreman ak tinèl IPSec epi li ofri yon altènativ a rezo WeaveNet chiffres. Men, WeaveNet se pi vit pase Cilium ak chifreman pèmèt.

Cilium se kounye a pi fasil pou deplwaye gras a operatè ETCD entegre.

Ekip Cilium la te eseye koupe kèk pwa nan CNI li yo pa diminye konsomasyon memwa ak depans CPU, men konpetitè li yo toujou pi lejè.

Kontèks referans

Referans lan ap kouri sou twa sèvè Supermicro ki pa virtualize ak yon switch Supermicro 10 Gb. Sèvè yo konekte dirèkteman nan switch la atravè pasif DAC SFP + câbles epi yo configuré sou menm VLAN ak ankadreman jumbo (MTU 9000).

Kubernetes 1.14.0 enstale sou Ubuntu 18.04 LTS ak Docker 18.09.2 (vèsyon Docker default nan lage sa a).

Pou amelyore repwodiksyon, nou deside toujou konfigirasyon mèt la sou premye ne, mete pati nan sèvè nan referans nan dezyèm sèvè a, ak pati nan kliyan sou twazyèm lan. Pou fè sa, nou itilize NodeSelector nan deplwaman Kubernetes.

Nou pral dekri rezilta referans yo sou echèl sa a:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)

Chwazi yon CNI pou yon referans

Sa a se yon referans sèlman pou CNI nan lis la nan seksyon an sou kreye yon gwoup mèt ak kubeadm Gade dokiman ofisyèl Kubernetes la. Nan 9 CNI yo, nou pral pran sèlman 6: nou pral eskli sa ki difisil pou enstale ak/oswa ki pa travay san konfigirasyon dapre dokiman an (Romana, Contiv-VPP ak JuniperContrail/TungstenFabric).

Nou pral konpare CNI sa yo:

  • Calico v3.6
  • Canal v3.6 (esansyèlman flanèl pou rezo + Calico kòm yon firewall)
  • Cilium 1.4.2
  • Flanèl 0.11.0
  • Kube-routeur 0.2.5
  • WeaveNet 2.5.1

Enstalasyon

Plis CNI a se fasil enstale, se pi bon premye enpresyon nou an pral. Tout CNI ki soti nan referans yo trè fasil pou enstale (ak youn oswa de kòmandman).

Kòm nou te di, sèvè yo ak switch yo configuré ak ankadreman jumbo pèmèt (nou mete MTU a 9000). Nou ta kontan si CNI otomatikman detèmine MTU a ki baze sou konfigirasyon adaptè yo. Sepandan, sèlman Cilium ak Flannel jere sa a. Rès CNI yo gen demann sou GitHub pou ajoute otomatik dekouvèt MTU, men nou pral konfigirasyon li manyèlman lè nou chanje ConfigMap pou Calico, Canal ak Kube-router, oswa pase yon varyab anviwònman pou WeaveNet.

Ki pwoblèm ki genyen ak MTU ki pa kòrèk? Dyagram sa a montre diferans ki genyen ant WeaveNet ak MTU default ak ankadreman jumbo aktive:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Ki jan MTU afekte debi?

Nou te wè ki jan MTU enpòtan pou pèfòmans, kounye a ann wè ki jan CNI nou yo otomatikman detèmine li:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
CNI otomatikman detekte MTU

Graf la montre ke ou bezwen konfigirasyon MTU pou Calico, Canal, Kube-routeur ak WeaveNet pou pèfòmans optimal. Cilium ak Flannel yo te kapab kòrèkteman detèmine MTU a tèt yo san okenn paramèt.

Безопасность

Nou pral konpare sekirite CNI nan de aspè: kapasite nan ankripte done transmèt ak aplikasyon politik rezo Kubernetes (ki baze sou tès reyèl, pa dokiman).

Se sèlman de CNI yo ankripte done: Cilium ak WeaveNet. Ankripteman WeaveNet pèmèt lè w mete modpas chifreman an kòm yon varyab anviwònman CNI. NAN dokiman WeaveNet dekri li nan yon fason konplike, men tout bagay fèt tou senpleman. Ankripteman sily konfigirasyon pa kòmandman, pa kreye sekrè Kubernetes, ak nan modifikasyon nan daemonSet la (yon ti kras pi konplike pase nan WeaveNet, men Cilium gen etap pa etap. enstriksyon).

Kòm pou aplikasyon an nan politik rezo, yo te reyisi Calico, Canal, Cilium ak WeaveNet, kote ou ka configured règ Antre ak Sòti. Pou Kube-routeur gen règ sèlman pou Ingress, ak Flanèl Pa gen okenn politik rezo ditou.

Men rezilta jeneral yo:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Rezilta referans pèfòmans sekirite

Pwodiktivite

Referans sa a montre debi an mwayèn sou omwen twa kouri nan chak tès. Nou teste pèfòmans TCP ak UDP (itilize iperf3), aplikasyon reyèl tankou HTTP (ak Nginx ak curl) oswa FTP (ak vsftpd ak curl) epi finalman pèfòmans aplikasyon an lè l sèvi avèk chifreman ki baze sou SCP (itilize kliyan ak sèvè OpenSSH).

Pou tout tès yo, nou te fè yon referans metal vid (liy vèt) pou konpare pèfòmans CNI ak pèfòmans rezo natif natal. Isit la nou itilize menm echèl la, men nan koulè:

  • Jòn = trè bon
  • Orange = bon
  • Blue = konsa-konsa
  • Wouj = move

Nou p ap pran CNI ki pa kòrèk epi n ap montre rezilta sèlman pou CNI ki gen MTU ki kòrèk la. (Remak: Cilium pa kòrèkteman kalkile MTU a si ou pèmèt chifreman, kidonk w ap oblije manyèlman diminye MTU a 8900 nan vèsyon 1.4. Pwochen vèsyon an, 1.5, fè sa otomatikman.)

Men rezilta yo:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Pèfòmans TCP

Tout CNI yo te fè byen nan referans TCP la. CNI ak chifreman lag byen lwen dèyè paske chifreman se chè.

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Pèfòmans UDP

La tou, tout CNI yo ap mache byen. CNI ak chifreman te montre prèske menm rezilta a. Cilium se yon ti kras dèyè konpetisyon an, men li la sèlman 2,3% nan metal fè, kidonk li pa yon move rezilta. Pa bliye ke sèlman Cilium ak Flannel detèmine MTU a kòrèkteman tèt yo, e sa yo se rezilta yo san okenn konfigirasyon adisyonèl.

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)

E yon aplikasyon reyèl? Kòm ou ka wè, pèfòmans jeneral pou HTTP se yon ti kras pi ba pase pou TCP. Menm si ou itilize HTTP ak TCP, nou konfigirasyon iperf3 nan referans TCP pou evite yon kòmansman dousman ki ta afekte referans HTTP. Tout moun te fè yon bon travay isit la. Kube-routeur gen yon avantaj klè, men WeaveNet pa t 'fè byen: apeprè 20% pi mal pase metal fè. Cilium ak WeaveNet ak chifreman sanble vrèman tris.

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)

Avèk FTP, yon lòt pwotokòl ki baze sou TCP, rezilta yo varye. Flanèl ak Kube-routeur fè travay la, men Calico, Canal ak Cilium yo yon ti kras dèyè epi yo apeprè 10% pi dousman pase metal fè. WeaveNet se dèyè pa otan ke 17%, men WeaveNet chiffres se 40% devan Cilium chiffres.

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)

Avèk SCP nou ka imedyatman wè konbyen SSH chifreman koute nou. Prèske tout CNI yo ap fè byen, men WeaveNet ap retade ankò. Cilium ak WeaveNet ak chifreman yo espere pi move a akòz doub chifreman (SSH + CNI).

Men yon tablo rezime ak rezilta yo:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)

Konsomasyon resous

Koulye a, ann konpare ki jan CNI konsome resous anba chay lou (pandan transfè TCP, 10 Gbps). Nan tès pèfòmans nou konpare CNI ak metal fè (liy vèt). Pou konsomasyon resous, ann montre pi Kubernetes (liy koulè wouj violèt) san CNI epi wè konbyen resous siplemantè CNI konsome.

Ann kòmanse ak memwa. Men valè mwayèn pou RAM nœuds yo (eksepte tanpon ak kachèt) nan MB pandan transfè.

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Konsomasyon memwa

Flanèl ak Kube-routeur te montre rezilta ekselan - sèlman 50 MB. Calico ak Canal chak gen 70. WeaveNet byen klè konsome plis pase lòt yo - 130 MB, ak Cilium itilize otan ke 400.
Koulye a, kite a tcheke konsomasyon nan tan CPU. Remakab: dyagram nan montre pa pousantaj, men ppm, se sa ki, 38 ppm pou "fè fè" se 3,8%. Men rezilta yo:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
CPU konsomasyon

Calico, Canal, Flannel ak Kube-routeur yo trè efikas CPU - sèlman 2% plis pase Kubernetes san CNI. WeaveNet lag byen lwen dèyè ak yon siplemantè 5%, ki te swiv pa Cilium nan 7%.

Men yon rezime konsomasyon resous:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)

Rezilta

Tablo ak tout rezilta yo:

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Jeneral rezilta referans

Konklizyon

Nan dènye pati a mwen pral eksprime opinyon subjectif mwen sou rezilta yo. Sonje ke referans sa a sèlman teste debi yon sèl koneksyon sou yon grap piti anpil (3 nœuds). Li pa aplike nan gwo grap (<50 nœuds) oswa koneksyon paralèl.

Mwen rekòmande pou itilize CNI sa yo depann de senaryo a:

  • ou genyen nan grap ou a nœuds ak kèk resous (plizyè GB RAM, plizyè nwayo) epi ou pa bezwen karakteristik sekirite - chwazi Flanèl. Sa a se youn nan CNI ki pi pri-efikas. Epi li konpatib ak yon gran varyete achitekti (amd64, bra, arm64, elatriye). Anplis de sa, sa a se youn nan de (lòt la se Cilium) CNI ki ka otomatikman detèmine MTU a, kidonk, ou pa bezwen konfigirasyon anyen. Kube-routeur tou apwopriye, men li pa kòm estanda epi w ap bezwen manyèlman configured MTU la.
  • Si sa nesesè ankripte rezo a pou sekirite, pran WeaveNet. Pa bliye presize gwosè MTU a si w ap itilize ankadreman jumbo, epi pèmèt chifreman lè w espesifye yon modpas atravè yon varyab anviwònman. Men, li pi bon bliye sou pèfòmans - sa a se pri a nan chifreman.
  • Pou itilizasyon nòmal Mwen konseye endyèn. CNI sa a lajman itilize nan divès zouti deplwaman Kubernetes (Kops, Kubespray, Rancher, elatriye). Menm jan ak WeaveNet, asire w ke w configured MTU a nan ConfigMap si w ap itilize ankadreman jumbo. Li se yon zouti milti-fonksyonèl ki efikas an tèm de konsomasyon resous, pèfòmans ak sekirite.

E finalman, mwen konseye w swiv devlopman an sily. CNI sa a gen yon ekip trè aktif ki travay anpil sou pwodwi yo (karakteristik, ekonomize resous, pèfòmans, sekirite, clustering...) epi yo gen plan trè enteresan.

Rezilta referans Kubernetes Network Plugin (CNI) sou rezo 10 Gbps (Mizajou: Avril 2019)
Dyagram vizyèl pou seleksyon CNI

Sous: www.habr.com

Add nouvo kòmantè