Šta je to Kubernetes i kako se ova tehnologija može koristit?

Šta je to Kubernetes i kako se može primeniti u realnim uslovima?

Tehnološka terminologija često ume da bude zbunjujuća i nerazumljiva za mnoge, s obzirom na to da imamo sve više različitih alata i sistema koji pojedincima i kompanijama pomažu da razviju proizvode koji menjaju svet. Jedno od tih 'tech' rešenja je i sistem Kubernetes o čijem smo razvoju, primeni i značenju razgovarali sa stručnjakom iz ove oblasti.

Objašnjenje toga šta je Kubernetes i čemu služi može poprilično zbuniti one koji do sada nisu čuli za ovu tehnologiju. Štaviše, ako detaljnije pretražujete ovaj pojam, sigurno ćete naići na brojne definicije i pojmove – kako na stranim, tako i domaćim sajtovima. I, bez obzira na to, činiće vam se da je Kubernetes i dalje velika nepoznanica i kompleksna tema zbog pojedinih termina koji su usko vezani za ovu tehnologiju.

Kroz razgovor sa Bobanom Aćimovićem koji ima zavidno iskustvo u oblasti softverskog inženjerstva a koji je, između ostalog, i sertifikovani Kubernetes administrator i Kubernetes application developer, detaljnije definišemo ovu tehnologiju i njenu primenu u realnim uslovima.

Inače, naš sagovornik bavi se i razvojem native Kubernetes aplikacija na programskom jeziku Go, a u poslednjih nekoliko godina radio je sa klijentima kao što su DHL Global i Allianz. U nastavku teksta on nam objašnjava šta njegov posao zapravo podrazumeva.

Zašto je Kubernetes važan?

Kako bi detaljnije i jednostavnije objasnio šta je to zapravo Kubernetes, Boban kaže da ovaj termin zapravo predstavlja sistemsku aplikaciju koja više povezanih računara pretvara u jedan moćni računar, a koju ne koriste samo korporacije, već i startapi. Naravno, bilo bi divno da je ovo precizna definicija, ali s obzirom na to da nije, radi se o daleko kompleksnijoj tehnologiji o kojoj nam je Boban i govorio:

Najpre treba reći da ovo „više povezanih računara“ nije potpuno tačno. Ti „računari“ u stvari mogu biti kako fizički računari, tako i virtualne mašine u okviru nekog daleko većeg računara ili superkompjutera. Takođe ni ovo „povezanih“ ne označava samo fizičku računarsku mrežu koja se sastoji od mrežnih interfejsa, kablova i svičeva, već to može biti i virtualna mreža.

Da bi bili precizniji u izražavanju, neophodno je uvesti nekoliko termina. Dakle, ovaj fizički računar ili virtualnu mašinu zvaćemo „node“ (čvor), a sve nodove koji su povezani u zajednički sistem zvaćemo „cluster“ (grozd). Sada možemo reći da je Kubernetes sistemski softver koji „cluster“ pretvara u jedan moćni računar. Kapacitet resursa tog virtualnog računara jednak je zbiru resursa svih nodova.

E sada, ako se vratimo korak unazad, osvrnuli smo se na to kako i zašto ova tehnologija nastaje i čemu zapravo služi termin „kontejner“ (container), tačnije kakva je njihova povezanost sa Kubernetesom? Boban nam objašnjava da ako iskoristitmo analogiju sa pomorskim saobraćajem, odnosno kontejnerima, lukama i brodovima, Kubernetes bi bio skup luka i brodova, odnosno kompletna logistika za transport kontejnera.

Grafički prikaz i statistika rada Kubernetes sistema u okviru browsera.

Prema njegovim rečima, ako se ponovo vratimo u IT svet i njegovu terminologiju, kontejner je u stvari pojedinačna korisnička aplikacija koja se izvršava na Kubernetes clusteru. U tom kontekstu, kaže Aćimović, Kubernetes je distribuirani operativni sistem, odnosno sistem koji se stara o kompletnom životnom ciklusu svih kontejnera koji se izvršavaju u okviru clustera:

Tradicionalni operativni sistemi poput Linuxa, Windowsa ili macOS-a staraju se o izvršavanju korisničkih aplikacija na pojedinačnom računaru (ili virtualnoj mašini). To podrazumeva puno detalja, počev od toga na kom procesorskom jezgru će se izvršavati aplikacija pa do toga koliko memorije će biti namenjeno istoj. Kao distribuirani operativni sistem, Kubernetes se stara o sličnim pojedinostima ali u okviru clustera.

Dakle, radi se o alokaciji raspoloživih resursa pojedinačnim korisničkim aplikacijama, ali i o staranju o životnom ciklusu istih. Pritom, Kubernetes nije zamena za tradicionalne operativne sisteme. Štaviše, Kubernetes kao i generalno kontejnerske tehnologije, veoma zavisi od operativnog sistema, a to je gotovo ekskluzivno Linux.

Naš sagovornik nam je otkrio da se potreba za kontejnerima javila zbog sve veće kompleksnosti aplikacija i sve većih problema kada se više aplikacija izvršava na istom računaru. Zapravo, svaka aplikacija ima svoje zavisnosti i često može doći do konflikta između raznih aplikacija.

Boban napominje da kontejner u stvari izoluje aplikaciju i sve njene zavisnosti i time omogućava potpuno (ili skoro potpuno) nezavisno izvršavanje na istom fizičkom računaru ili virtuelnoj mašini – kao i da uklanjanjem nekog kontejnera sa računara ne ostaju nikakvi tragovi, nema ni zaostalih fajlova ni podešavanja, sve je potpuno čisto.

U Kubernetesu je sve virtuelno – i memorija i procesor i mreža

Kada smo se već dotakli kontejnerske tehnologije, veoma je važno da pomenemo Docker, firmu koja je veoma doprinela razvoju i popularizaciji kontejnerskih tehnologija, a čiji je glavni proizvod istoimena aplikacija. U tom kontekstu, Kubernetes je sloj iznad Dockera, odnosno sloj iznad kontejnerskih tehnologija od kojih je neke razvila firma Docker, a tom prilikom Boban nam objašnjava sledeće:

Kubernetes je nastao u laboratorijama Google-a, ali je to danas open source rešenje na čiji razvoj imaju uticaj kako najveće IT kompanije u svetu, tako i zajednica pojedinaca koji koriste ova rešenja.

Osim Dockera, postoje i druge kontejnerske platforme poput cri-o, containerd, itd. Pored sistema za izvršavanje kontejnera, Docker aplikacija sadrži i sporedne mogućnosti poput korisničkog interfejsa za kreiranje kontejnera, ali danas ni ovo nije ekskluzivno rešenje iz Dockera, sve veću popularnost dobija i podman.

Boban dodaje da je nešto slično bilo moguće i ranije upotrebom virtualnih mašina (Vagrant), ali Docker virtualizacija zahteva znatno manje resursa, a i dalje omogućava podešavanje lokalnog okruženja za razvoj koje prilično verodostojno preslikava proizvodno okruženje. Samim tim je i broj grešaka daleko manji, jer se najčešće greške primete već prilikom razvoja i lokalnog testiranja:

Dodatna prednost je da developeri mogu samostalno (bez administratora) podesiti puno toga na Kubernetes klasteru, a bez poznavanja hardvera i podešavanja na niskom nivou. U tom kontekstu se čak pojavilo i novo zanimanje- DevOps, što označava developera sa znanjem administrativnih operacijaPored toga, treba istaći da je u Kubernetesu sve virtualno – procesor, memorija i mreža, ali je znatno jednostavnije podešavanje okruženja za razvoj verovatno najveća prednost za developere.

Razvoj i unapređenje cloud tehnologije doprinelo je značajno i stvaranju Kubernetes sistema.

Da je ovde reč o jednoj sofisticiranoj tehnologiji, pokazuju nam i termini koji se usko vezuju za Kubernetes, a reč je o pojmovima kao što su Master, Node, Pod, Kubelete i slično. Kako nam je naš sagovornik još ne početku ovog teksta objasnio pojam Nod-a, na red je došla definicija elemenata kao što su master nod, worker ili minion i Kubelet:

Dakle, master je node u klasteru na kome se izvršavaju sistemske Kubernetes aplikacije, odnosno one aplikacije koje se staraju o izvršenju svih Kubernetes funkcija. Workeri su nodovi na kojima se izvršavaju korisničke aplikacije.

Pod je najmanja logička jedinica na Kubernetesu i označava skup kontejnera koji dele iste resurse i lokalnu mrežu. Ako se sagleda kompletna Kubernetes apstrakcija, pod u stvari logički predstavlja računar. Baš poput svakog umreženog računara, pod ima svoju lokalnu mrežu, svoju IP adresu preko koje komunicira sa drugim podovima ili sa svetom, ima ograničene resurse poput procesora i memorije.

Sa druge strane, kubelet je sistemska Kubernetes aplikacija koja se izvršava na worker nodovima i stara se o životnom ciklusu podova na tom nodu (pokretanje, terminisanje, itd.).

Koji su naredni koraci za ovu tehnologiju?

Još otkada je cloud kao tehnologija zakoračila u korisnički svet, predstavljala je na neki način revoluciju u tehnološkom okruženju. Međutim, upravo je potreba za jednostavnijim korišćenjem cloud tehnologije dovela do razvoja sistema Kubernetes. Boban nam tako objašnjava da isti omogućava jednostavniju skalabilnost, skalabilnost po potrebi (zahtevu), uštede u pogledu hardverskih i ljudskih resursa, samoozdravljenje aplikacija, automatsko otkrivanje zavisnosti, izvršavanje hiljada mikroservisa, itd.

Štaviše, kako Aćimović dodaje, jednim delom Kubernets na popularnosti može zahvalili svom poreklu zato što dolazi iz Google-a, koji važi za jednu od najuspešnijih kompanija svih vremena. Drugi deo globalne popularnosti Kubernetesa dolazi upravo zbog svih benefita koje donosi i koji su jako brzo vidljivi.

Na kraju, nas je zanimalo i to u kojim industrijama će ova tehnologija naći primenu i kakva je budućnost Kubernetesa? Boban kaže da će se ista primenjivati jednostavno svuda, kao i da je Kubernetes trenutno buzzword, a prelazak na isti je hype, te da je svaka ozbiljna kompanija na svetu ili završila tranziciju na Kubernetes ili je u toku tranzicije.

„U ovom trenutku ne mogu ni da pretpostavim kada bi mogao doći kraj tehnologijama poput Linuxa i Kubernetesa, pre mogu da pretpostavim da će se razvijati dalje i da ćemo eventualno dobiti još koji sloj apstrakcije“, zaključio je Boban na kraju.


Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

E-commerce

Gde je nestala besplatna poštarina i da li će AliExpress ikada vratiti ‘Free Shipping’ za Srbiju?

Pisanja medija s početka meseca o tome da AliExpress izbacuje 'free shipping' određenih proizvoda unelo je paniku među mnogima koji kupuju u ovoj online prodavnici. Mi smo analizirali šta je uzrok ovoj promeni i da li uskoro možemo očekivati da se stvari vrate u normalu.

Startapi i poslovanje

3Lateral kupio parcelu u Novom Sadu vrednu €7,7 miliona evra – da li je na pomolu izgradnja njihovog kampusa?

3Lateral kupio je plac u Novom Sadu od skoro 6.500 m2, a koji je plaćen više od 7,7 miliona evra. Znači li to da ova kompanija planira gradnju kampusa?

Gaming

Ovi momci su vicešampioni eEuro 2020 i profesionalni PES igrači u Srbiji

Većina muške populacije je u školskim danima provodila vreme igrajući čuveni PES sa svojim drugarima. Još tada se znalo ko je glavni u kraju, ko ima talenta za ovu igru i ko 'puni mreže' protivnicima. Upravo taj 'PES talenat', Marko Roksić Roksa i Stefan Slavković Kepa podigli su na profesionalni nivo igranja ove igre, napravivši sjajne individualne i reprezentativne rezultate na svetskom nivou.

Propustili ste

Startapi i poslovanje

Upoznajte Stefana Feješa, najmlađeg programera koji radi u GitHubu i jedinog koji dolazi iz Srbije

Stefan Feješ ima 20 godina, fakultet bi trebalo da završi 2022. godine, a već je kreirao šesti najbrže rastući 'open source' projekat u 2018. godini, govorio na nekim od najpoznatijih 'tech' konferencija širom sveta, a prošlog meseca postao je i najmlađi član GitHub tima.

Kultura 2.0

Kako ste danas?

Pre nekoliko godina jedan lanac privatnih zdravstvenih ustanova preplavio je Beograd bilbordima sa ovim pitanjem. I nikome ko je video nije bilo svejedno. 'Struka' se obrušila na kampanju, a suštinski ni tada ni danas nije bilo jasno koji je tačno problem sa tim što je komunicirano.

Startapi i poslovanje

ICT Hub Venture investirao u beogradski startap Trickest sa ciljem da se podrži razvoj rešenja u oblasti ‘cyber’ bezbednosti

ICT Hub Venture, investicioni fond sa sedištem u Beogradu koji ulaže u startape u ranoj fazi razvoja, investirao je u Trickest, beogradski startap koji se bavi 'cyber' bezbednošću. Cilj je da se podrži razvoj 'cloud-based' platforme koja će omogućiti dinamično testiranje radi pronalaska slabih tačaka i ranjivosti svakog sistema.

Gaming

Kako sam sa C# prešao na C++ i zašto to ne bih uspeo bez mentora?

Industrija video igara definitivno napreduje - kako na svetskoj tako i na domaćoj sceni. Ono što doprinosi njenoj ekspanziji je prisustvo raznih besplatnih 'subscription' ili 'premium game engine'-a, među kojima se najčešće nailazi na rešenja koja koriste C# ili C++. Ovo je moja priča kako sam sa prvog programskog jezika prešao na drugi.

Startapi i poslovanje

Payoneer potvrdio: Kartice su ponovo aktivne za sve korisnike

Kompanija Payoneer upravo je potvrdila da su njihove Prepaid Mastercard kartice ponovo aktivne nakon što je prošle nedelje 'fintech' kompanija Wirecard, njihov provajder, proglasila bankrot.

E-commerce

Gde je nestala besplatna poštarina i da li će AliExpress ikada vratiti ‘Free Shipping’ za Srbiju?

Pisanja medija s početka meseca o tome da AliExpress izbacuje 'free shipping' određenih proizvoda unelo je paniku među mnogima koji kupuju u ovoj online prodavnici. Mi smo analizirali šta je uzrok ovoj promeni i da li uskoro možemo očekivati da se stvari vrate u normalu.