CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

TL; DR: Ang tanan nga mga CNI nagtrabaho sumala sa ilang kinahanglan, gawas sa Kube-Router ug Kube-OVN, ang Calico, gawas sa awtomatik nga MTU detection, mao ang labing maayo.

Artikulo-update sa akong nangaging mga pagsusi (2018 ΠΈ 2019), sa panahon sa pagsulay gigamit nako ang Kubernetes 1.19 sa Ubuntu 18.04 nga adunay na-update nga CNIs kaniadtong Agosto 2020.

Sa dili pa kita mosalom sa metrics...

Unsa ang bag-o sukad sa Abril 2019?

  • Mahimong sulayan sa imong kaugalingon nga cluster: Mahimo nimong ipadagan ang mga pagsulay sa imong kaugalingon nga cluster gamit ang among himan Benchmark sa Kubernetes Network: knb
  • Ang bag-ong mga miyembro mitungha
  • Bag-ong mga Scenario: Ang mga karon nga tseke nagpadagan sa "Pod-to-Pod" nga mga pagsulay sa performance sa network, ug usa ka bag-ong script nga "Pod-to-Service" ang gidugang nga nagpadagan sa mga pagsulay nga mas duol sa tinuod nga mga kahimtang sa kalibutan. Sa praktis, ang imong Pod nga adunay API nagtrabaho sa base isip usa ka serbisyo, ug dili pinaagi sa Pod ip address (siyempre atong susihon ang TCP ug UDP alang sa duha ka mga sitwasyon).
  • Pagkonsumo sa kapanguhaan: ang matag pagsulay karon adunay kaugalingon nga pagtandi sa kapanguhaan
  • Pagtangtang sa mga Pagsulay sa Aplikasyon: Wala na kami magbuhat sa HTTP, FTP ug SCP nga mga pagsulay tungod kay ang among mabungahon nga kolaborasyon sa komunidad ug mga tigmentinar sa CNI nakadiskubre sa usa ka gintang tali sa mga resulta sa iperf sa mga resulta sa TCP ug curl tungod sa pagkalangan sa pagsugod sa CNI (ang unang pipila ka segundo sa Pod pagsugod, nga dili kasagaran sa tinuod nga mga kahimtang).
  • Bukas nga tinubdan: tanan nga mga tinubdan sa pagsulay (mga script, mga setting sa yml ug orihinal nga "hilaw" nga datos) anaa dinhi

Reference Test Protocol

Ang protocol gihulagway sa detalye dinhiPalihug timan-i nga kini nga artikulo bahin sa Ubuntu 18.04 nga adunay default nga kernel.

Pagpili sa usa ka CNI alang sa Pagsusi

Kini nga pagsulay gitumong sa pagtandi sa mga CNI nga gi-configure sa usa ka yaml file (busa, ang tanan nga gi-install sa mga script, sama sa VPP ug uban pa, wala iapil).

Ang among gipili nga mga CNI alang sa pagtandi:

  • Antrea v.0.9.1
  • Calico v3.16
  • Canal v3.16 (Flannel network + Calico Network Policy)
  • Cilium 1.8.2
  • Flannel 0.12.0
  • Kube-router pinakabag-o (2020–08–25)
  • WeaveNet 2.7.0

Pag-configure sa MTU alang sa CNI

Una sa tanan, among gisusi ang epekto sa awtomatik nga MTU detection sa TCP performance:

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

Epekto sa MTU sa TCP Performance

Mas dako nga gintang ang makit-an kung gamiton ang UDP:

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)
Epekto sa MTU sa UDP Performance

Tungod sa DAKO nga epekto sa performance nga gipadayag sa mga pagsulay, gusto namong magpadala ug sulat sa paglaum sa tanang CNI maintainers: palihug idugang ang automatic MTU detection sa CNI. Maluwas nimo ang mga kuting, unicorn ug bisan ang labing cute: ang gamay nga Devop.

Bisan pa, kung kinahanglan nimo nga gamiton ang CNI nga wala’y suporta alang sa awtomatik nga pagtuki sa MTU, mahimo nimo nga i-configure kini nga mano-mano aron makuha ang pasundayag. Palihug timan-i nga kini magamit sa Calico, Canal ug WeaveNet.

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)
Ang akong gamay nga hangyo sa mga kauban nga CNIs...

Pagsulay sa CNI: Hilaw nga Data

Niini nga seksyon, atong itandi ang CNI sa husto nga MTU (awtomatiko nga gitakda o gitakda sa mano-mano). Ang panguna nga katuyoan dinhi mao ang pagpakita sa hilaw nga datos sa mga graph.

Kolor nga leyenda:

  • gray - sample (ie hubo nga puthaw)
  • berde - bandwidth nga labaw sa 9500 Mbps
  • yellow - bandwidth nga labaw sa 9000 Mbps
  • orange - bandwidth nga labaw sa 8000 Mbps
  • pula - bandwidth ubos sa 8000 Mbps
  • asul - neyutral (walay kalabotan sa bandwidth)

Walay-load nga konsumo sa kapanguhaan

Una sa tanan, susiha ang konsumo sa kapanguhaan kung ang cluster "natulog".

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)
Walay-load nga konsumo sa kapanguhaan

Pod-to-Pod

Kini nga senaryo nagtuo nga ang kliyente Pod direktang nagkonektar sa server Pod gamit ang IP address niini.

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)
Pod-to-Pod Scenario

TCP

Mga resulta sa Pod-to-Pod TCP ug katugbang nga konsumo sa kapanguhaan:

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

UDP

Mga resulta sa Pod-to-Pod UDP ug katugbang nga konsumo sa kapanguhaan:

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

Pod-to-Serbisyo

Kini nga seksyon may kalabutan alang sa tinuod nga mga kaso sa paggamit, ang kliyente Pod nagkonektar sa server Pod pinaagi sa ClusterIP nga serbisyo.

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)
Pod-to-Service Script

TCP

Mga resulta sa Pod-to-Service TCP ug katugbang nga konsumo sa kapanguhaan:

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

UDP

Pod-to-Service nga mga resulta sa UDP ug katugbang nga konsumo sa kapanguhaan:

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

Suporta sa polisiya sa network

Taliwala sa tanan sa ibabaw, ang usa lamang nga wala nagsuporta sa politika mao ang Flannel. Ang tanan nga uban sa husto nga pagpatuman sa mga palisiya sa network, lakip ang pagsulod ug paggawas. Nindot nga trabaho!

CNI encryption

Lakip sa gisusi nga mga CNI adunay mga maka-encrypt sa pagbinayloay sa network tali sa Pods:

  • Antrea gamit ang IPsec
  • Calico gamit ang wireguard
  • Cilium gamit ang IPsec
  • WeaveNet gamit ang IPsec

Bandwidth

Tungod kay gamay ra ang nahabilin nga mga CNI, atong ibutang ang tanan nga mga senaryo sa usa ka graph:

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

Pagkonsumo sa kahinguhaan

Niini nga seksyon, atong susihon ang mga kapanguhaan nga gigamit sa pagproseso sa komunikasyon sa Pod-to-Pod sa TCP ug UDP. Walay kapuslanan ang pagdrowing og Pod-to-Service graph tungod kay wala kini maghatag og dugang nga impormasyon.

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

Paghiusa sa tanan

Atong sulayan nga balikon ang tanan nga mga graph, among gipaila ang usa ka gamay nga subjectivity dinhi, gipulihan ang aktwal nga mga kantidad sa mga pulong nga "vwry fast", "low", ug uban pa.

CNI Performance Evaluation para sa Kubernetes sa 10G Network (Agosto 2020)

Konklusyon ug ang akong mga konklusyon

Kini usa ka gamay nga suhetibo, tungod kay ako nagpahayag sa akong kaugalingon nga paghubad sa mga resulta.

Nalipay ko nga mitungha ang bag-ong mga CNI, maayo ang nahimo sa Antrea, daghang mga gimbuhaton ang gipatuman bisan sa unang mga bersyon: awtomatik nga pagkakita sa MTU, pag-encrypt ug dali nga pag-instalar.

Kung atong itandi ang pasundayag, ang tanan nga mga CNI nagtrabaho og maayo, gawas sa Kube-OVN ug Kube-Router. Ang Kube-Router dili usab makamatikod sa MTU, wala akoy nakit-an nga paagi aron ma-configure kini bisan asa sa dokumentasyon (dinhi bukas ang usa ka hangyo bahin niini nga hilisgutan).

Sa termino sa konsumo sa kapanguhaan, ang Cilium naggamit gihapon og mas daghang RAM kay sa uban, apan ang tiggama tin-aw nga nagpunting sa dagkong mga pungpong, nga klaro nga dili parehas sa usa ka pagsulay sa tulo ka node cluster. Ang Kube-OVN naggamit usab ug daghang mga kahinguhaan sa CPU ug RAM, apan kini usa ka batan-ong CNI nga gibase sa Open vSwitch (sama sa Antrea, mas maayo ang pagbuhat niini ug gamay ra ang paggamit).

Ang tanan gawas sa Flannel adunay mga polisiya sa network. Lagmit nga dili niya sila suportahan, tungod kay ang tumong mas simple kaysa usa ka steamed turnip: ang mas gaan, mas maayo.

Usab, taliwala sa ubang mga butang, ang pasundayag sa pag-encrypt talagsaon. Ang Calico mao ang usa sa labing karaan nga CNI, apan ang pag-encrypt gidugang lamang pipila ka semana ang milabay. Gipili nila ang wireguard imbes nga IPsec, ug sa yano nga pagkasulti, kini maayo ug katingad-an, hingpit nga nag-clip sa ubang mga CNI sa kini nga bahin sa pagsulay. Siyempre, ang pagkonsumo sa kapanguhaan nagdugang tungod sa pag-encrypt, apan ang throughput nga nakab-ot takus niini (Gipakita sa Calico ang unom ka pilo nga pag-uswag sa pagsulay sa pag-encrypt kumpara sa Cilium, nga ikaduha nga ranggo). Dugang pa, mahimo nimong ma-enable ang wireguard sa bisan unsang oras pagkahuman nimo i-deploy ang Calico sa cluster, ug mahimo usab nimo nga ma-disable kini sa mubo nga panahon o permanente kung gusto nimo. Kini labi ka kombenyente, bisan pa! Gipahinumdoman ka namo nga ang Calico dili karon awtomatik nga makamatikod sa MTU (kini nga bahin giplano alang sa umaabot nga mga bersyon), busa siguroha nga i-configure ang MTU kung ang imong network nagsuporta sa Jumbo Frames (MTU 9000).

Lakip sa ubang mga butang, timan-i nga ang Cilium maka-encrypt sa trapiko tali sa mga cluster node (ug dili lang sa taliwala sa Pods), nga mahimong importante kaayo alang sa publiko nga cluster nodes.

Isip usa ka konklusyon, gisugyot ko ang mosunod nga mga kaso sa paggamit:

  • Kinahanglan ang CNI para sa gamay kaayo nga cluster O wala ko magkinahanglan og seguridad: pagtrabaho uban sa Flannel, ang pinakagaan ug pinakalig-on nga CNI (usa usab siya sa labing karaan, sumala sa leyenda giimbento siya ni Homo Kubernautus o Homo Contaitorus). Mahimong interesado ka usab sa labing batid nga proyekto k3s, susiha!
  • Kinahanglan ang CNI para sa regular nga cluster: Calico - imong gipili, apan ayaw kalimti ang pag-configure sa MTU kung gikinahanglan. Dali ka ug natural nga makadula sa mga palisiya sa network, i-on ug i-off ang pag-encrypt, ug uban pa.
  • Kinahanglan ang CNI para sa (kaayo) dako nga pundok nga pundok: Bueno, ang pagsulay wala magpakita sa kinaiya sa dagkong mga pungpong, malipay ako sa pagpahigayon sa mga pagsulay, apan wala kami gatusan ka mga server nga adunay koneksyon nga 10Gbps. Mao nga ang labing kaayo nga kapilian mao ang pagpadagan sa usa ka giusab nga pagsulay sa imong mga node, labing menos sa Calico ug Cilium.

Source: www.habr.com

Idugang sa usa ka comment