V zadnjem času sem delal na PaaS vsebinah in pravkar sem prišel v stik s Kubernetesom, ki vključuje pokritost omrežja, torej komunikacijo med večgostiteljskimi kontejnerji. Tako se je pojavila vrsta odprtokodnih komponent, kot so flanelasta tkanina, kaliko, tkanje itd. Tukaj so predvsem Calico in Fannel.
Načelo flanela
Flannel, projekt, ki ga je razvil CoreOS, je verjetno najbolj neposreden in priljubljen CNI vtičnik. Je eden najbolj zrelih primerov omrežne arhitekture v sistemih za orkestracijo kontejnerjev in je zasnovan za omogočanje boljšega omrežja med kontejnerji in gostitelji. Z vzponom koncepta CNI je vtičnik Flannel CNI ena izmed prvih uvedbenih rešitev.
Flanela je razmeroma enostavna za namestitev in konfiguracijo v primerjavi z drugimi možnostmi. Pakiran je kot en sam binarni FlannelD, številna pogosta orodja za namestitev Kubernetes grozdov in številne Kubernetes distribucije pa lahko Flannel namestijo privzeto. Flannel lahko uporablja obstoječo etcd grozd Kubernetes gruče za shranjevanje podatkov o stanju prek API-ja, zato ne potrebuje namenskega podatkovnega skladišča.
Flannel konfigurira sloj 3 IPv4 prekrivno omrežje. Ustvari veliko notranje omrežje, ki zajema vsako vozlišče v gruči. V tem overlay omrežju ima vsako vozlišče podomrežje, ki se uporablja za interno dodeljevanje IP naslovov. Pri konfiguraciji poda vmesnik Docker bridge na vsakem vozlišču dodeli naslov vsakemu novemu vsebniku. Podi na istem gostitelju lahko komunicirajo prek Docker mostov, medtem ko podi na različnih gostiteljih uporabljajo flanneld za enkapsulacijo prometa v UDP pakete, da jih je mogoče usmeriti do ustreznega cilja.
Flanel ima več različnih vrst backendov, ki se lahko uporabljajo za enkapsulacijo in usmerjanje. Privzeti in priporočeni pristop je uporaba VXLAN, ker VXLAN deluje bolje in zahteva manj ročne intervencije.
Kaliko arhitektura
Kaliko vključuje naslednje pomembne komponente: Felix, etcd, BGP odjemalec in BGP reflektor poti. Spodaj so razlage vsake od teh komponent.
Felix: Glavni odgovoren za konfiguracijo usmerjanja, konfiguracijo in dostavo pravil ACLS, obstaja na vsakem vozlišču.
etcd: Porazdeljena ključ-vrednost shramba, ki je predvsem odgovorna za skladnost omrežnih metapodatkov in zagotavljanje natančnosti stanja omrežja Calico, se lahko deli s kubernetesom;
BGPClient (BIRD) je predvsem odgovoren za distribucijo informacij o usmerjanju, ki jih je Felix zapisal v jedro, do trenutnega omrežja Calico, da se zagotovi učinkovitost komunikacije med delovnimi obremenitvami.
BGPRoute Reflector (BIRD) se uporablja pri obsežnih namestitvah, pri čemer se opusti način mreže, ki povezuje vsa vozlišča, in uporablja enega ali več BGPRoute reflektorjev za dokončanje centraliziranega usmerjanja in distribucije.
Princip kalika
Kot je prikazano na spodnjem diagramu, je proces prikazan od izvornega vsebnika preko izvornega gostitelja, skozi usmerjanje podatkovnega centra, nazadnje do ciljnega gostitelja in na koncu dodeljen ciljnemu vsebniku.
Kontrast
Iz zgornjega načela je razvidno, da Flannel izvaja operacije razpakiranja paketov na osnovi usmerjanja naprej, kar porablja računalniške vire procesorja. Spodnji grafikon primerja zmogljivost različnih odprtokodnih omrežnih komponent, ki so na voljo na spletu. Videti je, da sta zmogljivost Calica in gostitelja podobna glede pasovne širine in zakasnitve omrežja.
|