DevOps

Osnovni pojmovi Kubernetes klastera

Osnovni pojmovi Kubernetes klastera

Kubernetes, poznat kao k8s, ili „kube“, je platforma za orkestraciju kontejnera otvorenog koda.
Automatizuje mnoge procese uključene u postavljanje, upravljanje i skaliranje kontejnerskih aplikacija.

Šta su Kubernetes klasteri?

Kubernetes se može koristiti za grupisanje hostova koji koriste Linux kontejnere.
Kubernetes je alatka koja vam omogućava da lako i efikasno upravljate klasterima. Kubernetes klasteri mogu da obuhvataju hostove iz lokalnih, otvorenih, zatvorenih i hibridnih oblaka (clouda).
Takođe, Kubernetes može da hostuje izvorne aplikacije u oblaku kojima je potrebno brzo skaliranje.

Ko stoji iza Kubernetesa

Kubernetes su dizajnirali i razvili inženjeri iz Gugla.
Gugl je bio jedan od prvih koji je doprineo Linux kontejnerskoj tehnologiji.
Oni su javno govorili o tome kako se sve odvija u kontejnerima u Guglu i ovo je tehnologija koja pokreće Google-ove usluge u cloudu.

Tako po rečima Google-a, oni generišu preko 2 milijarde postavljanja kontejnera nedeljno.
Ovo je sve zahvaljujući njegovoj internoj platformi, Borg.
Borg je bio preteča Kubernetesa. Lekcije naučene tokom godina razvoja Borga postale su glavni uticaj iza većine Kubernetes tehnologije.

Zanimljvosti: Sedam krakova u Kubernetesovom logotipu se odnosi na projekat sedam od devet, originalni naziv projekta.
Red Hat je bila prva kompanija koja je sarađivala sa Google-om na Kubernetes-u.
Ovo je bilo čak i pre lansiranja. Red Hat je od tada postao drugi najveći saradnik Kubernetes-ovog upstream projekta. Zatim je Google je 2015. godine donirao Kubernetes Fondaciji Cloud Native Computing Foundation (CNCF).

Šta sve možete sa Kubernetes i njegove prednosti

Kubernetes ima brojne prednosti, posebno ako optimizujete razvoj aplikacija na cloudu.
Takođe, možete se osloniti na infrastrukturu zasnovanu na kontejnerima u produkcionom okruženju.
Operativni zadaci su automatizovani i kao takvi omogućavaju rad mnogih drugih aplikacija ili sistema za upravljanje, ali i kontejnera.

Kubernetes se može koristiti kao runtime-platforma za kreiranje aplikacija koje su već postavljenje u oblaku od strane programera.
Samim tim onima koji rade na K8s su potrebni samo obrasci da bi napravili servise i aplikacije zasnovane na kontejnerima.

Kubernetes vam omogućava da:

  • Orkestrirate kontejnere na više hostova
  • Da maksimalno iskoristite svoj hardver i  resurse koji su vam potrebni za pokretanje vaših poslovnih aplikacija.
  • Automatizujte i kontrolišete primenu i ažuriranje aplikacija.
  • Pokrenete aplikacije sa statusom, montirajte i proširite skladište.
  • Skalirajte kontejnerske aplikacije u hodu i njihove resurse
  • Deklarativno upravljajte svojim uslugama da biste osigurali da aplikacije koje ste primenili rade tačno onako kako ste želeli.
  • Samoizlečite svoje aplikacije i proverite zdravlje pomoću automatskog pokretanja i automatske replikacije.

Kubernetes zavisi od drugih projekata kako bi u potpunosti ponudio ove orkestrirane servise, pa se može učiniti još moćnijim dodavanjem drugih projekata otvorenog koda.
Ovi osnovni delovi uključuju, između ostalog:

  • Registri, kroz projekte kao što je Docker ragistry
  • Umrežavanje, preko projekata kao što je OpenSwitch i inteligentno rutiranje (intelligent edge routing)
  • Telemetrija je moguća kroz projekte kao što su Kibana, Hawkular ili  Elastic.
  • Sigurnost je moguća kroz projekte kao što su LDAP, SELinux, RBAC, and OAUTH sa višenamenskim nivoima.
  • Automatizacija sa Ansible za upravljanje životnim ciklusom klastera i instalaciju.
  • Servisi sa bogatim katalogom obrazaca aplikacija.

Naučite jezik Kubernetesa

Kao i većina tehnologija, Kubernetes jezik može da deluje kao prepreka u radu.

Hajde da pogledamo neke od najvažnijih termina sa kojima možda niste upoznati, a da biste bolje razumeli Kubernetes.

Control plane: Skup procesa koji kontrolišu Kubernetesove čvorove. Ovde se kreiraju svi zadaci.
Nodes (čvorovi): Ovo su mašine koje obavljaju tražene zadatke kako im je dodelio kontrolni avion.
Pod: Grupa koja se sastoji od jednog ili više kontejnera, svi povezani na jedan čvor. Svi podovi dele IP adresu i IPC. Takođe dele imena hostova i druge resurse. Podovi apstrahuju skladište i mrežu iz svojih osnovnih kontejnera. Ovo vam omogućava da lakše pomerate kontejnere po klasteru.
Kontroler replikacije (replication controller): Ovo određuje koliko identičnih kopija modula mora biti pokrenuto negde na klasteru.
Service: Ovo razdvaja definicije posla i pod. Kubernetes servisni proksi automatski šalje zahteve za uslugu pravom pod-u, bez obzira gde se nalazi u klasteru.
Kubelet – Ova usluga radi na čvorovima. Čita manifeste kontejnera i osigurava da se definisani kontejneri pokreću.
kubectl – Kubernetes alatka za konfiguraciju komandne linije (o ovoj komandi će biti reči u sledećim nastavcima)

Kako funkcioniše Kubernetes?

Osnovni pojmovi Kubernetes klastera

Kubernetes klaster se odnosi na primenu Kubernetesa koja je u funkciji.
Kubernetes klaster se sastoji od dva dela, kontrolne ravni (Control plane) i računarskih mašina ili čvorova (nodova).

Svaki čvor(Node) pokreće sopstveni Linux i može biti fizička ili virtuelna mašina.
Svaki čvor ima mahune koje su napravljene od kontejnera.

Kontrolna ravan je odgovorna za održavanje željenog stanja klastera, uključujući aplikacije koje su trenutno pokrenute i koje slike kontejnera koriste.
Radna opterećenja i aplikacije se zapravo pokreću na računarskim mašinama.

Kubernetes je operativni sistem koji radi na vrhu Red Hat-a (r) Enterprise Linuk-a (r) i komunicira sa kontejnerima koji rade na čvorovima.
Kubernetes kontrolna ravan prihvata komande administratora ili DevOps tima i prenosi ova uputstva računarskim uređajima.

Ova primopredaja se može koristiti sa mnogim servisima da se automatski odredi koji čvor (node) najbolje odgovara zadatku.
Zatim dodeljuje podove tom čvoru i dodeljuje resurse.
Kubernetes klasteri moraju biti u željenom stanju. To znači da aplikacije i druga radna opterećenja moraju da budu pokrenuta. Takođe su im potrebne slike, resursi i drugi detalji konfiguracije.

Upravljanje kontejnerima je u suštini isto sa stanovišta infrastrukture. Kontrola kontejnera je sada na mnogo višem nivou.
Ovo vam daje veću kontrolu i manje potrebe za mikroupravljanjem svakim kontejnerom.
Vaš zadatak je da konfigurišete Kubernetes i definišete čvorove, podove i kontejnere koji se nalaze u njima.
Kubernetes je odgovoran za orkestriranje kontejnera.

Kubernetes lokacija je u potpunosti na vama, pa ga tako možete da koristite na serverima, virtuelnim mašinama, javnim dobavljačima oblaka, privatnim dobavljačima oblaka, hibridnim okruženjima u oblaku ili na virtuelnim mašinama. K8s možete da postavite na razne sisteme, jer je potpuno fleksibilan u radui okruženju.

Saznajte više o komponentama Kubernetes arhitekture

Šta radi Docker:
Kubernetes orkestrira Docker kao okruženje za izvršavanje kontejnera, pa će tako dodeliti pod i kubelet čvoru da uputi Docker kako da pokrene kontejnere.

  • Docker se može koristiti za pokretanje Kubernetesovog vremena izvršavanja kontejnera.
  • Kubernetes raspoređuje pod na čvor.
  • Kubelet na čvoru će uputiti Docker-u kako da pokrene kontejnere.
  • Kubelet kontinuirano prati Dockerov status i dodaje te informacije u kontrolnu ravan.
  • Docker povlači kontejnere na čvor, a zatim pokreće i zaustavlja te kontejnere.

Razlika kada koristite Kubernetes sa Docker-om je u tome što automatizovani sistem traži od Docker-a da uradi te stvari umesto da administrator to radi ručno na svim čvorovima za sve kontejnere.

Šta je Kubernetes matična infrastruktura?

Većina lokalnih Kubernetes implementacija trenutno radi na virtuelnoj infrastrukturi.
Međutim, sve je veći broj Kubernetes instalacija na „bare metal“ serverima.
Ovo je evolucija u tehnologiji data centara.
Kubernetes obezbeđuje platformu za primenu i upravljanje životnim ciklusom za kontejnerizovane aplikacije, dok odvojeni alati upravljaju infrastrukturnim resursima.

Šta ako je data centar dizajniran od nule da podržava kontejnere i uključuje infrastrukturu?

Kubernetes bi obezbedio infrastrukturu sa istim prednostima samoinstaliranja, samoskaliranja i samoizlečenja koje uživaju kontejneri.
I to je ona prava Kubernetes-native arhitektura.

Koje su prednosti domaće infrastrukture Kubernetesa?

  • Agilnost javnog oblaka i jednostavnost na lokalnom nivou za smanjenje napetosti i česog nerazumevanja između IT operacija i programera.
  • Efikasnost troškova se postiže eliminisanjem potrebe za korišćenjem posebnog sloja hipervizora koji pokreće VM
  • Fleksibilnost programera da koriste Kubernetes kontejnere, aplikacije bez servera i Kubernetes virtuelne mašine za skaliranje aplikacija ili infrastrukture
  • Hibridno proširenje oblaka koristeći Kubernetes kao zajednički sloj između lokalnih javnih i privatnih oblaka

Ali šta ako ste izgradili centar podataka od nule?
Kubernetes bi obezbedio infrastrukturu sa istim prednostima za samoinstaliranje, samoskaliranje i samoizlečenje kao i kontejneri. Ovo je Kubernetes-rodna arhitektura.
Koje su prednosti Kubernetes izvorne infrastrukture?

Zašto vam je potreban Kubernetes za aplikacije ?

Kubernetes vam pomaže da upravljate starim aplikacijama koje su izvorne u oblaku i kontejnerima.
Vaš razvojni tim mora biti u stanju da brzo razvije ili skalira nove aplikacije i usluge kako bi ispunio promenljive poslovne zahteve.

Pogledajte ovaj vebinar da biste čuli od stručnjaka koji će vam pomoći da kreirate platformu podataka MongoDB za Kubernetes koja vam je potrebna za razvoj, pokretanje, primenu, održavanje i modernizaciju vaših aplikacija.

Produkcione aplikacije obuhvataju više kontejnera.
Ti kontejneri moraju biti raspoređeni na više hostova, a  Kubernetes vam omogućava da upravljate i orkestrirate kontejnere za primenu velikih razmera.
Orkestracija vam omogućava da kreirate servise aplikacija koji obuhvataju više kontejnera, rasporedite ih u klaster, skalirate i nadgledate kontejnere tokom vremena, pa tako preduzmete efikasne korake ka boljoj IT bezbednosti.

Kubernetes treba da bude integrisan sa umrežavanjem, skladištenjem i bezbednošću da bi obezbedio sveobuhvatnu infrastrukturu kontejnera.

Osnovni pojmovi Kubernetes klastera

Ovako možete skalirati sistem na više aplikacija i proizvodnih okruženja, tako da je više nego očigledno da vam je potrebno više kontejnera za isporuku pojedinačnih usluga.
Linux kontejneri su odličan način za primenu aplikacija zasnovanih na mikroservisima i obezbeđivanje okruženja koje omogućava samostalno izvršavanje.
Mikrousluge u kontejnerima vam omogućavaju da lako organizujete usluge uključujući skladištenje i bezbednost.

Ovo u velikoj meri povećava broj i složenost kontejnera koje imate u svom okruženju.

Kubernetes je rešenje za mnoge uobičajene probleme u vezi sa proliferacijom kontejnera. Organizuje kontejnere u „mahune“. Podovi vam daju mogućnost da organizujete radna opterećenja i pružite usluge skladištenja i umrežavanja.
Druge komponente Kubernetes-a pomažu vam da uravnotežite radno opterećenje u ovim podovima. Takođe možete osigurati da postoji dovoljno kontejnera koji podržavaju vaša radna opterećenja.
Implementacija Kubernetesa je ključna za orkestriranje svih komponenti vaše infrastrukture kontejnera. Ovo se takođe može uraditi uz podršku drugih projekata otvorenog koda kao što su Open Switch i OAuth.

Kako K8s podržava DevOps

Savremeni razvoj aplikacija zahteva nove procese. pa tako i DevOps ubrzava proces nove ideje od razvoja do primene.
Ako bolje pogldamo DevOps se fokusira na standardizaciju okruženja i automatizaciju rutinskih operacija tokom životnog ciklusa aplikacije.
Kontejneri omogućavaju jednostavnije okruženje za razvoj i isporuku, a  takođe olakšava premeštanje aplikacija između proizvodnog (production), testiranja (testing) ili razvojnog okruženja (development).

Implementacija DevOps-a ima veliki značaj:
Kontinuiranu integraciju i kontinualni cevovod ilit pipeline za implementaciju (CI/CD).
CI/CD je način da se brzo isporuče aplikacije klijentima i proveri kvalitet softvera bez ikakve ljudske intervencije.

Korišćenje Kubernetesa u produkciji

Kubernetes je open sorce i ne postoji formalan sistem podrške.

Ako vaša Kubernetes implementacija nije funkcionisala kako treba tokom produkcije, verovatno biste bili veoma frustirani, a takođe i klijenti bi se bi se osećali na isti način.
Kubernetes je kao motor u automobilu.
Motor može da radi samostalno, ali postaje deo funkcionalnog vozila kada je povezan sa menjačem i točkovima.
Da biste imali platformu za proizvodnju, nije dovoljno samo instalirati Kubernetes.

Kubernetesu će biti potrebne dodatne komponente da bi u potpunosti funkcionisao. Biće vam potrebne dodatne komponente da bi bio potpuno operativan i funkcionalan.
To uključuje autentifikaciju, nadgledanje, bezbednost i upravljanje evidencijama.
LKE ili Linode Kubernetes Engine vam može pomoći u ovome – jer je to kompletan automobil.

Linode Kubernetes Engine nudi Kubernetes za preduzeća. Sadrži svu tehnologiju koja čini Kubernetes korisnim i izvodljivim za upotrebu u preduzećima, uključujući registar i telemetriju.
Linode Kubernetes Engine  je Kubernetes sertifikovan od strane CNCF-a i uključuje Kubernetes u svoju centralnu komponentu i usluge.

Linode Kubermetes Engine omogućava vašim programerima da naprave nove aplikacije u kontejnerima i da ih hostuju u oblaku.
Probajte LKE

Napišite komentar