Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Ity no fanavaozako benchmark teo aloha, izay mandeha amin'ny Kubernetes 1.14 amin'izao fotoana izao miaraka amin'ny kinova CNI farany amin'ny Aprily 2019.

Voalohany indrindra, te-hisaotra ny ekipa Cilium aho: nanampy ahy hijery sy hanitsy ny script fanaraha-maso metrika.

Inona no niova nanomboka tamin'ny Novambra 2018

Ity ny zavatra niova hatramin'izay (raha liana ianao):

Ny flannel dia mijanona ho fifandraisana haingana sy tsotra indrindra amin'ny CNI, saingy tsy manohana ny politikan'ny tambajotra sy ny fanafenana.

Tsy tohanana intsony i Romana, ka nesorinay tamin'ny benchmark.

WeaveNet izao dia manohana ny politikan'ny tambajotra ho an'ny Ingress sy Egress! Nihena anefa ny vokatra.

Ao amin'ny Calico, mbola mila amboarina amin'ny tananao ny haben'ny fonosana ambony indrindra (MTU) ho an'ny fampisehoana tsara indrindra. Calico dia manolotra safidy roa amin'ny fametrahana CNI, ka azonao atao tsy misy tahiry ETCD misaraka:

  • fitehirizana fanjakana ao amin'ny Kubernetes API ho toy ny fitehirizana angon-drakitra (habeny <50 nodes);
  • fitehirizana fanjakana ao amin'ny Kubernetes API ho toy ny fitehirizana data miaraka amin'ny proxy Typha hanamaivanana ny enta-mavesatra ao amin'ny K8S API (habe mivondrona > 50 nodes).

Nanambara ny fanohanana i Calico politika ambaratonga fampiharana eo an-tampon'ny Istio ho fiarovana amin'ny ambaratonga fampiharana.

Cilium izao dia manohana ny encryption! Ny Cilium dia manome encryption miaraka amin'ny tonelina IPSec ary manolotra safidy ho an'ny tambajotra WeaveNet miafina. Fa ny WeaveNet dia haingana kokoa noho ny Cilium miaraka amin'ny fanafenana alefa.

Mora kokoa ny mametraka ny Cilium noho ny mpandraharaha ETCD naorina.

Ny ekipan'ny Cilium dia nanandrana nanapaka ny lanja tamin'ny CNI-ny tamin'ny fampihenana ny fanjifana fahatsiarovana sy ny vidin'ny CPU, saingy mbola maivana kokoa ny mpifaninana aminy.

contexte benchmark

Ny benchmark dia mandeha amin'ny mpizara Supermicro telo tsy virtoaly miaraka amin'ny switch Supermicro 10 Gb. Ny mpizara dia mifandray mivantana amin'ny switch amin'ny alΓ lan'ny tariby DAC SFP + passive ary amboarina amin'ny VLAN mitovy amin'ny frame jumbo (MTU 9000).

Kubernetes 1.14.0 napetraka ao amin'ny Ubuntu 18.04 LTS miaraka amin'ny Docker 18.09.2 (ny dikan-teny Docker default amin'ity famoahana ity).

Mba hanatsarana ny reproducibility, dia nanapa-kevitra ny hanitsy foana ny tompony amin'ny node voalohany, hametraka ny lohamilina ampahany amin'ny benchmark amin'ny lohamilina faharoa, ary ny mpanjifa ampahany amin'ny fahatelo. Mba hanaovana izany dia mampiasa NodeSelector amin'ny fametrahana Kubernetes izahay.

Hamaritra ny valin'ny benchmark amin'ny ambaratonga manaraka izahay:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)

Misafidiana CNI ho mari-pamantarana

Ity dia mari-pamantarana ho an'ny CNI avy amin'ny lisitra ao amin'ny fizarana momba ny famoronana cluster master iray miaraka amin'ny kubeadm Jereo ny antontan-taratasy ofisialy Kubernetes. Amin'ireo CNI 9 dia 6 ihany no horaisinay: hesorinay ireo sarotra apetraka sy/na tsy miasa raha tsy misy ny config araka ny antontan-taratasy (Romana, Contiv-VPP ary JuniperContrail/TungstenFabric).

Hampitahantsika ireto CNI manaraka ireto:

  • Calico v3.6
  • Canal v3.6 (Fanela tena ilaina ho an'ny tambajotra + Calico ho rindrina afo)
  • Cilium 1.4.2
  • Flannel 0.11.0
  • Kube-router 0.2.5
  • WeaveNet 2.5.1

fametrahana

Arakaraka ny hametrahan'ny CNI mora kokoa no ho tsara kokoa ny fahatsapana voalohany ho antsika. Ny CNI rehetra avy amin'ny benchmark dia tena mora apetraka (miaraka amin'ny baiko iray na roa).

Araka ny voalazanay, ny lohamilina sy ny switch dia namboarina tamin'ny jumbo frames (nametraka ny MTU ho 9000 izahay). Ho faly izahay raha ny CNI no mamaritra ho azy ny MTU mifototra amin'ny firafitry ny adaptatera. Ny Cilium sy Flannel ihany anefa no nahavita izany. Ny sisa amin'ny CNIs dia manana fangatahana ao amin'ny GitHub mba hampiditra ny MTU mandeha ho azy, fa hamboarinay amin'ny tanana izany amin'ny alΓ lan'ny fanovana ny ConfigMap ho an'ny Calico, Canal ary Kube-router, na mandalo fari-piainana ho an'ny WeaveNet.

Inona no olana amin'ny MTU diso? Ity kisary ity dia mampiseho ny fahasamihafana misy eo amin'ny WeaveNet miaraka amin'ny MTU default sy ny frame jumbo:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Inona no fiantraikan'ny MTU amin'ny throughput?

Hitantsika ny maha zava-dehibe ny MTU amin'ny fampandehanana, andeha hojerentsika ny fomba hamaritan'ny CNI azy ho azy:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Ny CNI dia mahita ho azy ny MTU

Ny grafika dia mampiseho fa mila manamboatra ny MTU ho an'ny Calico, Canal, Kube-router ary WeaveNet ianao mba hahazoana fahombiazana tsara. Cilium sy Flannel dia afaka namaritra tsara ny MTU ny tenany tsy misy filaharana.

fiarovana

Ampitahainay amin'ny lafiny roa ny fiarovana ny CNI: ny fahafahana manidy ny angona ampitaina sy ny fampiharana ny politikan'ny tambajotra Kubernetes (mifototra amin'ny andrana tena izy, fa tsy ny antontan-taratasy).

CNI roa ihany no manao encryption: Cilium sy WeaveNet. fanafenana WeaveNet azo atao amin'ny fametrahana ny tenimiafina encryption ho fari-piainan'ny CNI. IN tahirin-kevitra WeaveNet dia manoritsoritra azy amin'ny fomba sarotra, saingy vita tsotra izao ny zava-drehetra. fanafenana cilium namboarina tamin'ny baiko, tamin'ny famoronana tsiambaratelo Kubernetes, ary tamin'ny alΓ lan'ny fanovana ny daemonSet (sarotra kokoa noho ny ao amin'ny WeaveNet, fa ny Cilium dia manana tsikelikely. toromarika).

Mikasika ny fampiharana ny politikan’ny tambajotra dia tafita izy ireo Calico, Canal, Cilium ary WeaveNet, izay ahafahanao manamboatra fitsipika Ingress sy Egress. HO AN'NY Kube-router misy fitsipika ho an'ny Ingress ihany, ary Flannel Tsy misy politikan'ny tambajotra mihitsy.

Ireto ny vokatra ankapobeny:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Valiny mari-pamantarana ny fahombiazan'ny fiarovana

vokatra

Ity mari-pamantarana ity dia mampiseho ny salan'isa azo avy amin'ny fihodinana telo farafahakeliny isaky ny fitsapana. Mitsapa ny fahombiazan'ny TCP sy UDP izahay (mampiasa iperf3), fampiharana tena izy toa ny HTTP (miaraka amin'ny Nginx sy curl) na FTP (miaraka amin'ny vsftpd sy curl) ary farany ny fampisehoana fampiharana amin'ny alΓ lan'ny encryption mifototra amin'ny SCP (mampiasa ny mpanjifa sy ny server OpenSSH).

Ho an'ny fitsapana rehetra, dia nanao mari-pamantarana metaly tsy misy pentina (tsipika maitso) izahay mba hampitahana ny zava-bitan'ny CNI amin'ny fahombiazan'ny tambajotra teratany. Eto izahay dia mampiasa mizana mitovy, fa amin'ny loko:

  • Mavo = tena tsara
  • Orange = tsara
  • Manga = so-so
  • Mena = ratsy

Tsy handray CNI diso namboarina izahay ary haneho valiny ho an'ny CNI manana MTU marina ihany. (Fanamarihana: Ny Cilium dia tsy manao kajy tsara ny MTU raha avelanao ny encryption, ka tsy maintsy ahenanao amin'ny tanana ny MTU ho 8900 amin'ny version 1.4. Ny dikan-teny manaraka, 1.5, dia manao izany ho azy.)

Ireto ny valiny:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
TCP Performance

Ny CNI rehetra dia nahavita tsara tamin'ny benchmark TCP. Ny CNI misy encryption dia tara lavitra satria lafo ny encryption.

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Fampisehoana UDP

Eto koa dia mandeha tsara ny CNI rehetra. Ny CNI miaraka amin'ny encryption dia nampiseho vokatra saika mitovy. Ny Cilium dia ao ambadiky ny fifaninanana, saingy 2,3% amin'ny metaly tsy misy dikany izany, ka tsy dia ratsy ny vokatra. Aza adino fa ny Cilium sy ny Flannel ihany no namaritra ny MTU araka ny tokony ho izy, ary ireo no valiny tsy misy fanampim-panazavana fanampiny.

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)

Ahoana ny amin'ny fampiharana tena izy? Araka ny hitanao, ny fampisehoana ankapobeny ho an'ny HTTP dia ambany kely noho ny TCP. Na dia mampiasa HTTP amin'ny TCP aza ianao, dia nanamboatra iperf3 tao amin'ny benchmark TCP izahay mba hisorohana ny fiaingana miadana izay hisy fiantraikany amin'ny mari-pamantarana HTTP. Nanao asa tsara ny rehetra teto. Ny Kube-router dia manana tombony mazava, fa ny WeaveNet dia tsy nahavita tsara: eo amin'ny 20% eo ho eo noho ny metaly miboridana. Cilium sy WeaveNet miaraka amin'ny encryption dia tena mampalahelo.

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)

Miaraka amin'ny FTP, protocole hafa mifototra amin'ny TCP, miovaova ny valiny. Ny flannel sy ny Kube-router no manao an'ilay asa, fa ny Calico, Canal ary Cilium dia ao aoriana kely ary eo amin'ny 10% miadana kokoa noho ny metaly tsy misy dikany. WeaveNet dia ao ambadiky ny 17%, fa ny WeaveNet encrypted dia 40% alohan'ny Cilium miafina.

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)

Miaraka amin'ny SCP dia afaka mahita avy hatrany isika hoe ohatrinona ny vidin'ny encryption SSH antsika. Saika mandeha tsara avokoa ny CNI, fa ny WeaveNet indray no mihemotra. Cilium sy WeaveNet miaraka amin'ny encryption no heverina ho ratsy indrindra noho ny encryption indroa (SSH + CNI).

Ity misy tabilao famintinana misy ny valiny:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)

Fanjifana loharanon-karena

Andeha isika hampitaha ny fomba lanin'ny CNI ny loharanon-karena amin'ny enta-mavesatra (mandritra ny famindrana TCP, 10 Gbps). Amin'ny fitsapana fampisehoana dia mampitaha ny CNI amin'ny metaly miboridana (tsipika maitso). Ho fanjifana loharanon-karena, andao asehoy ny Kubernetes madiodio (tsipika volomparasy) tsy misy CNI ary jereo hoe firy ny loharanon-karena fanampiny lanin'ny CNI.

Aoka isika hanomboka amin'ny fahatsiarovana. Ity ny sanda antonony ho an'ny RAM nodes (ankoatra ny buffers sy cache) amin'ny MB mandritra ny famindrana.

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Fanjifana fahatsiarovana

Flannel sy Kube-router dia nampiseho vokatra tsara - 50 MB ihany. Ny Calico sy ny Canal dia samy manana 70. Ny WeaveNet dia mandany mihoatra noho ny hafa - 130 MB, ary mampiasa hatramin'ny 400 ny Cilium.
Andeha hojerentsika izao ny fanjifana fotoana CPU. Tsara homarihina: tsy ny isan-jato no asehon'ny kisary, fa ny ppm, izany hoe 38 ppm ho an'ny "vy miboridana" dia 3,8%. Ireto ny valiny:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Fanjifana CPU

Calico, Canal, Flannel ary Kube-router dia tena mahomby amin'ny CPU - 2% fotsiny noho ny Kubernetes tsy misy CNI. Lavitra lavitra ny WeaveNet miaraka amin'ny 5% fanampiny, arahin'ny Cilium amin'ny 7%.

Ity misy famintinana ny fampiasana loharanon-karena:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)

vokatra

Tabilao misy valiny rehetra:

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Valiny benchmark ankapobeny

famaranana

Amin'ny ampahany farany dia haneho ny hevitro manokana momba ny vokatra aho. Tsarovy fa ity mari-pamantarana ity dia mitsapa ny fampandehanana fifandraisana tokana amin'ny cluster kely (3 nodes). Tsy mihatra amin'ny cluster lehibe (<50 nodes) na fifandraisana parallèle.

Manoro hevitra ny hampiasa ireto CNI manaraka ireto aho arakaraka ny toe-javatra:

  • Misy ao amin'ny cluster ve ianao nodes manana loharano vitsy (GB an'ny RAM maromaro, cores maromaro) ary tsy mila fiarovana ianao - misafidy Flannel. Io no iray amin'ireo CNI lafo vidy indrindra. Ary mifanaraka amin'ny maritrano isan-karazany (amd64, arm, arm64, sns.). Ankoatra izany, ity dia iray amin'ireo roa (ny iray hafa dia Cilium) CNI izay afaka mamaritra ho azy ny MTU, ka tsy mila manamboatra na inona na inona ianao. Mety ihany koa ny Kube-router, saingy tsy araka ny fenitra izany ary mila manamboatra ny MTU ianao.
  • Raha ilaina encrypt ny tambajotra ho fiarovana, raiso WeaveNet. Aza adino ny mamaritra ny haben'ny MTU raha mampiasa frame jumbo ianao, ary avelao ny fanafenana amin'ny alΓ lan'ny famaritana tenimiafina amin'ny alΓ lan'ny fari-piainan'ny tontolo iainana. Saingy tsara kokoa ny manadino ny fampisehoana - izany no vidin'ny fanafenana.
  • ho an'ny fampiasana mahazatra Manoro hevitra aho calico. Ity CNI ity dia ampiasaina betsaka amin'ny fitaovana fandefasana Kubernetes isan-karazany (Kops, Kubespray, Rancher, sns.). Tahaka ny amin'ny WeaveNet, ataovy azo antoka ny manamboatra ny MTU ao amin'ny ConfigMap raha mampiasa frame jumbo. Izy io dia fitaovana maro miasa izay mahomby amin'ny lafiny fanjifana loharanon-karena, fampisehoana ary fiarovana.

Ary farany, manoro hevitra anao aho hanaraka ny fivoarana cilium. Ity CNI ity dia manana ekipa mavitrika izay miasa mafy amin'ny vokatra azony (endri-javatra, fitsitsiana ny loharanon-karena, fampisehoana, fiarovana, clustering ...) ary manana drafitra mahaliana izy ireo.

Kubernetes Networking Plugin (CNI) Valin'ny benchmark mihoatra ny 10 Gbps Network (havaozina Aprily 2019)
Diagram hita maso ho an'ny fifantenana ny CNI

Source: www.habr.com

Add a comment