Neseniai dirbau su PaaS turiniu ir ką tik susidūriau su "Kubernetes", kuris apima tinklo aprėptį, tai yra ryšį tarp kelių pagrindinių kompiuterių konteinerių. Taigi atsirado daugybė atvirojo kodo komponentų, tokių kaip flanelė, kalikonas, pynimas ir kt. Čia daugiausia yra Calico ir Fannel.
Flanelės principas
"CoreOS" sukurtas projektas "Flannel" yra bene tiesioginis ir populiariausias CNI papildinys. Tai vienas brandžiausių konteinerių orkestravimo sistemų tinklo architektūros pavyzdžių ir sukurtas taip, kad būtų galima geriau sujungti konteinerių ir pagrindinių kompiuterių tinklą. Atsiradus CNI koncepcijai, "Flannel CNI" papildinys yra ankstyvas įvadas.
Flanelę gana lengva įdiegti ir konfigūruoti, palyginti su kitomis galimybėmis. Jis supakuotas kaip vienas dvejetainis FlannelD, o daugelis įprastų Kubernetes klasterio diegimo įrankių ir daugelis Kubernetes platinimų gali įdiegti Flannel pagal numatytuosius nustatymus. "Flannel" gali naudoti esamą "Kubernetes" klasterio etcd klasterį, kad saugotų savo būsenos informaciją naudodama API, todėl jai nereikia specialios duomenų saugyklos.
Flanelė sukonfigūruoja 3 lygmens IPv4 perdangos tinklą. Tai sukuria didelį vidinį tinklą, apimantį kiekvieną klasterio mazgą. Šiame perdangos tinkle kiekvienas mazgas turi potinklį, kuris naudojamas IP adresams priskirti viduje. Konfigūruojant ankštį, kiekvieno mazgo "Docker" tilto sąsaja kiekvienam naujam konteineriui priskiria adresą. Tame pačiame pagrindiniame kompiuteryje esančios kapsulės gali bendrauti naudodami "Docker" tiltus, o skirtingų kompiuterių ankštys naudoja flaneldą, kad įtrauktų srautą į UDP paketus, kad juos būtų galima nukreipti į atitinkamą paskirties vietą.
Flanelė turi keletą skirtingų tipų užpakalinių sistemų, kurios gali būti naudojamos kapsuliavimui ir maršrutizavimui. Numatytasis ir rekomenduojamas būdas yra naudoti VXLAN, nes VXLAN veikia geriau ir reikalauja mažiau rankinio įsikišimo.
Kaliko architektūra
Kalikoną sudaro šie svarbūs komponentai: Felix etcd, BGP klientas ir BGP maršruto reflektorius. Toliau pateikiami kiekvieno iš šių komponentų paaiškinimai.
Feliksas: Daugiausia atsakingas už maršruto parinkimo konfigūraciją, ACLS taisyklių konfigūraciją ir pristatymą, jis egzistuoja kiekviename mazge.
etcd: Paskirstyta rakto-vertės saugykla, daugiausia atsakinga už tinklo metaduomenų nuoseklumą, užtikrinant Calico tinklo būsenos tikslumą, gali būti bendrinama su kubernetes;
BGPClient (BIRD) daugiausia atsakingas už Felix parašytos maršrutizavimo informacijos paskirstymą branduoliui į dabartinį Calico tinklą, kad būtų užtikrintas ryšio tarp darbo krūvių efektyvumas.
BGPRoute reflektorius (BIRD) naudojamas didelio masto diegimui, atsisakant tinklinio visų mazgų sujungimo režimo ir naudojant vieną ar kelis BGPRoute reflektorius, kad būtų užbaigtas centralizuotas maršrutizavimas ir paskirstymas.
Kaliko principas
Kaip parodyta toliau pateiktoje diagramoje, procesas pavaizduotas iš šaltinio konteinerio per šaltinio pagrindinį kompiuterį, per duomenų centro maršrutą ir galiausiai į paskirties pagrindinį kompiuterį ir galiausiai priskiriamas paskirties konteineriui.
Kontrastas
Iš aukščiau pateikto principo matyti, kad flanelė atlieka paketų išpakavimo operacijas maršruto parinkimo persiuntimo pagrindu, o tai eikvoja procesoriaus skaičiavimo išteklius. Žemiau esančioje diagramoje palyginamas įvairių internete esančių atvirojo kodo tinklo komponentų našumas. Galima pastebėti, kad kalbant apie pralaidumą ir tinklo delsą, "Calico" ir pagrindinio kompiuterio našumas yra panašus.
|