Programavimas

4 priežastys, kodėl turėtumėte naudoti „Kubernetes“

Sirishas Raghuramas yra „Platform9 Systems“ įkūrėjas ir generalinis direktorius.

Kaip dauguma šiuolaikinės programinės įrangos kūrėjų gali patvirtinti, konteineriai suteikė mums žymiai daugiau lankstumo vykdant debesų programas fizinėje ir virtualioje infrastruktūroje. Konteineriai supakuoja programas sudarančias paslaugas ir padaro jas nešiojamas skirtingose ​​skaičiavimo aplinkose tiek kūrimo / bandymo, tiek gamybos reikmėms. Naudojant konteinerius, lengva greitai pritaikyti programas, kad atitiktų paklausos šuolius. Kadangi konteineriai remiasi pagrindinės OS ištekliais, jie yra daug mažesnio svorio nei virtualiosios mašinos. Tai reiškia, kad konteineriai labai efektyviai naudoja pagrindinę serverio infrastruktūrą.

Kol kas viskas gerai. Nors sudėtinių rodinių vykdymo laiko API yra tinkamos tvarkyti atskirus sudėtinius rodinius, jos yra apgailėtinai nepakankamos, kai reikia valdyti programas, kurias gali sudaryti šimtai sudėtinių rodinių, išdėstytų keliuose pagrindiniuose kompiuteriuose. Konteinerius reikia valdyti ir prijungti prie išorinio pasaulio, kad būtų galima atlikti tokias užduotis kaip planavimas, apkrovos balansavimas ir paskirstymas, ir čia atsiranda toks konteinerių orkestravimo įrankis kaip „Kubernetes“.

Atvirojo kodo sistema, skirta talpinti, keisti mastelį ir tvarkyti konteinerių programas, „Kubernetes“ tvarko konteinerių planavimo darbus skaičiavimo klasteriuose ir tvarko darbo krūvius, kad užtikrintų, jog jie veikia taip, kaip ketina vartotojas. Užuot varžiusi operacijas kaip papildomą sumanymą, „Kubernetes“ sujungia programinės įrangos kūrimą ir operacijas pagal dizainą. Naudodama deklaratyvius, infrastruktūros-agnostinius konstruktus, apibūdinančius, kaip sudaromos programos, kaip jos sąveikauja ir kaip jos yra valdomos, „Kubernetes“ suteikia galimybę didinti šiuolaikinių programinės įrangos sistemų veikimą.

„Kubernetes“ sukūrė „Google“, remdamasi savo patirtimi naudojant konteinerius gamyboje, ir ji tikrai turi didžiąją savo sėkmės dalį dėl „Google“ įsitraukimo. „Google“ turi keletą talentingiausių programinės įrangos kūrėjų planetoje, ir ji teikia kai kurias didžiausias programinės įrangos paslaugas pagal mastą. Šis derinys užtikrino, kad „Kubernetes“ taps tvirta platforma, galinčia patenkinti praktiškai bet kurios organizacijos mastelio poreikius. Šis straipsnis paaiškina, kodėl „Kubernetes“ yra svarbus ir kodėl tai yra reikšmingas žingsnis pirmyn „devops“ komandoms.

Susijęs vaizdo įrašas: kas yra „Kubernetes“?

Šiame 90 sekundžių trukmės vaizdo įraše sužinokite apie „Kubernetes“ - atvirojo kodo sistemą, skirtą automatizuoti konteinerių programas, iš vieno išradėjų - Joe Beda, „Heptio“ įkūrėjo ir CTO.

Šiandienos infrastruktūros pagrindai

Šiomis dienomis kūrėjai raginami rašyti programas, veikiančias keliose operacinėse aplinkose, įskaitant dedikuotus „on-prem“ serverius, virtualius privačius debesis ir viešuosius debesis, tokius kaip AWS ir „Azure“. Tradiciškai programos ir jas palaikančios priemonės buvo glaudžiai susijusios su pagrindine infrastruktūra, todėl, nepaisant jų galimų pranašumų, buvo brangu naudoti kitus diegimo modelius. Tai reiškė, kad programos tapo priklausomos nuo tam tikros aplinkos keliais aspektais, įskaitant našumo problemas, susijusias su konkrečia tinklo architektūra; laikomasi debesų teikėjui būdingų konstrukcijų, pavyzdžiui, nuosavų orkestravimo metodų; ir priklausomybė nuo konkrečios vidinės atminties sistemos.

„PaaS“ bando išspręsti šias problemas, tačiau dažnai kainuoja griežtų reikalavimų nustatymu tokiose srityse kaip programavimo kalbos ir programų sistemos. Taigi daugeliui kūrėjų komandų „PaaS“ nėra ribos.

„Kubernetes“ pašalina infrastruktūros blokavimą, suteikdama pagrindines galimybes konteineriams, nenustatydama apribojimų. Tai pasiekiama derinant „Kubernetes“ platformos funkcijas, įskaitant „Pods“ ir „Services“.

Geresnis valdymas naudojant moduliškumą

Konteineriai leidžia programas suskaidyti į mažesnes dalis, aiškiai atskiriant problemas. Atskiram konteinerio vaizdui skirtas abstrakcijos sluoksnis leidžia mums iš esmės permąstyti, kaip kuriamos paskirstytos programos. Šis modulinis požiūris leidžia greičiau kurti mažesnes, labiau susitelkusias komandas, kurios kiekviena yra atsakinga už konkrečius konteinerius. Tai taip pat leidžia mums izoliuoti priklausomybes ir plačiau naudoti gerai sureguliuotus, mažesnius komponentus.

Bet to negalima pasiekti vien konteineriais; tam reikalinga šių modulinių dalių integravimo ir orkestravimo sistema. „Kubernetes“ tai iš dalies pasiekia naudodamas „Pods“ - paprastai konteinerių rinkinį, kuris valdomas kaip viena programa. Konteineriai dalijasi ištekliais, tokiais kaip failų sistemos, branduolio vardų sritys ir IP adresas. Leisdamas tokiu būdu susidėti konteinerius, „Kubernetes“ pašalina pagundą sukrauti per daug funkcijų į vieną konteinerio vaizdą.

Paslaugos „Kubernetes“ sąvoka naudojama grupuojant „Pods“, atliekančią panašią funkciją, kolekciją. Paslaugas galima lengvai sukonfigūruoti, kad būtų galima rasti, pastebėti, horizontaliai keisti mastą ir balansuoti.

Masto programinės įrangos diegimas ir atnaujinimas

„Devops“ pasirodė kaip būdas pagreitinti programinės įrangos kūrimo, testavimo ir išleidimo procesą. Iš to išplaukia, kad dėmesys buvo pakeistas nuo infrastruktūros valdymo iki programinės įrangos diegimo ir atnaujinimo masto valdymo. Dauguma infrastruktūros sistemų nepalaiko šio modelio, tačiau „Kubernetes“ iš dalies per „Kubernetes Controllers“. Valdiklių dėka lengva naudoti infrastruktūrą valdant programos gyvavimo ciklą.

Diegimo valdiklis supaprastina daugybę sudėtingų valdymo užduočių. Pavyzdžiui:

  • Mastelis. Programinę įrangą galima pirmą kartą įdiegti išplėstiniu būdu per „Pods“, o diegimą galima bet kada padidinti arba sumažinti.
  • Matomumas. Nustatykite užbaigtas, vykstančias ir nepavykusias diegimo galimybes su būsenos užklausomis.
  • Laiko taupymas. Bet kuriuo metu pristabdykite diegimą ir atnaujinkite jį vėliau.
  • Versijų valdymas. Atnaujinkite įdiegtus „Pods“ naudodami naujesnes programų vaizdų versijas ir grįžkite prie ankstesnio diegimo, jei dabartinė versija nėra stabili.

Be kitų galimybių, „Kubernetes“ supaprastina keletą specifinių diegimo operacijų, kurios yra ypač vertingos šiuolaikinių programų kūrėjams. Tai apima:

  • Horizontalusis automatinis mastelio keitimas. „Kubernetes“ automatiniai keitikliai automatiškai nustato diegimo „Pod“ skaičių pagal nurodytų išteklių naudojimą (neviršijant nustatytų ribų).
  • Nuolatiniai naujiniai. „Kubernetes“ diegimo atnaujinimai organizuojami „slenkančiu būdu“ visoje diegimo dėžutėse. Šie atnaujinimai tvarkomi dirbant su neprivalomais iš anksto nustatytais apribojimais, susijusiais su ankščių, kurios gali būti nepasiekiamos, ir atsarginių dėklų, kurie gali būti laikinai, skaičiumi.
  • Kanarų dislokavimas. Naudingas modelis diegiant naują diegimo versiją yra pirmiausia išbandyti naują diegimą gamyboje, lygiagrečiai su ankstesne versija, ir išplėsti naują diegimą, tuo pačiu sumažinant ankstesnį diegimą.

Skirtingai nuo tradicinių „viskas įskaičiuota“ „PaaS“ pasiūlymų, „Kubernetes“ suteikia plačią laisvę palaikomų programų tipams. Jis nediktuoja programų rėmų (pvz., „Wildfly“), neapriboja palaikomų kalbos veikimo trukmės („Java“, „Python“, „Ruby“), aptarnauja tik 12 veiksnių programas arba neskiria „programų“ nuo „paslaugų“. „Kubernetes“ palaiko įvairius darbo krūvius, įskaitant be pilietybės, būsenos ir duomenų apdorojimo darbo krūvius. Jei programa gali veikti talpykloje, ji turėtų gerai veikti „Kubernetes“.

Dedamas debesų programų pagrindas

Nenuostabu, atsižvelgiant į susidomėjimą konteineriais, atsirado kitų valdymo ir orkestravimo įrankių. Tarp populiarių alternatyvų yra „Apache Mesos“ su „Marathon“, „Docker Swarm“, „AWS EC2 Container Service“ (ECS) ir „HashiCorp's Nomad“.

Kiekvienas turi savo nuopelnus. „Docker Swarm“ yra glaudžiai sujungtas su „Docker“ vykdymo laiku, todėl vartotojai gali lengvai pereiti nuo „Docker“ prie „Swarm“; „Mesos“ su „Marathon“ neapsiriboja konteineriais, bet gali naudoti bet kokią programą; Dabartiniams AWS vartotojams lengviau pasiekti AWS ECS. Tačiau „Kubernetes“ sankaupos gali veikti EC2 ir integruotis su tokiomis paslaugomis kaip „Amazon Elastic Block Storage“, „Elastic Load Balancing“, „Auto Scaling Groups“ ir pan.

Šios sistemos pradeda dubliuoti viena kitą funkcijomis ir funkcionalumu, tačiau „Kubernetes“ išlieka nepaprastai populiari dėl savo architektūros, naujovių ir didelės aplinkinės atvirojo kodo bendruomenės.

„Kubernetes“ žymi perversmą „devops“, nes tai leidžia komandoms neatsilikti nuo šiuolaikinės programinės įrangos kūrimo reikalavimų. Jei nėra „Kubernetes“, komandos dažnai buvo priverstos kurti savo programinės įrangos diegimo, mastelio keitimo ir atnaujinimo darbo eigą. Kai kurios organizacijos samdo dideles komandas, kad šios užduotys būtų vykdomos atskirai. „Kubernetes“ leidžia mums gauti maksimalų naudingumą iš talpyklų ir kurti „cloud-native“ programas, kurios gali veikti bet kur, nepriklausomai nuo konkrečių debesies reikalavimų. Tai akivaizdžiai efektyvus programų kūrimo ir operacijų modelis, kurio mes laukėme.

Naujųjų technologijų forumas suteikia galimybę tyrinėti ir aptarti besiformuojančios įmonės technologijas beprecedentiame gylyje. Atranka yra subjektyvi, atsižvelgiant į mūsų pasirinktas technologijas, kurios, mūsų manymu, yra svarbios ir labiausiai domina skaitytojus. nepriima rinkodaros užtikrinimo priemonės paskelbimui ir pasilieka teisę redaguoti visą pateiktą turinį. Visus klausimus siųskite adresu [email protected]