Programovanie

4 dôvody, prečo by ste mali použiť Kubernetes

Sirish Raghuram je spoluzakladateľom a generálnym riaditeľom spoločnosti Platform9 Systems.

Ako môže potvrdiť väčšina moderných vývojárov softvéru, kontajnery nám poskytli dramaticky väčšiu flexibilitu pre spustenie natívnych cloudových aplikácií na fyzickej a virtuálnej infraštruktúre. Kontajnery obsahujú služby zahŕňajúce aplikáciu a umožňujú ich prenosnosť v rôznych výpočtových prostrediach pre vývojové aj testovacie aj produkčné účely. S kontajnermi je ľahké rýchlo rozšíriť inštancie aplikácií tak, aby zodpovedali špičkám v dopyte. A pretože kontajnery čerpajú zo zdrojov hostiteľského OS, majú oveľa menšiu váhu ako virtuálne stroje. To znamená, že kontajnery vysoko efektívne využívajú základnú serverovú infraštruktúru.

Zatiaľ je všetko dobré. Aj keď sú rozhrania API pre beh kontajnerov vhodné na správu jednotlivých kontajnerov, sú žalostne neadekvátne, pokiaľ ide o správu aplikácií, ktoré môžu obsahovať stovky kontajnerov rozložených na viacerých hostiteľoch. Kontajnery je potrebné spravovať a pripájať k vonkajšiemu svetu pre úlohy, ako je plánovanie, vyvažovanie záťaže a distribúcia, a práve tu si nástroj na orchestráciu kontajnerov, ako je Kubernetes, príde na svoje.

Ako systém s otvoreným zdrojovým kódom na nasadenie, zmenu mierky a správu aplikácií v kontajneroch Kubernetes spracováva prácu s plánovaním kontajnerov na výpočtový klaster a riadi pracovné záťaže, aby zabezpečil ich chod tak, ako zamýšľal používateľ. Namiesto dodatočného nasadenia operácií prináša spoločnosť Kubernetes vývoj softvéru a operácie už od návrhu. Pomocou deklaratívnych infraštruktúrno-agnostických konštrukcií na opísanie toho, ako sú aplikácie zložené, ako interagujú a ako sú riadené, umožňuje Kubernetes rádovo väčšie zvýšenie funkčnosti moderných softvérových systémov.

Kubernetes bol postavený spoločnosťou Google na základe vlastných skúseností s prevádzkovaním kontajnerov vo výrobe a za svoj úspech určite vďačí zapojeniu spoločnosti Google. Google má jedných z najtalentovanejších vývojárov softvéru na planéte a prevádzkuje jedny z najväčších softvérových služieb podľa rozsahu. Táto kombinácia zabezpečila, že Kubernetes sa stane skalopevnou platformou, ktorá dokáže uspokojiť potreby škálovania prakticky akejkoľvek organizácie. Tento článok vysvetľuje, prečo je Kubernetes dôležitý a prečo predstavuje významný krok vpred pre vývojové tímy.

Súvisiace video: Čo je to Kubernetes?

V tomto 90-sekundovom videu sa dozviete o Kubernetes, systéme open-source na automatizáciu kontajnerových aplikácií, od jedného z vynálezcov tejto technológie, Joe Beda, zakladateľ a CTO spoločnosti Heptio.

Rámec infraštruktúry pre dnešok

V dnešnej dobe sa od vývojárov žiada, aby písali aplikácie, ktoré bežia vo viacerých operačných prostrediach, vrátane dedikovaných serverov on-prem, virtualizovaných súkromných cloudov a verejných cloudov, ako sú AWS a Azure. Aplikácie a nástroje, ktoré ich podporujú, boli tradične úzko spojené so základnou infraštruktúrou, takže použitie iných modelov nasadenia bolo napriek ich potenciálnym výhodám nákladné. To znamenalo, že aplikácie sa stali závislými na konkrétnom prostredí z niekoľkých hľadísk, vrátane problémov s výkonom súvisiacich so špecifickou sieťovou architektúrou; dodržiavanie konštruktov špecifických pre poskytovateľa cloudu, ako sú napríklad špeciálne orchestračné techniky; a závislosti na konkrétnom back-endovom úložnom systéme.

PaaS sa snaží tieto problémy obísť, ale často za cenu zavedenia prísnych požiadaviek v oblastiach, ako sú programovacie jazyky a aplikačné rámce. PaaS je teda pre mnohé vývojové tímy obmedzený.

Kubernetes eliminuje blokovanie infraštruktúry poskytovaním základných funkcií pre kontajnery bez zavádzania obmedzení. Dosahuje to kombináciou funkcií v rámci platformy Kubernetes vrátane tobogánov a služieb.

Lepšia správa vďaka modularite

Kontajnery umožňujú rozklad aplikácií na menšie časti s jasným oddelením záujmov. Abstrakčná vrstva poskytnutá pre individuálny obrázok kontajnera nám umožňuje zásadne prehodnotiť, ako sú zostavené distribuované aplikácie. Tento modulárny prístup umožňuje rýchlejší vývoj menším a zameranejším tímom, ktoré sú zodpovedné za konkrétne kontajnery. Umožňuje nám tiež izolovať závislosti a širšie využívať dobre vyladené a menšie komponenty.

Ale to sa nedá dosiahnuť samotnými kontajnermi; vyžaduje to systém pre integráciu a orchestráciu týchto modulárnych častí. Kubernetes to čiastočne dosahuje pomocou podložiek - zvyčajne ide o kolekciu kontajnerov, ktoré sa ovládajú ako jedna aplikácia. Kontajnery zdieľajú prostriedky, ako sú systémy súborov, menné priestory jadra a adresa IP. Tým, že Kubernetes umožní toto umiestnenie kontajnerov, odstráni pokušenie vtesnať príliš veľa funkcií do jedného obrázka kontajnera.

Koncept služby v Kubernetes sa používa na zoskupenie kolekcie toboliek, ktoré vykonávajú podobnú funkciu. Služby možno ľahko nakonfigurovať na zistiteľnosť, pozorovateľnosť, horizontálne škálovanie a vyváženie záťaže.

Nasadzovanie a aktualizácia softvéru v rozsahu

Devops sa ukázal ako metóda na urýchlenie procesu budovania, testovania a vydávania softvéru. Dôsledkom toho bol posun v dôraze od riadenia infraštruktúry k riadeniu spôsobu, akým je softvér nasadený a aktualizovaný vo veľkom rozsahu. Väčšina infraštruktúrnych rámcov tento model nepodporuje, ale Kubernetes ho podporuje, čiastočne prostredníctvom radičov Kubernetes. Vďaka riadiacim jednotkám je ľahké používať infraštruktúru na správu životného cyklu aplikácie.

Ovládač nasadenia zjednodušuje množstvo zložitých úloh správy. Napríklad:

  • Škálovateľnosť. Softvér je možné nasadiť po prvýkrát v škálovateľnom režime naprieč modulmi Pod a rozmiestnenie sa dá škálovať dovnútra alebo von kedykoľvek.
  • Viditeľnosť Identifikujte dokončené, prebiehajúce a zlyhávajúce nasadenia pomocou funkcií na zisťovanie stavu.
  • Úspora času. Nasadenie môžete kedykoľvek pozastaviť a neskôr v ňom pokračovať.
  • Kontrola verzie. Aktualizujte nasadené moduly Pod pomocou novších verzií obrazov aplikácií a vráťte sa k predchádzajúcemu nasadeniu, ak aktuálna verzia nie je stabilná.

Okrem iných možností Kubernetes zjednodušuje niekoľko konkrétnych operácií nasadenia, ktoré sú obzvlášť cenné pre vývojárov moderných aplikácií. Medzi ne patria:

  • Horizontálne automatické škálovanie. Automatické škálovače Kubernetes automaticky upravujú počet toboliek nasadenia na základe využitia zadaných zdrojov (v rámci stanovených limitov).
  • Priebežné aktualizácie. Aktualizácie nasadenia Kubernetes sú organizované „priebežne“ naprieč modulmi nasadenia. Tieto postupné aktualizácie sa organizujú pri práci s voliteľnými preddefinovanými obmedzeniami počtu toboliek, ktoré môžu byť nedostupné, a počtu náhradných toboliek, ktoré môžu dočasne existovať.
  • Kanárske nasadenia. Užitočným vzorom pri nasadení novej verzie nasadenia je prvé otestovanie nového nasadenia v produkcii, paralelne s predchádzajúcou verziou, a rozšírenie nového nasadenia pri súčasnom zmenšení rozsahu predchádzajúceho nasadenia.

Na rozdiel od tradičných all-inclusive ponúk PaaS poskytuje Kubernetes široké možnosti pre podporované typy aplikácií. Nediktuje aplikačné rámce (napríklad Wildfly), neobmedzuje podporované jazykové moduly (Java, Python, Ruby), obstaráva iba 12-faktorové aplikácie ani nerozlišuje „aplikácie“ od „služieb“. Kubernetes podporuje širokú škálu pracovných záťaží vrátane pracovných záťaží bez štátnej príslušnosti, stavu a spracovania údajov. Ak môže aplikácia bežať v kontajneri, mala by fungovať dobre aj na Kubernetes.

Položenie základu pre natívne cloudové aplikácie

Niet divu, že vzhľadom na záujem o kontajnery sa objavili ďalšie nástroje na správu a orchestráciu. Medzi populárne alternatívy patria Apache Mesos s Marathon, Docker Swarm, AWS EC2 Container Service (ECS) a HashiCorp’s Nomad.

Každá má svoje opodstatnenie. Docker Swarm je pevne spojený s runtime Docker, takže používatelia môžu ľahko prechádzať z Docker do Swarm; Mesos with Marathon sa neobmedzuje iba na kontajnery, ale môže nasadiť akýkoľvek druh aplikácie; Aktuálni používatelia AWS majú k AWS ECS ľahší prístup. Klastre Kubernetes však môžu bežať na EC2 a integrovať sa so službami, ako sú Amazon Elastic Block Storage, Elastic Load Balancing, Auto Scaling Groups a tak ďalej.

Tieto rámce sa začínajú navzájom duplikovať, čo sa týka funkcií a funkcií, ale Kubernetes zostáva nesmierne populárny vďaka svojej architektúre, inovácii a veľkej komunite otvorených zdrojov, ktorá ho obklopuje.

Kubernetes predstavuje prielom pre vývojárov, pretože umožňuje tímom držať krok s požiadavkami vývoja moderného softvéru. Pri absencii Kubernetes boli tímy často nútené skriptovať svoje vlastné nasadenie softvéru, škálovanie a aktualizovať pracovné postupy. Niektoré organizácie zamestnávajú veľké tímy, aby tieto úlohy zvládali samy. Kubernetes nám umožňuje odvodiť maximálnu užitočnosť z kontajnerov a vytvárať natívne cloudové aplikácie, ktoré môžu bežať kdekoľvek, nezávisle od konkrétnych cloudových požiadaviek. Toto je jednoznačne efektívny model pre vývoj a prevádzku aplikácií, na ktorý sme čakali.

Nové technologické fórum poskytuje miesto na preskúmanie a diskusiu o vznikajúcich podnikových technológiách v nebývalej hĺbke a šírke. Výber je subjektívny, založený na našom výbere technológií, ktoré považujeme za dôležité a pre čitateľov najväčší záujem. neprijíma marketingové záruky na zverejnenie a vyhradzuje si právo upravovať všetok prispievaný obsah. Všetky otázky posielajte na adresu [email protected].

$config[zx-auto] not found$config[zx-overlay] not found