Razumevanje Kubernetes arhitekture

Spoznajmo arhitekturo Kubernetes podrobno.


Predvidevam, da razumete Kubernetes. Če ne, si oglejte naslednje članke o uvodu in namestitvi.

Kubernetes Uvod za začetnike

Kako namestiti Kubernetes na Ubuntu 18?

Kubernetes sledi arhitekturi master-slave. Kubernetes arhitektura ima glavno vozlišče in delovna vozlišča. Obstajajo štiri komponente a glavno vozlišče.

  • Kube API strežnik
  • krmilnik
  • planer
  • itdd

In delavsko vozlišče ima tri komponente.

  • kubelet
  • kube-proxy
  • čas izvajanja posode

Tako izgleda arhitektura Kubernetesa:

kubernetes arhitektura

Naj podrobneje povem o komponentah vozlišča glavnega vozla in delavskih vozlišč.

Glavno vozlišče

Glavno vozlišče upravlja grozd Kubernetes in je vstopna točka za vse administrativne naloge. Z glavnim vozliščem se lahko pogovarjate prek CLI, GUI ali API-ja. Za doseganje napak je v grozdu lahko več kot eno glavno vozlišče. Ko imamo več kot eno glavno vozlišče, bi obstajal način visoke razpoložljivosti in en vodja izvaja vse operacije. Vsa ostala glavna vozlišča bi bila spremljevalci tega vodilnega glavnega vozlišča.

Kubernetes za upravljanje stanja grozda uporablja etcd. Vsa glavna vozlišča se povežejo s etcd, ki je porazdeljena trgovina s ključnimi vrednostmi.

kubernetes master vozlišče

Naj vam razložim, kako vse te komponente so ena za drugo.

Strežnik API

API Server izvaja vsa skrbniška opravila na glavnem vozlišču. Uporabnik pošlje preostale ukaze strežniku API, ki nato potrdi zahteve, nato jih obdela in izvrši. etcd shrani nastalo stanje grozda kot razdeljeno shrambo ključ-vrednost.

Planer

Po tem imamo razporejevalnik. Tako kot ime pove, planer razporeja delo na različna delovna vozlišča. Za vsako vozlišče delavca vsebuje informacije o uporabi virov. Planer upošteva tudi zahteve glede kakovosti storitev, lokacijo podatkov in številne druge tovrstne parametre. Nato načrtovalec načrtuje delo v smislu strok in storitev.

Upravljalec krmilnika

Nekončne kontrolne zanke, ki uravnavajo stanje v grozdu Kubernetes, upravlja Upravitelj nadzora. Zdaj vsaka od teh kontrolnih zank ve za želeno stanje predmeta, ki ga upravlja, nato pa po API-strežnikih pogledajo njihovo trenutno stanje.

V želeni krmilni zanki, če želeno stanje ne ustreza trenutnemu stanju predmeta, nato krmilna zanka izvede korektivne korake, da trenutno stanje ustreza želenemu stanju. Torej, upravljavec krmilnika poskrbi, da je vaše trenutno stanje enako želenemu stanju.

itdd

Etcd je distribuirana trgovina s ključnimi vrednostmi, ki se uporablja za shranjevanje stanja grozda. Torej bodisi mora biti del mojstra Kubernetesa, ali pa ga lahko konfigurirate tudi zunaj. etcd je zapisan v goLang in temelji na Soglasje o splavu algoritem.

Splav omogoča, da zbirka strojev deluje kot skladna skupina, ki lahko preživi neuspehe nekaterih svojih članov. Tudi če nekateri člani ne delujejo, lahko ta algoritem še vedno deluje v vsakem trenutku. Eno od vozlišč v skupini bo mojster, preostali pa bodo sledilci.

Lahko je samo en mojster in vsi drugi mojstri morajo slediti temu mojstru. Poleg shranjevanja stanja grozda se etcd uporablja tudi za shranjevanje podrobnosti o konfiguraciji, kot so podomrežja in zemljevidi config.

Delavsko vozlišče

Delavsko vozlišče je virtualni ali fizični strežnik, ki poganja aplikacije in ga nadzira glavno vozlišče. Podstavki so razporejeni na delavskih vozliščih, ki imajo potrebna orodja za zagon in povezavo z njimi. Podobe niso nič drugega kot zbirka posod.

Če želite dostopati do aplikacij iz zunanjega sveta, se morate povezati z delavskimi vozlišči in ne glavnimi vozlišči.

kubernetes delavsko vozlišče

Preučimo komponente vozlišča delavcev.

Trajanje vsebnika

Čas trajanja vsebnika se v osnovi uporablja za vodenje in upravljanje neprekinjenega življenjskega cikla na delavčevem vozlišču. Nekaj ​​primerov izvajalnih vsebin, ki vam jih lahko dam, so kontejnerji rkt, lxc itd. Pogosto opažamo, da se docker imenuje tudi čas izvajanja vsebnika, a če sem natančen, naj vam povem, da je docker platforma, ki uporablja zabojnike kot čas izvajanja posode.

Kubelet

Kubelet je v bistvu agent, ki deluje na vsakem delovnem vozlišču in komunicira z glavnim vozliščem. Torej, če imate deset delavskih vozlišč, potem kubelet teče na vsako delovno vozlišče. Sprejema definicijo pod na različne načine in poganja posode, povezane s tem pristaniščem. Prav tako poskrbi, da so posode, ki so del strokov, vedno zdrave.

Kubelet se poveže z izvajanjem vsebnika z okvirom gRPC. Kubelet se poveže z vmesnikom izvajanja vsebnika (CRI) za izvajanje vsebnikov in slik. Slikovna storitev je odgovorna za vse operacije, povezane s sliko, medtem ko je storitev izvajanja odgovorna za vse operacije pod in posode. Ti dve storitvi imata dve različni operaciji.

Naj vam povem nekaj zanimivega, čas izvajanja vsebnikov je bil v Kubernetesu težko kodiran, toda z razvojem CRI-ja lahko Kubernetes zdaj uporabljajo različne čase izvajanja, ne da bi jih bilo treba ponovno prevajati. Kubernetes lahko tako uporablja katero koli trajanje vsebnika, ki izvaja CRI, za upravljanje strokov, posod in posod. Docker shim in CRI zabojniki so dva primera CRI shim. Z docker shim-om so zabojniki ustvarjeni s pomočjo dockerja, nameščenega na delavskih vozliščih, nato pa interno docker uporablja zabojnik za ustvarjanje in upravljanje vsebnikov

Kube-proxy

Kube-proxy deluje na vsakem delovnem vozlišču kot omrežni proxy. Posluša strežnik API za vsako ustvarjanje ali brisanje storitvene točke. Za vsako servisno točko kube-proxy nastavi poti, tako da lahko pride do njega.

Zaključek

Upam, da vam to pomaga razumeti arhitekturo Kubernetes na boljši način. Kubernetes spretnosti so vedno na zahtevo, in če se želite naučiti graditi kariero, potem to preverite Seveda Udemy.

Oznake:

  • Docker

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map