Kubernetes vodič za početnike: osnove, značajke, Architektura
Prije nego što započnemo ovaj vodič za Kubernetes, naučimo:
Što je Kubernetes?
Kubernetes je sustav za upravljanje kontejnerima razvijen na Google platformi. Kubernetes pomaže u upravljanju kontejnerskim aplikacijama u različitim vrstama fizičkih, virtualnih i oblačnih okruženja. Google Kubernetes vrlo je fleksibilan kontejnerski alat za dosljednu isporuku složenih aplikacija koje se izvode na klasterima od stotina do tisuća pojedinačnih poslužitelja.
Zašto trebate kontejnere?
Današnji korisnici interneta nikad ne prihvaćaju prekid rada. Stoga programeri moraju pronaći metodu za održavanje i ažuriranje bez prekidanja svojih usluga.
Stoga je spremnik izolirano okruženje. Sadrži sve što je potrebno za rad aplikacije. Programeru olakšava uređivanje i implementaciju aplikacija. Štoviše, kontejnerizacija je postala preferirana metoda za pakiranje, implementaciju i ažuriranje web aplikacija.
Koje zadatke obavlja Kubernetes?
Kubernetes je Linux kernel koji se koristi za distribuirane sustave. Pomaže vam da apstrahirate temeljni hardver čvorova (poslužitelja) i nudi dosljedno sučelje za aplikacije koje troše zajednički skup resursa.
Zašto koristiti Kubernetes?
Kubernetes vam pomaže kontrolirati raspodjelu resursa i upravljanje prometom za aplikacije u oblaku i mikroservise. Također pomaže u pojednostavljenju različitih aspekata infrastruktura orijentiranih na usluge. Kubernetes vam omogućuje da osigurate gdje i kada se pokreću aplikacije u kontejnerima i pomaže vam da pronađete resurse i alate s kojima želite raditi.
Značajke Kubernetesa
Evo bitnih značajki Kubernetesa:
- Automatizirano zakazivanje
- Mogućnosti samoiscjeljivanja
- Automatizirano uvođenje i vraćanje
- Horizontalno skaliranje i balansiranje opterećenja
- Nudi dosljednost okruženja za razvoj, testiranje i proizvodnju
- Infrastruktura je labavo povezana sa svakom komponentom koja može djelovati kao zasebna jedinica
- Omogućuje veću gustoću iskorištenja resursa
- Nudi značajke spremne za poduzeća
- Upravljanje usmjereno na aplikacije
- Auto-skalabilna infrastruktura
- Možete stvoriti predvidljivu infrastrukturu
Osnove Kubernetesa
U ovom vodiču za Kubernetes naučit ćemo neke važne osnove Kubernetesa:
-
Cluster
To je skup hostova (poslužitelja) koji vam pomažu da agregirate njihove dostupne resurse. To uključuje ram, CPU, ram, disk i njihove uređaje u upotrebljiv skup.
-
Majstorski
Master je zbirka komponenti koje čine upravljačku ploču Kubernetesa. Ove se komponente koriste za sve odluke klastera. To uključuje i planiranje i odgovaranje na događaje klastera.
-
Čvor
To je jedno glavno računalo koje može raditi na fizičkom ili virtualni stroj. Čvor bi trebao pokretati kube-proxy, minikube i kubelet koji se smatraju dijelom klastera.
-
Prostor
To je logičan klaster ili okruženje. To je široko korištena metoda koja se koristi za određivanje opsega pristupa ili dijeljenje klastera.
Kubernetes Architektura
Ispod je detaljan dijagram Kubernetes arhitekture:

Glavni čvor
Glavni čvor je prva i najvitalnija komponenta koja je odgovorna za upravljanje Kubernetes klasterom. To je ulazna točka za sve vrste administrativnih zadataka. U klasteru može postojati više od jednog glavnog čvora za provjeru tolerancije na pogreške.
Glavni čvor ima različite komponente kao što su API poslužitelj, upravitelj kontrolera, planer i ETCD. Da ih sve vidim.
API poslužitelj: API poslužitelj djeluje kao ulazna točka za sve REST naredbe koje se koriste za kontrolu klastera.
Raspored
Raspoređivač raspoređuje zadatke podređenom čvoru. Pohranjuje informacije o korištenju resursa za svaki slave čvor. Odgovoran je za raspodjelu radnog opterećenja.
Također vam pomaže da pratite kako se radno opterećenje koristi na čvorovima klastera. Pomaže vam da stavite radno opterećenje na resurse koji su dostupni i prihvatite radno opterećenje.
itd
etcd komponente pohranjuju detalje konfiguracije i wright vrijednosti. Komunicira s većinom komponenti za primanje naredbi i rad. Također upravlja mrežnim pravilima i aktivnostima prosljeđivanja portova.
Radnički/podređeni čvorovi
Radnički čvorovi još su jedna bitna komponenta koja sadrži sve potrebne usluge za upravljanje umrežavanjem između spremnika, komunikaciju s glavnim čvorom, što vam omogućuje dodjeljivanje resursa zakazanim spremnicima.
- Kubelet: dobiva konfiguraciju Pod-a s API poslužitelja i osigurava da su opisani spremnici spremni i pokrenuti.
- Docker spremnik: Lučki radnik spremnik radi na svakom od radnih čvorova, koji pokreću konfigurirane podove
- Kube-proxy: Kube-proxy djeluje kao balanser opterećenja i mrežni proxy za izvođenje usluge na jednom radnom čvoru
- Podovi: Pod je kombinacija jednog ili više spremnika koji se logično pokreću zajedno na čvorovima
Druge ključne terminologije
Replikacijski kontroleri
Replikacijski kontroler je objekt koji definira pod predložak. Također kontrolira parametre za vodoravno skaliranje identičnih replika Poda povećanjem ili smanjenjem broja pokrenutih kopija.
Setovi replikacije
Skupovi replikacije su interakcija na dizajnu kontrolera replikacije s fleksibilnošću u načinu na koji kontroler prepoznaje podove kojima treba upravljati. Zamjenjuje kontrolere replikacije zbog njihove veće mogućnosti odabira replikacije.
implementacija
Implementacija je uobičajeno radno opterećenje koje se može izravno kreirati i upravljati njime. Postavljanje koristi replikaciju postavljenu kao građevni blok koji dodaje značajku upravljanja životnim ciklusom.
Skupovi sa stanjem
Riječ je o specijaliziranoj kontroli mahuna koja nudi sređenost i jedinstvenost. Uglavnom se koristi za preciznu kontrolu, koja vam je posebno potrebna u vezi s redoslijedom implementacije, stabilnim umrežavanjem i trajnim podacima.
Daemon Setovi
Daemon skupovi su još jedan specijalizirani oblik pod kontrolera koji pokreće kopiju pod na svakom čvoru u klasteru. Ova vrsta kontrolera podova učinkovita je metoda za postavljanje podova koja vam omogućuje održavanje i nudi usluge za same čvorove.
Kubernetes protiv Docker Swarma
Evo važnih razlika između Kubernetes protiv Dockera.
| Parametar | Docker Roj | Kubernetes |
|---|---|---|
| Skaliranje | Nema automatskog skaliranja | Automatsko skaliranje |
| Balansiranje opterećenja | Omogućuje automatsko balansiranje opterećenja | Ručno konfigurirajte svoje postavke uravnoteženja opterećenja |
| Dijeljenje volumena pohrane | Dijeli volumene pohrane s bilo kojim drugim spremnikom | Dijeli volumene pohrane između više spremnika unutar istog Poda |
| Korištenje alata za prijavu i praćenje | Upotrijebite 3rd stranački alat kao što je ELK | Omogućite ugrađeni alat za bilježenje i praćenje. |
| Montaža | Jednostavno i brzo | Komplicirano i dugotrajno |
| GUI | GUI nije dostupan | GUI je dostupan |
| skalabilnost | Skaliranje je brže od K8S, ali snaga klastera nije tako robusna | Skaliranje je sporo u usporedbi sa Swarmom, ali jamči jače stanje klastera Balansiranje opterećenja zahtijeva ručnu konfiguraciju usluge |
| Balansiranje opterećenja | Pruža ugrađenu tehniku balansiranja opterećenja | Zakazivanje procesa za održavanje usluga tijekom ažuriranja |
| Ažuriranja i povrati Zapisivanje i praćenje volumena podataka | Progresivna ažuriranja i praćenje ispravnosti usluge. | Dijeli se samo sa spremnicima u istim Pod ugrađenim alatima za bilježenje i praćenje. |
Prednosti Kubernetesa
- Jednostavna organizacija usluge s kapsulama
- Razvio ga je Google, koji na stol donosi godine dragocjenog iskustva u industriji
- Najveća zajednica među alatima za orkestraciju spremnika
- Nudi razne mogućnosti pohrane, uključujući lokalne, SAN-ove i javne oblake
- Pridržava se načela nepromjenjive infrastrukture
- Kubernetes može pokrenuti lokalni bare metal, OpenStack, javne oblake Google, Azure, AWS, Itd
- Pomaže vam da izbjegnete probleme sa zaključavanjem dobavljača jer može koristiti bilo koji API ili usluge specifične za dobavljača osim tamo gdje Kubernetes pruža apstrakciju, npr. balansiranje opterećenja i pohranu.
- Kontejnerizacija pomoću kubernetesa omogućuje paketnom softveru da služi ovim ciljevima. Omogućit će aplikacije koje je potrebno izdati i ažurirati bez zastoja.
- Kubernetes vam omogućuje da osigurate da se te aplikacije u kontejnerima izvode gdje i kada želite i pomaže vam da pronađete resurse i alate za koje želite da rade.
Nedostaci Kubernetesa
- Kubenetes nadzorna ploča nije toliko korisna koliko bi trebala biti
- Kubernetes je malo kompliciran i nepotreban u okruženjima gdje se sav razvoj odvija lokalno.
- Sigurnost nije baš učinkovita.
Rezime
- Kontejner pomaže organizaciji da izvrši održavanje i ažuriranje bez prekidanja usluga
- Kubernetes je primjer sustava za upravljanje kontejnerima razvijenog na Google platformi.
- Najveća prednost korištenja Kubernetesa je ta što može pokrenuti lokalni OpenStack, javne oblake Google, Azure, AWS itd.
- Kubernetes nudi automatizirano planiranje i mogućnosti samoiscjeljivanja.
- Cluster, master, čvor i imenski prostor važne su osnove kubernetesa
- Glavni čvor i radni čvor važne su komponente Kubernetes arhitekture.
- Kontrolori replikacije, skupovi replikacije, implementacije, skupovi stanja, skupovi demona drugi su važni pojmovi koji se koriste u Kubernetesu.
- Docker swarm ne dopušta automatsko skaliranje dok Kubernetes dopušta automatsko skaliranje.
- Najveći nedostatak Kubenetesa je to što njegova nadzorna ploča nije baš korisna i učinkovita
