Kubernetes

Kubernetes vs Docker

Kubernetes vs Docker
Kubernetes i Docker su u porastu. Obje tehnologije imaju vrlo različite korijene, ali su se posljednjih godina ispreplele na načine na koje to nitko nije očekivao. Zajednice su se okupile, paketi se prenose među sve moguće operativne sustave i budući da su uglavnom otvoreni izvor, stvorili su mnoštvo satelitskih projekata i konkurenata.

Sve ovo može biti porazno za svakog novog korisnika koji pokušava razumjeti ovu relativno novu paradigmu. Razmotrimo glavne razlike između Kubernetesa i Dockera tako što ćemo prvo dublje zaroniti u to što tehnologije stvarno znače. Ako ste malo upoznati s Dockerom ili K8 (skraćenica od Kubernetes), tada možete preskočiti i pročitati odjeljak TL; DR.

Što je Docker?

Docker je tehnologija kontejnerizacije. Možete pokretati više aplikacija koje su međusobno izolirane na istom operativnom sustavu bez potrebe za virtualizacijom, ali sve prednosti virtualiziranog okruženja. Zamislite Dockerove spremnike kao stvarno male VM-ove za Linux (također i Windows, ali to nije toliko popularno).

Docker ima 3 glavne komponente, prvo Docker motor koji radi u pozadini i upravlja pokrenutim spremnicima i njihovim osiguravanjem. Izlaže REST API koji Docker klijent troši, a to omogućava korisnicima interakciju s Dockerom i izradu novih spremnika ili upravljanje pokrenutim.

Docker je, međutim, jedna sistemska aplikacija. Znači, pokreće i upravlja spremnicima na bilo kojem sustavu na kojem je slučajno pokrenut.  Ogromne aplikacije s tonom prometa i milijunima zahtjeva koji ih pogađaju iz cijelog svijeta trebaju više od jednog poslužitelja. Tu ulazi Kubernetes.

Što je Kubernetes?

Kubernetes koristi prednosti tehnologija kontejnerizacije, poput Dockera, za pokretanje višestrukih replika vaše aplikacije na poslužiteljima i podatkovnim centrima širom svijeta.

Jedna od tehnologija kontejnerizacije koju Kubernetes koristi je Docker. Kubernetes se sastoji od čitavog niza različitih softvera za upravljanje vašom klasterom. Pruža agenta za upravljanje kubeadm, koji se izvodi na nekoliko odabranih glavnih čvorova (čvorovi su VPS ili fizički poslužitelji), a zatim postoje radnički čvorovi na kojima je instaliran Docker s kubectl koja razgovara s Dockerovim motorom kako bi automatizirala postupak predenja ili uklanjanja spremnika. Agenti kubectl koji se izvode na svim radnim čvorovima primaju naredbe od glavnog čvora i daju im povratne informacije o stanju aplikacije koja se izvodi na njihovom čvoru. Otprilike tako obično radi instalacija K8.

Također možete objediniti različite povezane Dockerove spremnike u pakete (zvane mahune). Na primjer, možete složiti spremnike SQL baze podataka i spremnike predmemorije Redis u mahunu, jer želite da baza podataka i njena predmemorija koegzistiraju.

Slično tome, mahune možete izložiti ostalim mahunama kao usluge (poznate i kao mikroservisi), tako da možete imati 50 SQL / Redis mahuna izloženih kao uslugu skladišta podataka na prednjem dijelu vaše aplikacije i tako dalje. Prednost koju dobijete je ta što bi 50 mahuna moglo prolaziti kroz nekoliko podatkovnih centara, pa čak i ako se nekoliko njih spusti, drugi će pokupiti.

Kubernetes je mnogo više od tehnologije. To je način razmišljanja o pokretanju softvera na distribuiranom sustavu.

Kubernetes bez Dockera

Kao što možete vidjeti iz gore navedenog, K8 se uvelike oslanja na kontejnere. Docker je samo jedna od mnogih postojećih tehnologija kontejnerizacije. Ostali su rkt CoreOS-a, LXC Canonical-a, zatvori na FreeBSD-u i zone u Illumosu i SmartOS-u. Kubernetes bi se mogao primijeniti na bilo koju od ovih tehnologija. Zapravo, prilično dobro funkcionira s rktom tvrtke CoreOS.

Međutim, zbog Dockerove popularnosti, zajednica i organizacije su premašile i osigurale da Docker nudi sve i sve ono što Kubernetesove specifikacije traže. Iz tog razloga čak su i projekti poput Dockera na macOS-u i PC-u certificirani Kubernetesom.

Docker bez Kubernetesa

Način na koji Kubernetes ima jednu od najboljih podrški tijekom korištenja Dockera, sam Docker se u velikoj mjeri oslanja na Kubernetes za veliko raspoređivanje spremnika. Docker ima vlastiti sustav upravljanja i orkestracije spremnika poznat kao Docker Swarm, koji bi trebao biti Kubernetesova alternativa.

Unatoč tome što je Docker Swarm domaća tehnologija na Dockeru, Kubernetes je ono što ljudi traže, a čini se da trenutne tržišne projekcije pokazuju da će K8 osvojiti najveći tržišni udio. Docker svoj uspjeh duguje uglavnom svojoj simbiozi s Kubernetesom.

TL; DR

Da skratim, Docker je tehnologija kontejnerizacije namijenjena za rad na jednom računalu. Kubernetes je tehnologija upravljanja koja upravlja velikim brojem spremnika kroz brojne računalne čvorove.

Docker je jedna od najprikladnijih tehnologija za izgradnju vašeg K8 stoga. Za početak započnite tako što ćete se pobrinuti da se vaša aplikacija izvodi kao docker spremnik, a zatim K8 osigurava da se taj spremnik može proširiti po cijelom svijetu, ako se u budućnosti bude pojavila potreba za tim.

5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...
Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...