Programmēšana

4 iemesli, kāpēc jums vajadzētu izmantot Kubernetes

Sirish Raghuram ir platformas Systems līdzdibinātājs un izpilddirektors.

Kā lielākā daļa mūsdienu programmatūras izstrādātāju var apliecināt, konteineri ir nodrošinājuši mums ievērojami lielāku elastību, lai fiziskajā un virtuālajā infrastruktūrā palaistu mākoņdatošanas lietojumprogrammas. Konteineri iesaiņo pakalpojumus, kas satur lietojumprogrammu, un padara tos pārnēsājamus dažādās skaitļošanas vidēs gan izstrādes / testēšanas, gan ražošanas vajadzībām. Izmantojot konteinerus, ir viegli ātri nobraukt lietojumprogrammu gadījumus, lai tie atbilstu pieprasījumam. Tā kā konteineri izmanto resursdatora resursus, tiem ir daudz mazāks svars nekā virtuālajām mašīnām. Tas nozīmē, ka konteineri ļoti efektīvi izmanto pamata servera infrastruktūru.

Tik tālu, labi. Lai gan konteineru izpildlaika API ir labi piemēroti atsevišķu konteineru pārvaldībai, tie ir nožēlojami nepietiekami, ja runa ir par tādu lietojumprogrammu pārvaldību, kurās varētu būt simtiem konteineru, kas izvietoti vairākos resursdatoros. Konteineri ir jāpārvalda un jāsavieno ar ārpasauli tādu uzdevumu veikšanai kā plānošana, slodzes līdzsvarošana un izplatīšana, un tieši šeit tiek izveidots tāds konteineru orķestrēšanas rīks kā Kubernetes.

Atvērtā pirmkoda sistēma konteinerizētu lietojumprogrammu izvietošanai, mērogošanai un pārvaldībai Kubernetes veic konteineru plānošanas darbu skaitļošanas klasterī un pārvalda darba slodzes, lai nodrošinātu, ka tās darbojas tā, kā to paredzējis lietotājs. Tā vietā, lai pēc iespējas vairāk pieskrūvētu operācijas, Kubernetes apvieno programmatūras izstrādi un darbības pēc dizaina. Izmantojot deklaratīvos, infrastruktūras-agnostiskos konstruktus, lai aprakstītu, kā tiek veidotas lietojumprogrammas, kā tās mijiedarbojas un kā tās tiek pārvaldītas, Kubernetes ļauj palielināt moderno programmatūras sistēmu darbspēju pēc kārtas.

Uzņēmumu Kubernetes uzbūvēja Google, pamatojoties uz savu pieredzi konteineru ekspluatācijā ražošanā, un tas, protams, ir saistīts ar Google līdzdalību. Uzņēmumam Google ir daži no talantīgākajiem programmatūras izstrādātājiem uz planētas, un tas nodrošina dažus lielākos programmatūras pakalpojumus pēc mēroga. Šī kombinācija nodrošināja, ka Kubernetes kļūs par stingru platformu, kas var apmierināt praktiski jebkuras organizācijas mērogošanas vajadzības. Šis raksts izskaidro, kāpēc Kubernetes ir svarīgs un kāpēc tas ir nozīmīgs solis uz priekšu devops komandām.

Saistītais video: kas ir Kubernetes?

Šajā 90 sekunžu ilgajā videoklipā uzziniet par Kubernetes, atvērtā koda sistēmu konteinerizētu lietojumprogrammu automatizēšanai, ko ieguvis viens no šīs tehnoloģijas izgudrotājiem, Džo Beda, Heptio dibinātājs un CTO.

Infrastruktūras ietvars šodienai

Šajās dienās izstrādātāji tiek aicināti rakstīt lietojumprogrammas, kas darbojas vairākās darbības vidēs, ieskaitot īpašus serverus uz vietas, virtualizētus privātus mākoņus un publiskus mākoņus, piemēram, AWS un Azure. Tradicionāli lietojumprogrammas un tās atbalstošie rīki ir cieši saistīti ar pamata infrastruktūru, tāpēc, neskatoties uz to potenciālajām priekšrocībām, bija dārgi izmantot citus izvietošanas modeļus. Tas nozīmēja, ka lietojumprogrammas vairākos aspektos kļuva atkarīgas no konkrētas vides, ieskaitot veiktspējas jautājumus, kas saistīti ar konkrētu tīkla arhitektūru; ievērošana mākoņa nodrošinātāja specifiskām konstrukcijām, piemēram, patentētām orķestrēšanas metodēm; un atkarība no konkrētas aizmugures glabāšanas sistēmas.

PaaS mēģina apiet šos jautājumus, taču bieži vien par cenu, nosakot stingras prasības tādās jomās kā programmēšanas valodas un lietojumprogrammu ietvars. Tādējādi PaaS daudzām attīstības komandām nav atļauts.

Kubernetes novērš infrastruktūras bloķēšanu, nodrošinot konteineru galvenās iespējas, neuzliekot ierobežojumus. Tas to panāk, izmantojot Kubernetes platformas funkciju kombināciju, ieskaitot Pods un Services.

Labāka vadība, izmantojot modularitāti

Konteineri ļauj sadalīt lietojumus mazākās daļās, skaidri nošķirot bažas. Atsevišķam konteinera attēlam paredzētais abstrakcijas slānis ļauj mums pamatīgi pārdomāt, kā tiek būvētas izplatītās lietojumprogrammas. Šī modulārā pieeja ļauj ātrāk attīstīties mazākām, mērķtiecīgākām komandām, kuras katra ir atbildīga par konkrētiem konteineriem. Tas arī ļauj mums izolēt atkarības un plašāk izmantot labi pielāgotus, mazākus komponentus.

Bet to nevar panākt tikai ar konteineriem; tam nepieciešama sistēma šo moduļu daļu integrēšanai un orķestrēšanai. Kubernetes to daļēji sasniedz, izmantojot Pods - parasti konteineru kolekciju, kas tiek kontrolēta kā viena lietojumprogramma. Konteineri koplieto resursus, piemēram, failu sistēmas, kodola nosaukumvietas un IP adresi. Ļaujot šādā veidā izvietot konteinerus, Kubernetes novērš kārdinājumu sabāzt pārāk daudz funkcionalitātes vienā konteinera attēlā.

Pakalpojuma jēdziens Kubernetes tiek izmantots, lai sagrupētu Pods kolekciju, kas veic līdzīgu funkciju. Pakalpojumus var viegli konfigurēt, lai tie būtu pamanāmi, novērojami, horizontāli mērogoti un slodzes līdzsvaroti.

Programmatūras izvietošana un atjaunināšana mērogā

Devops parādījās kā metode programmatūras veidošanas, testēšanas un izlaišanas paātrināšanai. Tā rezultātā ir mainījusies uzsvars no infrastruktūras pārvaldības uz programmatūras izvietošanas un atjaunināšanas pārvaldību. Lielākā daļa infrastruktūras ietvaru neatbalsta šo modeli, bet Kubernetes daļēji atbalsta Kubernetes kontrolierus. Pateicoties kontrolieriem, ir viegli izmantot infrastruktūru, lai pārvaldītu lietojumprogrammas dzīves ciklu.

Izvietošanas kontrolieris vienkāršo vairākus sarežģītus pārvaldības uzdevumus. Piemēram:

  • Mērogojamība. Programmatūru pirmo reizi var izvietot paplašināšanas veidā visā Pods, un izvietošanu var jebkurā laikā palielināt vai samazināt.
  • Redzamība. Identificējiet pabeigtas, procesā esošas un neveiksmīgas izvietošanas iespējas ar statusa vaicāšanas iespējām.
  • Laika ietaupījums. Jebkurā laikā apturiet izvietošanu un atsāciet to vēlāk.
  • Versijas kontrole. Atjauniniet izvietotos podus, izmantojot jaunākas lietojumprogrammas attēlu versijas, un pārejiet uz iepriekšējo izvietojumu, ja pašreizējā versija nav stabila.

Papildus citām iespējām Kubernetes vienkāršo dažas specifiskas izvietošanas darbības, kas ir īpaši vērtīgas mūsdienu lietojumprogrammu izstrādātājiem. Tie ietver sekojošo:

  • Horizontāla automātiskā mērogošana. Kubernetes automātiskie mērinstrumenti automātiski izmaina izvietojuma pogu skaitu, pamatojoties uz norādīto resursu izmantošanu (noteiktās robežās).
  • Notiek atjauninājumu atjaunināšana. Kubernetes izvietojuma atjauninājumi tiek sakārtoti “ritošā veidā” visā izvietojuma pākstis. Šie ritošie atjauninājumi tiek sakārtoti, strādājot ar izvēles iepriekš noteiktiem ierobežojumiem pākšu skaitam, kas var nebūt pieejams, un rezerves pākšu skaitam, kas, iespējams, pastāv īslaicīgi.
  • Kanāriju salu izvietošana. Noderīgs modelis, izvietojot jaunu izvietošanas versiju, ir vispirms pārbaudīt jauno izvietošanu produkcijā paralēli iepriekšējai versijai un palielināt jauno izvietojumu, vienlaikus samazinot iepriekšējo izvietojumu.

Atšķirībā no tradicionālajiem, visaptverošajiem PaaS piedāvājumiem, Kubernetes nodrošina plašas iespējas atbalstīto lietojumprogrammu veidiem. Tas nediktē lietojumprogrammu ietvarus (piemēram, Wildfly), neierobežo atbalstītos valodas izpildlaikus (Java, Python, Ruby), nodrošina tikai 12 faktoru lietojumprogrammas vai nenošķir lietotnes no pakalpojumiem. Kubernetes atbalsta ļoti dažādas slodzes, tostarp bezvalstnieku, statusa un datu apstrādes slodzes. Ja lietojumprogramma var darboties konteinerā, tai vajadzētu darboties labi Kubernetes.

Liekot pamatu vietējām mākoņprogrammām

Nepārsteidz, ņemot vērā interesi par konteineriem, ir parādījušies citi pārvaldības un orķestrēšanas rīki. Populāras alternatīvas ir Apache Mesos ar Marathon, Docker Swarm, AWS EC2 Container Service (ECS) un HashiCorp’s Nomad.

Katram ir savi nopelni. Docker Swarm ir cieši saistīts ar Docker izpildlaiku, lai lietotāji varētu viegli pāriet no Docker uz Swarm; Mesos ar Marathon neaprobežojas tikai ar konteineriem, bet var izvietot jebkāda veida lietojumprogrammas; Pašreizējiem AWS lietotājiem ir vieglāk piekļūt AWS ECS. Tomēr Kubernetes kopas var darboties ar EC2 un integrēties ar tādiem pakalpojumiem kā Amazon Elastic Block Storage, Elastic Load Balancing, Auto Scaling Groups utt.

Šīs sistēmas sāk dublēt viena otru funkcijās un funkcionalitātē, taču Kubernetes joprojām ir ārkārtīgi populāra tās arhitektūras, inovāciju un lielās atvērtā pirmkoda kopienas dēļ.

Kubernetes iezīmē izrāvienu devops, jo tas ļauj komandām sekot līdzi mūsdienu programmatūras izstrādes prasībām. Tā kā nav Kubernetes, komandas bieži vien ir spiestas skriptu veidot savas programmatūras izvietošanas, mērogošanas un atjaunināšanas darbplūsmas. Dažas organizācijas nodarbina lielas komandas, lai tās veiktu vienatnē. Kubernetes ļauj mums iegūt maksimālu lietderību no konteineriem un veidot mākoņdatošanas lietojumprogrammas, kuras var darboties jebkur, neatkarīgi no mākoņam specifiskām prasībām. Tas nepārprotami ir efektīvais lietojumprogrammu izstrādes un darbību modelis, ko mēs gaidījām.

Jauno tehnoloģiju forums nodrošina vietu, kur bezprecedenta dziļumā un plašumā izpētīt un pārrunāt topošās uzņēmuma tehnoloģijas. Izvēle ir subjektīva, balstoties uz mūsu izvēlētajām tehnoloģijām, kuras, mūsuprāt, ir svarīgas un interesē lasītājus. nepieņem mārketinga nodrošinājumu publicēšanai un patur tiesības rediģēt visu ieguldīto saturu. Nosūtiet visus jautājumus uz [email protected].

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