Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

TL, DR: Ny CNI rehetra dia miasa araka ny tokony ho izy, afa-tsy ny Kube-Router sy Kube-OVN, Calico, ankoatry ny fitiliana MTU mandeha ho azy, no tsara indrindra.

Lahatsoratra-fanavaozana ny taratasiko taloha (2018 ΠΈ 2019), amin'ny fotoana hanaovana fitiliana dia mampiasa Kubernetes 1.19 amin'ny Ubuntu 18.04 miaraka amin'ny CNI nohavaozina aho tamin'ny Aogositra 2020.

Alohan'ny hidirantsika amin'ny metrika...

Inona no vaovao nanomboka tamin'ny Aprily 2019?

  • Afaka manao fitsapana amin'ny cluster anao manokana ianao: Azonao atao ny manao fitsapana amin'ny cluster anao manokana amin'ny fampiasana ny fitaovantsika Kubernetes Network Benchmark: knb
  • Nipoitra ny mpikambana vaovao
  • Toe-javatra vaovao: Ny fisavana amin'izao fotoana izao dia manao fitsapana ny fahombiazan'ny tambajotra "Pod-to-Pod", ary nampiana script "Pod-to-Service" vaovao izay manao fitsapana manakaiky ny toe-javatra misy eo amin'izao tontolo izao. Amin'ny fampiharana, ny Pod miaraka amin'ny API dia miasa miaraka amin'ny fototra ho serivisy, fa tsy amin'ny alΓ lan'ny adiresy ip Pod (mazava ho azy fa samy mijery ny TCP sy ny UDP izahay amin'ny toe-javatra roa).
  • Fanjifana loharanon-karena: samy manana ny fampitahana loharanony ny fitsapana tsirairay
  • Esory ny fitsapana fampiharana: Tsy manao fitsapana HTTP, FTP ary SCP intsony izahay satria ny fiaraha-miasa mahomby amin'ny vondrom-piarahamonina sy ny mpikarakara ny CNI dia nahita ny elanelana misy eo amin'ny valin'ny iperf amin'ny TCP sy ny valin'ny curl noho ny fahatarana ny fanombohana CNI (ny segondra vitsy voalohany amin'ny Pod fanombohana, izay tsy mahazatra amin'ny toe-javatra tena izy).
  • Loharano misokatra: azo alaina daholo ny loharanom-panadinana rehetra (scripts, yml settings ary data β€œraw” tany am-boalohany). eto

Reference Test Protocol

Ny protocol dia voafaritra amin'ny antsipiriany etoMariho fa ity lahatsoratra ity dia momba ny Ubuntu 18.04 miaraka amin'ny kernel default.

Fifidianana CNI ho an'ny fanombanana

Ity fitsapana ity dia mikendry ny fampitahana ireo CNI namboarina tamin'ny rakitra yaml iray (noho izany, ireo rehetra napetraka amin'ny script, toy ny VPP sy ny hafa, dia tsy tafiditra ao).

Ireo CNI nofantenantsika ho fampitahana:

  • Antrea v.0.9.1
  • Calico v3.16
  • Canal v3.16 (Tambajotra flannel + Politika tambajotra Calico)
  • Cilium 1.8.2
  • Flannel 0.12.0
  • Kube-router farany (2020–08–25)
  • WeaveNet 2.7.0

Fametrahana ny MTU ho an'ny CNI

Voalohany indrindra, manamarina ny fiantraikan'ny fitiliana MTU mandeha ho azy amin'ny fahombiazan'ny TCP:

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Ny fiantraikan'ny MTU amin'ny Fampisehoana TCP

Misy banga lehibe kokoa hita rehefa mampiasa UDP:

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)
Ny fiantraikan'ny MTU amin'ny Fampisehoana UDP

Noho ny fiantraikan'ny zava-bita lehibe nambara tamin'ny fitsapana, dia te-handefa taratasy fanantenana ho an'ny mpikarakara CNI rehetra izahay: azafady ampio ny fitiliana MTU mandeha ho azy amin'ny CNI. Hanavotra kittens, unicorns ary na dia ny mahafatifaty indrindra aza ianao: ilay Devop kely.

Na izany aza, raha mila mampiasa CNI ianao nefa tsy misy fanohanana ny fitiliana MTU mandeha ho azy, dia azonao atao ny manamboatra azy io amin'ny tanana mba hahazoana fahombiazana. Mariho fa mihatra amin'ny Calico, Canal ary WeaveNet izany.

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)
Ny fangatahako kely amin’ireo CNI miara-dia...

Fitsapana CNI: Data manta

Amin'ity fizarana ity dia hampitaha ny CNI amin'ny MTU marina isika (voafaritra ho azy na apetraka amin'ny tanana). Ny tanjona lehibe eto dia ny hampiseho ny angona manta amin'ny grafika.

Loko angano:

  • volondavenona - santionany (izany hoe vy tsy misy dikany)
  • maitso - bandwidth mihoatra ny 9500 Mbps
  • mavo - bandwidth mihoatra ny 9000 Mbps
  • orange - bandwidth mihoatra ny 8000 Mbps
  • mena - bandwidth ambanin'ny 8000 Mbps
  • manga - tsy miandany (tsy mifandray amin'ny bandwidth)

Fanjifana loharano tsy misy entana

Voalohany indrindra, jereo ny fanjifana loharanon-karena rehefa "matory" ny cluster.

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)
Fanjifana loharano tsy misy entana

Pod-to-Pod

Ity toe-javatra ity dia mihevitra fa ny mpanjifa Pod dia mifandray mivantana amin'ny server Pod amin'ny alΓ lan'ny adiresy IP-ny.

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)
Scenario Pod-to-Pod

TCP

Valiny TCP Pod-to-Pod sy fanjifana loharano mifanaraka amin'izany:

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

UDP

Valiny UDP Pod-to-Pod sy fanjifana loharano mifanaraka amin'izany:

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Pod-to-Service

Ity fizarana ity dia manan-danja amin'ny tranga tena izy, ny mpanjifa Pod dia mifandray amin'ny server Pod amin'ny alΓ lan'ny serivisy ClusterIP.

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)
Script Pod-to-Service

TCP

Valiny TCP Pod-to-Service sy fanjifana loharano mifanaraka amin'izany:

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

UDP

Valiny UDP Pod-to-Service sy ny fanjifana loharano mifanaraka amin'izany:

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Fanohanana ny politikan'ny tambajotra

Amin'ireo rehetra voalaza etsy ambony ireo, ny hany tsy manohana ny politika dia ny Flannel. Ny hafa rehetra dia mampihatra tsara ny politikan'ny tambajotra, ao anatin'izany ny miditra sy mivoaka. Asa tsara!

CNI encryption

Amin'ireo CNI voasokajy dia misy ireo izay afaka manidy ny fifanakalozana tambajotra eo amin'ny Pods:

  • Antrea mampiasa IPsec
  • Calico mampiasa wireguard
  • Cilium mampiasa IPsec
  • WeaveNet mampiasa IPsec

passante

Koa satria vitsy ny CNI tavela, andao hataontsika ao anaty kisary iray ny toe-javatra rehetra:

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Fanjifana loharanon-karena

Amin'ity fizarana ity dia hanombana ny loharano ampiasaina amin'ny fanodinana ny fifandraisana Pod-to-Pod amin'ny TCP sy UDP. Tsy misy dikany ny fanaovana tabilao Pod-to-Service satria tsy manome fampahalalana fanampiny izany.

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Mampitambatra izany rehetra izany

Andao hiezaka hamerina ny grafika rehetra, nampiditra lohahevitra kely izahay eto, manolo ny tena soatoavina amin'ny teny hoe "vwry fast", "low", sns.

Tombana ny fahombiazan'ny CNI ho an'ny Kubernetes amin'ny tambajotra 10G (Aogositra 2020)

Fehiny sy ny fehin-keviko

Somary manara-penitra ihany izany, satria ny hevitro manokana momba ny vokatra no ampitako.

Faly aho fa nipoitra ny CNI vaovao, nahavita tsara ny Antrea, maro ny asa nampiharina na dia tamin'ny dikan-teny tany am-boalohany aza: automatique MTU detection, encryption ary mora fametrahana.

Raha ampitahaina ny zava-bita dia miasa tsara ny CNI rehetra, afa-tsy ny Kube-OVN sy Kube-Router. Tsy nahita ny MTU koa i Kube-Router, tsy nahita fomba hanamboarana azy aho na aiza na aiza ao amin'ny antontan-taratasy (eto misokatra ny fangatahana momba ity lohahevitra ity).

Raha ny momba ny fanjifana loharanon-karena, Cilium dia mbola mampiasa RAM bebe kokoa noho ny hafa, fa ny mpanamboatra dia mikendry ny cluster lehibe, izay mazava ho azy fa tsy mitovy amin'ny fitsapana amin'ny cluster telo-node. Mandany loharanon-karena CPU sy RAM betsaka koa i Kube-OVN, saingy CNI tanora miorina amin'ny Open vSwitch izy io (toa an'i Antrea, miasa tsara kokoa ary mandany vola kely kokoa).

Ny olon-drehetra afa-tsy ny Flannel dia manana politikan'ny tambajotra. Tena azo inoana fa tsy hanohana azy ireo mihitsy izy, satria ny tanjona dia tsotra kokoa noho ny sakamalaho etona: ny maivana, ny tsara kokoa.

Ankoatra izany, ankoatra ny zavatra hafa, ny fahombiazan'ny encryption dia mahagaga. Calico dia iray amin'ireo CNI tranainy indrindra, saingy vao herinandro vitsivitsy lasa izay no nampiana ny encryption. Nisafidy wireguard izy ireo fa tsy IPsec, ary raha tsorina dia miasa tsara sy mahatalanjona izy io, manaloka tanteraka ny CNI hafa amin'ity ampahan'ny fitsapana ity. Mazava ho azy fa mitombo ny fanjifana loharanon-karena noho ny encryption, saingy mendrika ny vokatra azo (Calico dia nampiseho fanatsarana enina heny tamin'ny fitsapana encryption raha oharina amin'ny Cilium, izay laharana faharoa). Ankoatra izany, azonao atao ny mamela ny wireguard amin'ny fotoana rehetra aorian'ny fametrahanao an'i Calico amin'ny cluster, ary azonao atao koa ny manafoana izany mandritra ny fotoana fohy na maharitra raha tianao. Tena mety anefa izany! Mampahatsiahy anao izahay fa tsy mahita MTU mandeha ho azy i Calico (io endri-javatra io dia nomanina ho an'ny dikan-teny ho avy), koa aoka ho azo antoka ny manamboatra ny MTU raha manohana ny Jumbo Frames (MTU 9000) ny tambajotranao.

Ankoatra ny zavatra hafa, mariho fa ny Cilium dia afaka manidy ny fifamoivoizana eo anelanelan'ny node cluster (fa tsy eo anelanelan'ny Pods ihany), izay mety ho zava-dehibe ho an'ny node cluster ho an'ny daholobe.

Ho fehin-kevitra, manoro hevitra ireto tranga fampiasana manaraka ireto aho:

  • Mila CNI ho an'ny cluster kely dia kely NA tsy mila fiarovana aho: miasa miaraka Flannel, ny CNI maivana sy marin-toerana indrindra (Izy koa dia iray amin'ireo tranainy indrindra, araka ny angano dia noforonin'i Homo Kubernautus na Homo Contaitorus izy.). Mety ho liana amin'ny tetikasa faran'izay hendry indrindra koa ianao k3s, taratasim-bola!
  • Mila CNI ho an'ny cluster mahazatra: calico - ny safidinao, fa aza adino ny manamboatra ny MTU raha ilaina. Afaka milalao mora foana amin'ny politikan'ny tambajotra ianao, mamadika sy mamono ny encryption, sns.
  • Mila CNI ho an'ny cluster (tena) lehibe: Eny ary, ny fitsapana dia tsy mampiseho ny fitondran-tenan'ny cluster lehibe, faly aho hanao fitsapana, saingy tsy manana mpizara an-jatony manana fifandraisana 10Gbps izahay. Noho izany, ny safidy tsara indrindra dia ny manao fitsapana novaina amin'ny nodeso, farafaharatsiny miaraka amin'ny Calico sy Cilium.

Source: www.habr.com

Add a comment