Три нивоа аутоматског скалирања у Кубернетесу: како их ефикасно користити

Три нивоа аутоматског скалирања у Кубернетесу: како их ефикасно користити
Да бисте у потпуности савладали Кубернетес, морате знати различите начине за скалирање ресурса кластера: по према програмерима система, ово је један од главних задатака Кубернетеса. Дали смо преглед високог нивоа хоризонталног и вертикалног аутоматског скалирања и механизама за промену величине кластера, као и препоруке о томе како да их ефикасно користите.

чланак Кубернетес Аутосцалинг 101: Цлустер Аутосцалер, Хоризонтал Аутосцалер и Вертицал Под Аутосцалер превео тим који је имплементирао аутоматско скалирање у Кубернетес ааС са Маил.ру.

Зашто је важно размишљати о скалирању

Кубернетес - алат за управљање ресурсима и оркестрацију. Наравно, лепо је позабавити се одличним карактеристикама постављања, надгледања и управљања подовима (под је група контејнера који се покрећу као одговор на захтев).

Међутим, требало би да размислите и о следећим питањима:

  1. Како скалирати модуле и апликације?
  2. Како да контејнери буду оперативни и ефикасни?
  3. Како одговорити на сталне промене кода и оптерећења корисника?

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

Нивои аутоматског скалирања Кубернетеса

Ефикасно аутоматско скалирање захтева координацију између два нивоа:

  1. Ниво под, укључујући хоризонтални (Хоризонтал Под Аутосцалер, ХПА) и вертикални аутоматски скалер (Вертицал Под Аутосцалер, ВПА). Ово је скалирање доступних ресурса за ваше контејнере.
  2. Ниво кластера, којим управља Цлустер Аутосцалер (ЦА), који повећава или смањује број чворова унутар кластера.

Хоризонтални Аутосцалер (ХПА) модул

Као што име говори, ХПА скалира број реплика махуна. Већина девопова користи ЦПУ и оптерећење меморије као покретаче за промену броја реплика. Међутим, могуће је скалирати систем на основу прилагођене метрике, њих комбинације или чак екстерне метрике.

Радни дијаграм ХПА високог нивоа:

  1. ХПА континуирано проверава метричке вредности наведене током инсталације у подразумеваном интервалу од 30 секунди.
  2. ХПА покушава да повећа број модула ако се достигне наведени праг.
  3. ХПА ажурира број реплика унутар контролера за примену/репликацију.
  4. Контролер за примену/репликацију затим поставља све неопходне додатне модуле.

Три нивоа аутоматског скалирања у Кубернетесу: како их ефикасно користити
ХПА покреће процес постављања модула када се достигне метрички праг

Када користите ХПА, узмите у обзир следеће:

  • Подразумевани интервал ХПА провере је 30 секунди. Поставља се заставом хоризонтал-под-аутосцалер-синц-период у менаџеру контролора.
  • Подразумевана релативна грешка је 10%.
  • Након последњег повећања броја модула, ХПА очекује да ће се метрика стабилизовати у року од три минута. Овај интервал је постављен заставицом хоризонтал-под-аутосцалер-упсцале-делаи.
  • Након последњег смањења броја модула, ХПА чека пет минута да се стабилизује. Овај интервал је постављен заставицом хоризонтал-под-аутосцалер-довнсцале-делаи.
  • ХПА најбоље функционише са објектима за примену, а не са контролерима репликације. Хоризонтално аутоматско скалирање није компатибилно са сталним ажурирањем, које директно манипулише контролерима репликације. Код примене, број реплика директно зависи од објеката примене.

Вертикално аутоматско скалирање махуна

Вертикално аутоматско скалирање (ВПА) додељује више (или мање) ЦПУ времена или меморије постојећим подовима. Погодно за подове са статусом или без држављанства, али углавном намењено за услуге са статусом. Међутим, можете користити и ВПА за модуле без стања ако треба аутоматски да прилагодите количину првобитно додељених ресурса.

ВПА такође одговара на догађаје ООМ (недостаје меморије). Промена ЦПУ времена и меморије захтева поновно покретање подова. Када се поново покрене, ВПА поштује буџет алокације (буџет дистрибуције махуна, ПДБ) да гарантује минималан потребан број модула.

Можете поставити минималне и максималне ресурсе за сваки модул. Тако можете ограничити максималну количину додељене меморије на 8 ГБ. Ово је корисно ако тренутни чворови дефинитивно не могу да доделе више од 8 ГБ меморије по контејнеру. Детаљне спецификације и механизам рада су описани у званична ВПА вики.

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

Вреди напоменути да ВПА Рецоммендер не прати „ограничење“ ресурса. Ово може довести до тога да модул монополизира ресурсе унутар чворова. Боље је поставити ограничење на нивоу именског простора да бисте избегли огромну потрошњу меморије или ЦПУ-а.

Шема рада ВПА високог нивоа:

  1. ВПА континуирано проверава метричке вредности наведене током инсталације у подразумеваном интервалу од 10 секунди.
  2. Ако се достигне наведени праг, ВПА покушава да промени додељену количину ресурса.
  3. ВПА ажурира број ресурса унутар контролера распоређивања/репликације.
  4. Када се модули поново покрену, сви нови ресурси се примењују на креиране инстанце.

Три нивоа аутоматског скалирања у Кубернетесу: како их ефикасно користити
ВПА додаје потребну количину ресурса

Имајте на уму следеће тачке када користите ВПА:

  • Скалирање захтева обавезно поновно покретање капсуле. Ово је неопходно да би се избегао нестабилан рад након уношења измена. Ради поузданости, модули се поново покрећу и дистрибуирају по чворовима на основу ново додељених ресурса.
  • ВПА и ХПА још увек нису међусобно компатибилни и не могу да раде на истим подовима. Ако користите оба механизма скалирања у истом кластеру, уверите се да ваша подешавања спречавају њихово активирање на истим објектима.
  • ВПА подешава захтеве контејнера за ресурсе само на основу претходног и тренутног коришћења. Не поставља ограничења употребе ресурса. Може доћи до проблема са апликацијама које не раде исправно и почну да преузимају све више ресурса, што ће довести до тога да Кубернетес искључи овај под.
  • ВПА је још увек у раној фази развоја. Будите спремни да систем може претрпјети неке промјене у блиској будућности. Можете читати о позната ограничења и развојни планови. Дакле, постоје планови за имплементацију заједничког рада ВПА и ХПА, као и постављање модула заједно са политиком вертикалног аутоматског скалирања за њих (на пример, посебна ознака 'захтева ВПА').

Аутоматско скалирање Кубернетес кластера

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

Шема рада СА високог нивоа:

  1. ЦА проверава модуле на чекању у подразумеваном интервалу од 10 секунди.
  2. Ако је један или више подова у стању приправности јер кластер нема довољно расположивих ресурса да их додели, покушава да обезбеди један или више додатних чворова.
  3. Када добављач услуге у облаку додели потребни чвор, он се придружује кластеру и спреман је да опслужује подове.
  4. Кубернетес планер дистрибуира модуле на чекању новом чвору. Ако након овога неки модули и даље остану у стању чекања, процес се понавља и нови чворови се додају у кластер.

Три нивоа аутоматског скалирања у Кубернетесу: како их ефикасно користити
Аутоматско обезбеђивање чворова кластера у облаку

Узмите у обзир следеће када користите ЦА:

  • ЦА осигурава да сви подови у кластеру имају простора за покретање, без обзира на оптерећење ЦПУ-а. Такође покушава да осигура да у кластеру нема непотребних чворова.
  • ЦА региструје потребу за скалирањем након отприлике 30 секунди.
  • Када чвор више није потребан, ЦА подразумевано чека 10 минута пре него што скалира систем.
  • Систем за аутоматско скалирање има концепт експандера. Ово су различите стратегије за одабир групе чворова у које ће се додати нови чворови.
  • Користите опцију одговорно цлустер-аутосцалер.кубернетес.ио/сафе-то-евицт (тачно). Ако инсталирате много подова или ако су многи од њих раштркани по свим чворовима, у великој мери ћете изгубити могућност скалирања кластера.
  • Користите ПодДисруптионБудгетсда спречите брисање подова, што може довести до потпуног квара делова ваше апликације.

Како Кубернетес аутоскалери међусобно делују

За савршену хармонију, аутоматско скалирање треба применити и на нивоу махуна (ХПА/ВПА) и на нивоу кластера. Они међусобно комуницирају релативно једноставно:

  1. ХПА или ВПА ажурирају реплике модула или ресурсе додељене постојећим модулима.
  2. Ако нема довољно чворова за планирано скалирање, ЦА примећује присуство подова у стању чекања.
  3. ЦА додељује нове чворове.
  4. Модули се дистрибуирају новим чворовима.

Три нивоа аутоматског скалирања у Кубернетесу: како их ефикасно користити
Колаборативни Кубернетес систем скалирања

Уобичајене грешке у Кубернетес аутоматском скалирању

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

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

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

Идеалан сценарио - 4 минута:

  1. 30 секунди. Ажурирање циљних метрика: 30–60 секунди.
  2. 30 секунди. ХПА проверава метричке вредности: 30 секунди.
  3. Мање од 2 секунде. Подови се креирају и прелазе у стање чекања: 1 секунда.
  4. Мање од 2 секунде. ЦА види модуле на чекању и шаље позиве чворовима за обезбеђивање: 1 секунда.
  5. 3 минута. Добављач облака додељује чворове. К8с чека док не буду спремни: до 10 минута (у зависности од неколико фактора).

Најгори (реалистичнији) сценарио - 12 минута:

  1. 30 секунди. Ажурирајте циљне метрике.
  2. 30 секунди. ХПА проверава метричке вредности.
  3. Мање од 2 секунде. Подови се креирају и улазе у стање приправности.
  4. Мање од 2 секунде. ЦА види модуле на чекању и позива да обезбеди чворове.
  5. 10 минута. Добављач облака додељује чворове. К8с чека док не буду спремни. Време чекања зависи од неколико фактора, као што су кашњење добављача, кашњење ОС-а и алати за подршку.

Не мешајте механизме скалирања добављача облака са нашим ЦА. Овај други ради унутар Кубернетес кластера, док механизам добављача облака ради на бази дистрибуције чворова. Не зна шта се дешава са вашим подовима или апликацијом. Ови системи раде паралелно.

Како управљати скалирањем у Кубернетесу

  1. Кубернетес је алатка за управљање ресурсима и оркестрацију. Операције за управљање подовима и ресурсима кластера су кључна прекретница у овладавању Кубернетес-ом.
  2. Схватите логику скалабилности под узимајући у обзир ХПА и ВПА.
  3. ЦА треба користити само ако добро разумете потребе ваших махуна и контејнера.
  4. Да бисте оптимално конфигурисали кластер, морате разумети како различити системи скалирања функционишу заједно.
  5. Када процењујете време скалирања, имајте на уму најгори и најбољи сценарио.

Извор: ввв.хабр.цом

Додај коментар