Кубернетес - кроћење облака

Када желите да користите Линук за пружање услуга предузећу, те услуге ће морати да буду сигурне, еластичне и скалабилне. Лепе речи, али шта подразумевамо под њима?

„Безбедно“ значи да корисници могу приступити подацима који су им потребни, било да имају приступ само за читање или приступ писању. Истовремено, ниједан податак није изложен ниједној страни која није овлашћена да их види. Сигурност је обмањујућа: можете мислити да сте све заштитили да бисте касније сазнали да постоје рупе. Дизајнирање сигурности од почетка пројекта је далеко лакше него покушај накнадне уградње.

„Отпорно“ значи да ваше услуге толеришу кварове на инфраструктури. Квар може бити контролер серверског диска који више не може приступити ниједном диску, чинећи податке недоступним. Или је квар можда мрежни прекидач који више не омогућава комуникацију два или више система. У овом контексту, „једна тачка квара“ или СПОФ је квар који негативно утиче на доступност услуге. Отпорна инфраструктура је она без СПОФ-ова.

„Скалабилан“ описује способност система да грациозно подносе скокове потражње. Такође диктира колико лако се могу извршити промене у системима. На пример, додавање новог корисника, повећање капацитета за складиштење или премештање инфраструктуре из Амазон Веб Сервицес у Гоогле Цлоуд - или чак њено премештање у кући.

Чим се ваша инфраструктура прошири даље од једног сервера, постоји много опција за повећање сигурности, отпорности и скалабилности. Погледаћемо како су се ти проблеми традиционално решавали и која је нова технологија доступна која мења изглед великих рачунарских апликација.

Набавите још Линука!

Уживате ли у ономе што читате? Желите више Линука и отвореног кода? Можемо испоручити, буквално! Претплатите се на Линук Формат већ данас по повољној цени. Можете добити издања за штампу, дигитална издања или зашто не оба? Достављамо на ваша врата широм света за једноставну годишњу накнаду. Учините свој живот бољим и лакшим, претплатите се одмах!

Да бисте разумели шта је данас могуће, корисно је погледати како се технолошки пројекти традиционално спроводе. Још у стара времена - односно пре више од 10 година - предузећа би куповала или изнајмљивала хардвер за покретање свих компоненти својих апликација. Чак и релативно једноставне апликације, као што је ВордПресс веб локација, имају више компоненти. У случају ВордПресс-а, потребна је МиСКЛ база података заједно са веб сервером, као што је Апацхе, и начином руковања ПХП кодом. Дакле, направили би сервер, поставили Апацхе, ПХП и МиСКЛ, инсталирали ВордПресс и кренули.

Углавном, то је успело. Довољно је добро функционисало да и данас постоји огроман број сервера који су конфигурисани управо на тај начин. Али није било савршено, а два од већих проблема била су еластичност и скалабилност.

Недостатак еластичности значио је да би било који значајан проблем на серверу резултирао губитком услуге. Јасно је да катастрофални неуспех не би значио да постоји веб локација, али такође није било места за обављање редовног одржавања без утицаја на веб локацију. Чак и за инсталирање и активирање рутинског безбедносног ажурирања за Апацхе било би потребно неколико секунди да испадне за веб локацију.

Проблем отпорности углавном је решен изградњом „кластера високе доступности“. Принцип је био да два сервера раде на веб локацији, конфигурисани тако да неуспех било ког од њих није резултирао падом веб локације. Услуга која се пружала била је еластична чак и ако појединачни сервери нису.

Апстрактни облаци

Део снаге Кубернетеса је апстракција коју нуди. Из перспективе програмера, они развијају апликацију која ће се покретати у Доцкер контејнеру. Доцкера није брига да ли ради на Виндовс-у, Линук-у или неком другом оперативном систему. Исти тај Доцкер контејнер се може преузети са МацБоок-а програмера и покретати под Кубернетес-ом без икаквих измена.

Сама инсталација Кубернетес може бити једна машина. Много благодати Кубернетес-а неће бити доступне: неће бити аутоматског скалирања; постоји очигледна једина тачка неуспеха итд. Као доказ концепта у тест окружењу, то ипак делује.

Када будете спремни за продукцију, можете да покренете самостално или на добављачу услуге Цлоуд, као што је АВС или Гоогле Цлоуд. Цлоуд добављачи имају уграђене услуге које помажу у покретању Кубернетес-а, али ниједан од њих није тежак захтев. Ако желите да се крећете између Гоогле-а, Амазона и сопствене инфраструктуре, подесите Кубернетес и пређите на другу страну. Ниједна од ваших апликација не мора да се мења на било који начин.

А где је Линук? Кубернетес ради на Линуку, али оперативни систем је невидљив за апликације. Ово је значајан корак у зрелости и употребљивости ИТ инфраструктуре.

Ефекат Сласхдот

Проблем скалабилности је мало замршенији. Рецимо да ваша ВордПресс веб локација прима 1.000 посетилаца месечно. Једног дана се ваше предузеће спомиње на радију 4 или телевизији са доручком. Одједном за 20 минута добијете посетиоце вредне више од месец дана. Сви смо чули приче о „падовима“ веб локација, и то је типично разлог: недостатак скалабилности.

Два сервера која су помогла у отпорности могла су да управљају већим радним оптерећењем него што је то могао један сервер, али то је и даље ограничено. Два сервера бисте платили 100 посто времена, а већину времена оба су радила савршено. Вероватно је да би само један могао да води вашу страницу. Тада Јохн Хумпхрис спомиње ваше предузеће данас и требало би вам 10 сервера да поднесу терет - али само на неколико сати.

Боље решење проблема еластичности и скалабилности било је рачунарство у облаку. Подесите једну или две инстанце сервера - мале сервере који покрећу ваше апликације - на Амазон Веб Сервицес (АВС) или Гоогле Цлоуд и ако једна од инстанци из неког разлога не успе, аутоматски би се поново покренула. Правилно подесите аутоматско скалирање и када господин Хумпхрис узрокује брзи раст оптерећења на инстанцама вашег веб сервера, аутоматски се покрећу додатне инстанце сервера за поделу радног оптерећења. Касније, кад камате падну, те додатне инстанце се заустављају и плаћате само оно што користите. Савршено … или је?

Иако је решење у облаку много флексибилније од традиционалног самосталног сервера, још увек има проблема. Ажурирање свих покренутих инстанци облака није једноставно. Развој за облак такође има изазове: преносни рачунар који користе ваши програмери можда је сличан инстанци облака, али није исти. Ако се обавежете на АВС, прелазак на Гоогле Цлоуд је сложен подухват. И претпоставимо, из било ког разлога, једноставно не желите да предате рачунарство Амазону, Гооглеу или Мицрософту?

Контејнери су се појавили као средство за умотавање апликација са свим зависностима у један пакет који се може покренути било где. Контејнери, попут Доцкера, могу да се покрећу на преносним рачунарима програмера на исти начин као и на инстанцама у облаку, али управљање флотом контејнера постаје све изазовније како број контејнера расте.

Одговор је оркестрација контејнера. Ово је значајан помак у фокусу. Пре смо се уверили да имамо довољно сервера, било физичких или виртуелних, да бисмо могли да сервисирамо радни терет. Коришћење аутоматског скалирања добављача облака је помогло, али и даље смо имали посла са инстанцама. Морали смо ручно да конфигуришемо уравнотеживаче оптерећења, заштитни зид, складиштење података и још много тога. Уз оркестрацију контејнера, све то (и још много више) је збринуто. Наводимо резултате који су нам потребни и наши алати за оркестрацију контејнера испуњавају наше захтеве. Ми прецизирамо шта желимо да радимо, а не како то желимо.

Континуирана интеграција и континуирано постављање могу добро радити са Кубернетесом. Ево прегледа Јенкинс-а који се користи за изградњу и примену Јава апликације

Постаните Кубернете

Кубернетес (ку-бер-нет-еез) је данас водећи алат за оркестрацију контејнера, а потекао је од Гоогле-а. Ако неко зна како да покреће ИТ инфраструктуре великих размера, Гоогле то зна. Порекло Кубернетес-а је Борг, интерни Гоогле-ов пројекат који се и даље користи за покретање већине Гоогле-ових апликација, укључујући његов претраживач, Гмаил, Гоогле Мапс и још много тога. Борг је био тајна док Гоогле 2015. о томе није објавио чланак, али је врло јасно показао да је Борг главна инспирација за Кубернетеса.

Борг је систем који управља рачунским ресурсима у Гооглеовим центрима за податке и одржава Гооглеове апликације, како производне, тако и друге, у погону упркос квару хардвера, исцрпљивању ресурса или другим проблемима који би могли да изазову прекид рада. То чини пажљивим надгледањем хиљада чворова који чине Боргову „ћелију“ и контејнера који се на њима изводе, и покретањем или заустављањем контејнера према потреби као одговор на проблеме или осцилације у оптерећењу.

Сама Кубернетес рођена је из Гоогле-ове иницијативе ГИФЕЕ (’Гоогле-ова инфраструктура за све остале’) и замишљена је као пријатељскија верзија Борга која би могла бити корисна ван Гоогле-а. Дониран је Линук Фоундатион-у 2015. године формирањем Цлоуд Нативе Цомпутинг Фоундатион (ЦНЦФ).

Кубернетес нуди систем којим "пријављујете" своје контејнериране апликације и услуге и осигурава да се ваше апликације покрећу у складу с тим декларацијама. Ако ваши програми захтевају спољне ресурсе, као што су складишта или уравнотеживачи оптерећења, Кубернетес их може аутоматски обезбедити. Може да скалира ваше апликације нагоре или надоле да би ишао у корак са променама у оптерећењу, а може и да скалира читав ваш кластер када је потребно. Компоненте вашег програма чак не морају да знају где се покрећу: Кубернетес пружа услуге интерног именовања апликација тако да се могу повезати на „вп_мискл“ и аутоматски повезати са исправним ресурсом. “

Крајњи резултат је платформа која се може користити за покретање ваших апликација на било којој инфраструктури, од једне машине преко локалног система система до облака заснованих флота виртуелних машина које раде на било ком већем добављачу облака, а сви користе исте контејнере и конфигурација. Кубернетес је агностик добављача: покрените га где год желите.

Кубернетес је моћно средство и неопходно је сложено. Пре него што уђемо у преглед, морамо да уведемо неке термине који се користе у оквиру Кубернетеса. Контејнери покрећу појединачне апликације, као што је горе речено, и груписани су у махуне. Под је група уско повезаних контејнера који су распоређени заједно на истом хосту и деле неке ресурсе. Контејнери унутар махуне раде тимски: они ће обављати сродне функције, попут контејнера апликације и контејнера за евидентирање са одређеним подешавањима за апликацију.

Преглед Кубернетес-а који приказује мастер који покреће кључне компоненте и два чвора. Имајте на уму да се у пракси главне компоненте могу поделити на више система

Четири кључне Кубернетесове компоненте су АПИ Сервер, Планер, Цонтроллер Манагер и дистрибуирана база података под називом етцд. АПИ сервер је у средишту Кубернетес-а и делује као примарна крајња тачка за све захтеве управљања. Они се могу генерисати из различитих извора, укључујући друге Кубернетесове компоненте, као што су планери, администратори преко командне линије или контролне табле засноване на мрежи и саме контејнериране апликације. Потврђује захтеве и ажурира податке ускладиштене у етцд.

Планер одређује на којим ће се чворовима покретати различити подс, узимајући у обзир ограничења као што су захтеви за ресурсима, било која хардверска или софтверска ограничења, радно оптерећење, рокови и још много тога.

Управљач контролером надгледа стање кластера и покушаће да покрене или заустави махуне по потреби, преко АПИ сервера, да доведе кластер у жељено стање. Такође управља неким унутрашњим везама и безбедносним функцијама.

Сваки чвор покреће Кубелет процес, који комуницира са АПИ сервером и управља контејнерима - обично користећи Доцкер - и Кубе-Проки, који управља мрежним проксирањем и уравнотежењем оптерећења унутар кластера.

Дистрибуирани систем база података етцд име је добио из / итд директоријум на Линук системима, који се користи за чување информација о конфигурацији система, плус суфикс „д“, који се често користи за означавање демонског процеса. Циљеви етцд-а су чување података кључ-вредност на дистрибуиран, доследан и толерантан начин грешака.

АПИ сервер чува све своје податке о стању у етцд и може истовремено покретати многе инстанце. Управитељ планера и контролера може имати само једну активну инстанцу, али користи систем закупа да одреди која је покренута инстанца главни. Све ово значи да Кубернетес може радити као високо доступан систем без иједне тачке квара.

Све састављање

Па како да користимо те компоненте у пракси? Следи пример постављања ВордПресс веб странице помоћу Кубернетес-а. Ако бисте ово желели да урадите стварно, вероватно бисте користили унапред дефинисани рецепт који се зове карта кормила. Доступни су за бројне уобичајене апликације, али овде ћемо погледати неке кораке неопходне за покретање и покретање ВордПресс странице на Кубернетесу.

Први задатак је дефинисање лозинке за МиСКЛ:

 кубецтл креира тајну генеричку мискл-пасс --фром-литерал = пассворд = ИОУР_ПАССВОРД 

кубецтл ће разговарати са АПИ сервером, који ће потврдити наредбу, а затим сачувати лозинку у етцд. Наше услуге су дефинисане у ИАМЛ датотекама и сада нам је потребно стално складиштење за МиСКЛ базу података.

 апиВерсион: в1 кинд: ПерсистентВолумеЦлаим метаподаци: наме: мискл-пв-лабел лабелс: апп: вордпресс спец: аццессМодес: - РеадВритеОнце ресурси: захтеви: складиштење: 20Ги 

Спецификација би углавном требала бити сама по себи разумљива. Поља имена и налепнице користе се за упућивање на ово складиште из других делова Кубернетес-а, у овом случају нашег ВордПресс контејнера.

Једном када дефинишемо меморију, можемо дефинисати МиСКЛ инстанцу, усмеравајући је на унапред дефинисану меморију. Након тога следи дефинисање саме базе података. Дајемо тој бази података име и ознаку ради лакшег сналажења у Кубернетес-у.

Сада нам треба још један контејнер за покретање ВордПресс-а. Део спецификације примене контејнера је:

 врста: Метаподаци за примену: име: вордпресс ознаке: апликација: вордпресс спецификације: стратегија: тип: Поново креирај 

Тип стратегије „Поново створи“ значи да ће се било који код који садржи апликацију променити, а затим ће се покренуте инстанце избрисати и поново креирати. Остале опције укључују могућност покретања нових инстанци и уклањање постојећих, једну по једну, што омогућава услузи да настави да се изводи током примене исправке. На крају, декларишемо услугу за сам ВордПресс, која садржи ПХП код и Апацхе. Део ИАМЛ датотеке који изјављује да је ово:

 метаподаци: име: вордпресс ознаке: апп: вордпресс спецификације: портови: - порт: 80 селектор: апп: вордпресс тиер: фронтенд типе: ЛоадБаланцер 

Обратите пажњу на последњи ред, дефинишући тип услуге као ЛоадБаланцер. То налаже Кубернетесу да услугу учини доступном изван Кубернетеса. Без те линије, ово би била само интерна услуга „само Кубернетес“. И то је то. Кубернетес ће сада користити те ИАМЛ датотеке као изјаву о томе шта је потребно и поставиће подс, везе, меморију и тако даље по потреби да кластер доведе у "жељено" стање.

Користите приказ контролне табле да бисте на брзину добили резиме Кубернетес-а на делу

Ово је нужно био само преглед Кубернетес-а на високом нивоу, а многи детаљи и карактеристике система су изостављени. Препознали смо аутоскалирање (и подс и чворове који чине кластер), црон послове (покретање контејнера према распореду), Ингресс (ХТТП балансирање оптерећења, преписивање и ССЛ истовар), РБАЦ (контроле приступа засноване на улогама) , мрежне политике (заштитни зид) и још много тога. Кубернетес је изузетно флексибилан и изузетно моћан: за сваку нову ИТ инфраструктуру мора бити озбиљан кандидат.

Ресурси

Ако нисте упознати са Доцкером, почните овде: хттпс://доцс.доцкер.цом/гет-стартед.

Овде постоји интерактивни водич за постављање и скалирање апликације: хттпс://кубернетес.ио/доцс/туториалс/кубернетес-басицс.

И погледајте хттпс://кубернетес.ио/доцс/сетуп/сцратцх како да направите кластер.

Можете се играти бесплатним кластером Кубернетес на хттпс://трик8с.цом.

На крају, овде можете прочитати дугачак технички рад са изврсним прегледом Гоогле-ове употребе Борга и како је то утицало на дизајн Кубернетес-а: хттпс://стораге.гооглеапис.цом/пуб-тоолс-публиц-публицатион-дата/ пдф / 43438.пдф.

Сазнајте више о Тигер Цомпутинг-у.

  • Најбоље складиште у облаку до 2022-2023. на мрежи: бесплатне, плаћене и пословне опције
Набавите још Линука!

Уживате ли у ономе што читате? Желите више Линука и отвореног кода? Можемо испоручити, буквално! Претплатите се на Линук Формат већ данас по повољној цени. Можете добити издања за штампу, дигитална издања или зашто не оба? Достављамо на ваша врата широм света за једноставну годишњу накнаду. Учините свој живот бољим и лакшим, претплатите се одмах!

Занимљиви Чланци...