Kubernetes

Što je Kubernetes?

Što je Kubernetes?

Što je Kubernetes? I koja je njegova arhitektura?

Kontejnerizacija je prekinula vezu između programera softvera i proizvodnog okruženja. Ne u smislu da vam proizvodni sustav uopće nije potreban, ali ne morate brinuti o specifičnosti proizvodnog okruženja.

Aplikacije su sada povezane s ovisnostima koje su im potrebne, u laganom spremniku umjesto u VM-u. To je odlično! Međutim, ne pruža otpornost na kvarove sustava, mrežne greške ili kvarove diska. Na primjer, ako je podatkovni centar, u kojem poslužuju poslužitelji, u fazi održavanja, aplikacija će se isključiti.

Kubernetes dolazi u sliku kako bi riješio ove probleme. Potrebna je ideja kontejnera i proširuje se na rad na više računskih čvorova (koji mogu biti virtualni stroj s hostingom u oblaku ili goli metalni poslužitelji). Ideja je imati distribuirani sustav za pokretanje kontejnerskih aplikacija.

Zašto Kubernetes?

Sad, zašto biste uopće trebali imati distribuirano okruženje?

Iz više razloga, prvo i najvažnije je velika dostupnost. Želite da vaše web mjesto za e-trgovinu ostane na mreži 24/7 ili ćete izgubiti posao, za to koristite Kubernetes. Druga je skalabilnost, gdje želite povećati 'out'. Skaliranje ovdje uključuje dodavanje više računskih čvorova kako bi vaša rastuća aplikacija imala više prostora za noge.

Dizajn i arhitektura

Kao i svaki distribuirani sustav, Kubernetes klaster ima glavni čvor, a zatim čitav niz radničkih čvorova na kojem bi se vaše aplikacije zapravo izvodile. Master je odgovoran za raspoređivanje zadataka, upravljanje radnim opterećenjima i sigurno dodavanje novih čvorova u klaster.

Sada, naravno, sam glavni čvor može zakazati i sa sobom ponijeti cijelu klasteru, tako da vam Kubernetes zapravo omogućuje višestruke glavne čvorove zbog suvišnosti.

Pogled iz ptičje perspektive na tipično razmještanje Kubernetesa

Majstor Kubernetes

Kubernetesov master je ono s čime tim DevOps komunicira i koristi ga za pružanje novih čvorova, postavljanje novih aplikacija i nadzor i upravljanje resursima. Najosnovniji zadatak glavnog čvora je da raspored učinkovito opterećenje među svim radničkim čvorovima kako bi se maksimiziralo iskorištavanje resursa, poboljšala izvedba i slijedilo različite politike koje je DevOps tim odabrao za svoje posebno radno opterećenje.

Druga važna komponenta je itdd što je demon koji prati radne čvorove i čuva bazu podataka koja čuva cijelo stanje klastera. To je spremište podataka ključ / vrijednost, koje se također može izvoditi u distribuiranom okruženju kroz više glavnih čvorova. Sadržaj etcd daje sve relevantne podatke o cijelom klasteru. Radnički čvor povremeno bi pogledao sadržaj etcd-a kako bi utvrdio kako bi se trebao ponašati.

Kontroler je entitet koji će uzimati upute s API poslužitelja (koje ćemo obraditi kasnije) i izvoditi potrebne radnje poput stvaranja, brisanja i ažuriranja aplikacija i paketa.

The API poslužitelj izlaže Kubernetes API, koji koristi JSON korisni teret preko HTTPS-a, za komunikaciju s korisničkim sučeljem s kojim bi timovi programera ili osoblje DevOps-a na kraju završili u interakciji. I web UI i CLI troše ovaj API za interakciju s klasterom Kubernetes.

API poslužitelj je također odgovoran za komunikaciju između radnih čvorova i različitih komponenti glavnog čvora poput etcd.

Glavni čvor nikada nije izložen krajnjem korisniku jer bi riskirao sigurnost cijele klastera.

Kubernetesovi čvorovi

Stroju (fizičkom ili virtualnom) trebat će nekoliko važnih komponenti koje nakon što se pravilno instaliraju i postave mogu taj poslužitelj pretvoriti u člana vašeg Kubernetes klastera.

Prva stvar koja će vam trebati je vrijeme izvođenja spremnika, poput Dockera, instalirano i pokrenuto na njemu. Očito će biti odgovoran za predenje i upravljanje spremnicima.

Uz Docker runtime, trebamo i Kubelet demon. Komunicira s glavnim čvorovima putem API poslužitelja i postavlja upit etcd, a vraća podatke o zdravlju i upotrebi o podsovima koji su pokrenuti na tom čvoru.

Međutim, spremnici su prilično ograničeni sami po sebi, pa Kubernetes ima veću apstrakciju izgrađenu na vrhu zbirke spremnika, poznatih kao Mahune.

Zašto smisliti mahune?

Docker ima politiku pokretanja jedne aplikacije po spremniku. Često se opisuje kao "Jedan postupak po spremniku" politika. To znači da ako vam je potrebna WordPress stranica, preporučujemo vam da imate dva spremnika jedan za rad baze podataka i drugi za rad web poslužitelja. Spajanje takvih povezanih komponenata aplikacije u mahunu osigurava da kad god se smanjite, dva međusobno ovisna spremnika uvijek koegzistiraju na istom čvoru i tako međusobno brzo i jednostavno razgovaraju.

Mahune su temeljna jedinica razmještaja u Kubernetesu. Kada se smanjite, dodajte više mahuna u klaster. Svaka mahuna dobiva svoju jedinstvenu IP adresu unutar interne mreže klastera.

Povratak na Kubernetesov čvor

Sada čvor može pokretati više podsova i takvih čvorova može biti mnogo. Sve je to u redu dok ne razmislite o pokušaju komunikacije s vanjskim svijetom. Ako imate jednostavnu uslugu zasnovanu na webu, kako biste usmjerili ime svoje domene na ovu zbirku mahuna s mnogo IP adresa?

Ne možete i ne morate! Kube-proxy je posljednji dio slagalice koji operaterima omogućuje izlaganje određenih mahuna Internetu. Na primjer, vaš front-end može biti javno dostupan i kube-proxy će distribuirati promet između svih različitih mahuna odgovornih za hosting prednjeg kraja. Međutim, vaša baza podataka ne mora biti javna, a kube-proxy će omogućiti samo internu komunikaciju za takva radna opterećenja povezana s pozadinom.

Treba li vam sve ovo?

Ako tek započinjete kao hobi ili student, upotreba Kubernetesa za jednostavnu aplikaciju zapravo bi bila neučinkovita. Cijela rigmarole potrošila bi više resursa od vaše stvarne aplikacije i dodala bi više zbrke za pojedinca.

Međutim, ako ćete surađivati ​​s velikim timom i implementirati svoje aplikacije za ozbiljnu komercijalnu upotrebu, Kubernetes vrijedi dodati iznad troškova. Možete spriječiti da stvari postanu kaotične. Osigurajte mjesto za održavanje bez zastoja. Postavite izvrsne uvjete za A / B testiranje i postupno se uvećavajte bez trošenja previše na infrastrukturu unaprijed.

Najbolji emulatori igraće konzole za Linux
Ovaj će članak navesti popularni softver za emulaciju igraće konzole dostupan za Linux. Emulacija je sloj kompatibilnosti softvera koji oponaša hardve...
Najbolji Linux Distros za igre na sreću 2021. godine
Linux operativni sustav daleko je prevalio svoj izvorni, jednostavni izgled zasnovan na poslužitelju. Ovaj se OS posljednjih godina izuzetno poboljšao...
Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...