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

Infobip ❤️ Netokracijašta akvizicija znači za vas i za nas?

Š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.


Ostavi komentar

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Karijere

Dejan Milošević: Istraživanje i rad na sebi sastavni su deo karijere svakog uspešnog developera

Prethodnih 20 godina Dejan Milošević radi u IT industriji, gde je imao priliku da se susretne sa različitim programskim jezicima i stručnim pozicijama. Sada je član kompanije HTEC, a on nam je otkrio kako je izgledala njegova karijera na 'tech' sceni i šta tačno podrazumeva pozicija Tech Excellence Specialist na kojoj trenutno radi.

Gaming

Gejming u 2022. godini: PC, konzole ili mobilni telefoni – pitanje je sad?

Gejming je iz godine u godinu sve popularniji deo pop kulture širom sveta. Izrada video igara novijih generacija dostigla je jedan sasvim novi nivo, pa se danas više nego ikada pre postavlja pitanja da li su primat u ovom svetu uzeli PC mašine ili gejming konzole.

Karijere

Kako je Miljan od pozicije praktikanta došao do posla softver inženjera u Microsoft razvojnom centru

Microsoft i ove godine organizuje plaćenu studentsku praksu u svom razvojnom centru, a svi zainteresovani studenti mogu da se prijave do 7. avgusta.

Propustili ste

Gaming

Playstudios sa fondom od $10 miliona i osnivanjem novog blockchain tima ulazi u web3

Kompanija Playstudios, kreator revolucionarne platforme lojalnosti 'playAWARDS' i brojnih nagrađivanih mobilnih igara, juče je najavila pokretanje novog blokchain departmana pod nazivom 'playBLOCKS'.

Karijere

HelloWorld i ove godine ispituje ‘Puls srpske IT zajednice’: IT-jevci, popunite anketu i podržite istraživanje

Sajt za zapošljavanje IT kadrova HelloWorld.rs i međunarodna istraživačka agencija MASMI trenutno sprovode istraživanje o iskustvima na poslu u IT sektoru.

Web 3.0

Solana blockchain je najnovija žrtva hakerskog napada – šta ovo znači za budućnost crypto tržišta?

Čelnici kompanije navode da su nepoznati napadači do sada opljačkali oko 8.000 crypto novčanika, a da korisnici broje štetu od 8 miliona dolara.

Office Talks Podcast

$60 miliona investicije za razvoj web3 alata

Gosti 104. epizode Netokracijinog Office Talks podcasta bili su Miljan Tekić (COO) i Nebojša Urošević (suosnivač) iz kompanije Tenderly. Sa njima smo imali priliku da razgovaramo o trenutnom razvoju kompanije, širenju tima i investiciji, uz osvrt na sadašnju situaciju u globalnoj web3 industriji.

Internet marketing

Google odlaže ukidanje ‘third party’ kolačića do 2024. godine – šta to znači za oglašivače?

Kako se domaće kompanije i marketinške agencije prilagođavaju najavljenim promenama i da li će biti spremne kada do njih dođe?

Karijere

Kako je Miljan od pozicije praktikanta došao do posla softver inženjera u Microsoft razvojnom centru

Microsoft i ove godine organizuje plaćenu studentsku praksu u svom razvojnom centru, a svi zainteresovani studenti mogu da se prijave do 7. avgusta.