Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Nke a bụ mmelite m benchmark gara aga, nke na-agba ugbu a na Kubernetes 1.14 yana ụdị CNI kachasị ọhụrụ dịka nke Eprel 2019.

Nke mbụ, achọrọ m ikele ndị otu Cilium: ụmụ okorobịa ahụ nyeere m aka ịlele ma mezie scripts nlekota metrics.

Kedu ihe gbanwere kemgbe Nọvemba 2018

Nke a bụ ihe gbanwere kemgbe ahụ (ọ bụrụ na ị nwere mmasị):

Flannel ka bụ interface CNI kachasị ọsọ yana dị mfe, mana ọ kaghị akwado atumatu netwọkụ na nzuzo.

A naghị akwado Romana, yabụ anyị ewepụla ya na benchmark.

WeaveNet na-akwado atumatu netwọkụ maka Ingress na Egress! Mana nrụpụta ebelatala.

Na Calico, ị ka kwesịrị iji aka hazie nha ngwungwu kachasị (MTU) maka ịrụ ọrụ kacha mma. Calico na-enye nhọrọ abụọ maka ịwụnye CNI, yabụ ị nwere ike ime na-enweghị ebe nchekwa ETCD dị iche:

  • na-echekwa steeti na Kubernetes API dị ka ụlọ ahịa data (ụyọkọ nha <50 ọnụ);
  • na-echekwa steeti na Kubernetes API dị ka ụlọ ahịa data nwere proxy Typha iji belata ibu dị na K8S API (nha ụyọkọ> ọnụ 50).

Calico kwuputara nkwado ngwa larịị amụma n'elu Istio maka nchekwa ọkwa-ngwa.

Cilium na-akwado izo ya ezo! Cilium na-enye ezoro ezo na ọwara IPSec ma na-enye ihe ọzọ na netwọk WeaveNet ezoro ezo. Mana WeaveNet na-agba ọsọ karịa Cilium nwere ike izo ya ezo.

Cilium dị mfe ugbu a ibunye ekele maka onye ọrụ ETCD wuru n'ime ya.

Ndị otu Cilium agbalịwo ibelata ụfọdụ ibu site na CNI ya site na ibelata oriri ebe nchekwa na ọnụ ahịa CPU, mana ndị asọmpi ya ka dị ọkụ.

Nkwakọba akara

A na-eji akara ngosi Supermicro atọ na-abụghị nke mebere ya na mgba ọkụ 10 Gb Supermicro. A na-ejikọta sava ndị ahụ ozugbo na mgba ọkụ site na eriri DAC SFP + na-agafe agafe ma hazie ya n'otu VLAN nwere okpokolo agba jumbo (MTU 9000).

Kubernetes 1.14.0 arụnyere na Ubuntu 18.04 LTS na Docker 18.09.2 (ụdị Docker ndabara na ntọhapụ a).

Iji meziwanye nrụpụta, anyị kpebiri ịhazi nna ukwu mgbe niile na ọnụ ụzọ mbụ, tinye akụkụ nkesa nke benchmark na sava nke abụọ, na akụkụ nke ndị ahịa na nke atọ. Iji mee nke a, anyị na-eji NodeSelector na Kubernetes deployments.

Anyị ga-akọwa nsonaazụ benchmark n'ọtụtụ ndị a:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)

Ịhọrọ CNI maka benchmark

Nke a bụ akara ngosi naanị maka CNI site na ndepụta dị na ngalaba banyere ịmepụta otu nnukwu ụyọkọ na kubeadm Hụ akwụkwọ Kubernetes gọọmentị. N'ime 9 CNI, anyị ga-ewere naanị 6: anyị ga-ewepụ ndị siri ike ịwụnye na / ma ọ bụ na-adịghị arụ ọrụ na-enweghị nhazi dịka akwụkwọ (Romana, Contiv-VPP na JuniperContrail / TungstenFabric).

Anyị ga-atụnyere CNI ndị a:

  • Calico v3.6
  • Canal v3.6 (nke bụ Flannel maka ịkparịta ụka n'Ịntanet + Calico dị ka firewall)
  • Cilium 1.4.2
  • Flannel 0.11.0
  • Kube-Router 0.2.5
  • WeaveNet 2.5.1

ọnọdụ

Dị mfe CNI bụ ịwụnye, ka echiche mbụ anyị ga-adị mma. CNI niile sitere na benchmark dị mfe ịwụnye (ji otu iwu ma ọ bụ abụọ).

Dị ka anyị kwuru, a na-ahazi sava na mgba ọkụ na jumbo okpokolo agba (anyị setịpụrụ MTU na 9000). Anyị ga-enwe obi ụtọ ma ọ bụrụ na CNI kpebisiri ike na MTU dabere na nhazi ihe nkwụnye ọkụ. Agbanyeghị, naanị Cilium na Flannel jisiri nke a. Ndị CNI ndị ọzọ nwere arịrịọ na GitHub ka ịgbakwunye nchọpụta MTU na-akpaghị aka, mana anyị ga-eji aka hazie ya site n'ịgbanwe ConfigMap maka Calico, Canal na Kube-router, ma ọ bụ na-agafe mgbanwe gburugburu maka WeaveNet.

Kedu ihe bụ nsogbu na MTU na-ezighi ezi? Eserese a na-egosi ọdịiche dị n'etiti WeaveNet nwere MTU ndabara na okpokolo agba agbanyere:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Kedu ka MTU si emetụta ntinye aka?

Anyị ahụla ka MTU dị mkpa maka ịrụ ọrụ, ugbu a ka anyị hụ ka CNI anyị si ekpebi ya na-akpaghị aka:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
CNI na-achọpụta MTU na-akpaghị aka

Eserese na-egosi na ịkwesịrị ịhazi MTU maka Calico, Canal, Kube-router na WeaveNet maka ịrụ ọrụ kacha mma. Cilium na Flannel nwere ike ikpebi MTU n'onwe ha n'enweghị ntọala ọ bụla.

Nche

Anyị ga-atụnyere nchekwa CNI n'akụkụ abụọ: ikike izochi data ebugharị na mmejuputa iwu netwọkụ Kubernetes (dabere na ezigbo ule, ọ bụghị akwụkwọ).

Naanị CNI abụọ zoro data: Cilium na WeaveNet. Izo ya ezo WeaveNet enyere ya aka site na ịtọ paswọọdụ nzuzo dị ka mgbanwe gburugburu CNI. N'ime akwụkwọ WeaveNet na-akọwa ya n'ụzọ dị mgbagwoju anya, mana a na-eme ihe niile dị mfe. Izo ya ezo cilium ahaziri site na iwu, site na ịmepụta ihe nzuzo Kubernetes, yana site na mgbanwe nke daemonSet (obere mgbagwoju anya karịa na WeaveNet, mana Cilium nwere nzọụkwụ site na nzọụkwụ. ntụziaka).

Banyere mmejuputa iwu netwọkụ, ha enweela ihe ịga nke ọma Calico, Canal, Cilium na WeaveNet, nke ị nwere ike hazie iwu Ingress na Egress. Maka Kube-router enwere iwu naanị maka Ingress, na Flannel Enweghị atumatu netwọkụ ma ọlị.

Nke a bụ nsonaazụ n'ozuzu ya:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Nsonaazụ Benchmark arụmọrụ Safety

Ubu oke

Ihe nrịbama a na-egosi nkezi ntinye ihe karịrị opekata mpe ọsọ atọ nke ule ọ bụla. Anyị na-anwale arụmọrụ nke TCP na UDP (iji iperf3), ezigbo ngwa dị ka HTTP (ya na Nginx na curl) ma ọ bụ FTP (na vsftpd na curl) na n'ikpeazụ ngwa arụmọrụ site na iji SCP dabeere na nzuzo (iji ahịa na ihe nkesa OpenSSH).

Maka ule niile, anyị mere akara nchara nchara (akara akwụkwọ ndụ akwụkwọ ndụ) iji tụnyere arụmọrụ CNI na arụmọrụ netwọkụ ala. N'ebe a, anyị na-eji otu nha, mana na agba:

  • Yellow = ezigbo mma
  • Orange = mma
  • Blue = so-so
  • Red = ọjọọ

Anyị agaghị ewere CNI ndị ahaziri ezighi ezi ma ga-egosi naanị nsonaazụ maka CNI nwere MTU ziri ezi. (Rịba ama: Cilium anaghị agbakọ MTU n'ụzọ ziri ezi ma ọ bụrụ na ị mee ka izo ya ezo, yabụ ị ga-eji aka belata MTU gaa na 8900 na ụdị 1.4. Ụdị ọzọ, 1.5, na-eme nke a na-akpaghị aka.)

Nke a bụ nsonaazụ:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Arụmọrụ TCP

Ndị CNI niile rụrụ nke ọma na benchmark TCP. CNI nwere ezoro ezo dị n'azụ n'ihi na izo ya ezo dị oke ọnụ.

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
UDP arụmọrụ

N'ebe a kwa, CNI niile na-eme nke ọma. CNI nwere ezoro ezo gosipụtara ihe fọrọ nke nta ka ọ bụrụ otu nsonaazụ ahụ. Cilium dị ntakịrị n'azụ asọmpi ahụ, mana ọ bụ naanị 2,3% nke ọla efu, yabụ na ọ bụghị nsonaazụ ọjọọ. Echefula na ọ bụ naanị Cilium na Flannel kpebiri MTU n'onwe ha, na ndị a bụ nsonaazụ ha na-enweghị nhazi ọ bụla.

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)

Kedu maka ngwa n'ezie? Dịka ị na-ahụ, arụmọrụ HTTP zuru ezu dị ntakịrị ala karịa maka TCP. Ọbụlagodi na ị na-eji HTTP nwere TCP, anyị haziri iperf3 na akara akara TCP iji zere mmalite nwayọ nke ga-emetụta akara akara HTTP. Onye ọ bụla rụrụ ezigbo ọrụ ebe a. Kube-router nwere uru doro anya, mana WeaveNet emeghị nke ọma: ihe dị ka 20% dị njọ karịa ígwè efu. Cilium na WeaveNet nwere ezoro ezo na-ele anya nke ukwuu.

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)

Site na FTP, protocol dabere na TCP ọzọ, nsonaazụ dịgasị iche. Flannel na Kube-router na-arụ ọrụ ahụ, mana Calico, Canal na Cilium dị ntakịrị n'azụ ma dị ihe dịka 10% ji nwayọọ nwayọọ karịa ígwè efu. WeaveNet nọ n'azụ ihe ruru 17%, mana WeaveNet ezoro ezo bụ 40% n'ihu Cilium ezoro ezo.

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)

Site na SCP anyị nwere ike ịhụ ozugbo ego nzuzo SSH na-efu anyị. Ihe fọrọ nke nta ka ọ bụrụ CNI niile na-eme nke ọma, mana WeaveNet na-adaghachi azụ ọzọ. A na-atụ anya na Cilium na WeaveNet nwere ezoro ezo kacha njọ n'ihi izo ya ezo ugboro abụọ (SSH + CNI).

Nke a bụ tebụl nchịkọta nwere nsonaazụ ya:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)

Nri akụrụngwa

Ugbu a, ka anyị tulee otú CNI si eri ihe onwunwe n'okpuru ibu dị arọ (n'oge nnyefe TCP, 10 Gbps). N'ime ule arụmọrụ anyị na-atụnyere CNI na metal efu (akara ndụ ndụ). Maka oriri akụrụngwa, ka anyị gosi Kubernetes dị ọcha (akara odo odo) na-enweghị CNI wee hụ ọnụọgụ ego CNI na-eri.

Ka anyị malite na ebe nchekwa. Nke a bụ nkezi uru maka ọnụ ọnụ 'RAM (ewezuga ihe nchekwa na cache) na MB n'oge mbufe.

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Oriri ebe nchekwa

Flannel na Kube-router gosipụtara ezigbo nsonaazụ - naanị 50 MB. Calico na Canal nke ọ bụla nwere 70. WeaveNet doro anya na-eri karịa ndị ọzọ - 130 MB, na Cilium na-eji ihe ruru 400.
Ugbu a, ka anyị lelee oge oriri CPU. Kwesịrị ịrịba ama: eserese ahụ egosighi pasentị, mana ppm, ya bụ, 38 ppm maka "ígwè efu" bụ 3,8%. Nke a bụ nsonaazụ:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Oriri CPU

Calico, Canal, Flannel na Kube-router na-arụ ọrụ nke ọma CPU - naanị 2% karịa Kubernetes na-enweghị CNI. WeaveNet dị anya n'azụ yana mgbakwunye 5%, Cilium sochiri ya na 7%.

Nke a bụ nchịkọta nke oriri akụrụngwa:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)

Nsonaazụ

Tebụl nwere nsonaazụ niile:

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Nsonaazụ akara izugbe

nkwubi

N'akụkụ ikpeazụ m ga-ekwupụta echiche nke onwe m na nsonaazụ ya. Cheta na akara ngosi a na-anwale naanị ntinye nke otu njikọ na obere ụyọkọ (ọnụ atọ). Ọ naghị emetụta nnukwu ụyọkọ (<3 nodes) ma ọ bụ njikọ yiri ya.

Ana m akwado iji CNI ndị a dabere na ọnọdụ dị:

  • Ị nwere na ụyọkọ gị ọnụ na ihe onwunwe ole na ole (ọtụtụ GB nke RAM, ọtụtụ cores) na ịchọghị njirimara nchekwa - họrọ Flannel. Nke a bụ otu n'ime ndị CNI kachasị ọnụ ahịa. Ọ dakọtara na ụdị ụlọ dị iche iche (amd64, ogwe aka, ogwe aka64, wdg). Na mgbakwunye, nke a bụ otu n'ime abụọ (nke ọzọ bụ Cilium) CNI nke nwere ike ikpebi MTU na-akpaghị aka, yabụ na ị gaghị ahazi ihe ọ bụla. Kube-router dịkwa mma, mana ọ bụghị dị ka ọkọlọtọ na ị ga-achọ iji aka hazie MTU.
  • Ọ bụrụ na ọ dị mkpa encrypt netwọk maka nchekwa, were WeaveNet. Echefula ịkọwapụta nha MTU ma ọ bụrụ na ị na-eji okpokolo agba jumbo, wee mee ka izo ya ezo site na ịkọwa paswọọdụ site na mgbanwe gburugburu ebe obibi. Ma ọ ka mma ichefu banyere arụmọrụ - nke ahụ bụ ọnụ ahịa ezoro ezo.
  • Iji ojiji nkịtị ike calico. A na-eji CNI a n'ọtụtụ ebe na ngwaọrụ ntinye Kubernetes dị iche iche (Kops, Kubespray, Rancher, wdg). Dị ka ọ dị na WeaveNet, jide n'aka na ị ga-ahazi MTU na ConfigMap ma ọ bụrụ na ị na-eji okpokolo agba jumbo. Ọ bụ ngwá ọrụ na-arụ ọrụ dị iche iche nke na-arụ ọrụ nke ọma n'ihe gbasara oriri akụ, arụmọrụ na nchekwa.

N'ikpeazụ, m na-adụ gị ọdụ ka ị gbasoo mmepe ahụ cilium. CNI a nwere otu ndị na-arụsi ọrụ ike na-arụ ọrụ nke ukwuu na ngwaahịa ha (atụmatụ, nchekwa akụ, arụmọrụ, nchekwa, nchịkọta ...) na ha nwere atụmatụ na-adọrọ mmasị.

Kubernetes Networking Plugin (CNI) Benchmark Results karịrị 10 Gbps Network (emelitere Eprel 2019)
Eserese anya maka nhọrọ CNI

isi: www.habr.com

Tinye a comment