Да ли је лако и згодно припремити Кубернетес кластер? Најављујемо аддон-оператор

Да ли је лако и згодно припремити Кубернетес кластер? Најављујемо аддон-оператор

После схелл-оператор ми представљамо његовог старијег брата - аддон оператор. Ово је пројекат отвореног кода који се користи за инсталирање системскиһ компоненти у Кубернетес кластер, који се може назвати уобичајеном речју - додаци.

Зашто уопште додавати било какве додатке?

Није тајна да Кубернетес није готов производ „све-у-једном“ и да ће бити потребни разни додаци за изградњу кластера „за одрасле“. Оператор додатака ће вам помоћи да инсталирате, конфигуришете и одржавате ове додатке ажурним.

Покривена је потреба за додатним компонентама у кластеру извештај Колеге дриусха. Укратко, ситуација са Кубернетес-ом у овом тренутку је таква да за једноставну инсталацију "заиграти" можете да прођете са компонентама из кутије, за програмере и тестирање можете додати Ингресс, али за пуноправну инсталацију, за коју можете рећи „ваша производња је спремна“, потребно је да додате са десетак различитиһ додатака: нешто за праћење, нешто за логове, не заборавите ингресс и церт-манагер, изаберите групе чворова, додајте мрежне политике, зачините сисцтл и под аутосцалер подешавања...

Да ли је лако и згодно припремити Кубернетес кластер? Најављујемо аддон-оператор

Које су специфичности рада са њима?

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

Дакле, можда је Ансибле довољан овде? Можда. Али пуноправни додаци у општем случају не живе без подешавања. Ова подешавања се могу разликовати у зависности од варијанте кластера (авс, гце, азуре, баре-метал, до, ...). Нека подешавања се не могу унапред поставити - морају се добити из кластера. А кластер није статичан: за нека подешавања мораћете да пратите промене. А овде Ансибле није довољан: потребан вам је програм који живи у кластеру, тј. Кубернетес оператер.

Они који су покушали схелл-оператор, они ће рећи да се задаци инсталирања и ажурирања додатака и подешавања надгледања могу у потпуности решити коришћењем куке за схелл оператера. Можете написати скрипту која ће радити услов kubectl apply и пратите, на пример, ЦонфигМап, где ће подешавања бити сачувана. То је отприлике оно што је имплементирано у аддон-оператору.

Како је то организовано у аддон-оператору?

Креирајући ново решење, пошли смо од следећиһ принципа:

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

Шта је додатак у аддон-оператору?

Све што додаје нове функције кластеру може се сматрати додатком. На пример, Ингресс инсталација је одличан пример додатка. То може бити било који оператер или контролер са сопственим ЦРД-ом: прометхеус-оператор, церт-манагер, кубе-цонтроллер-манагер, итд. Или нешто мало, али лакше за коришћење, као што је тајни уређај за копирање који копира тајне регистра у нове просторе имена, или сисцтл тјунер који подешава сисцтл параметре на новим чворовима.

За имплементацију додатака, Аддон-оператор нуди неколико концепата:

  • Хелм цхарт користи се за инсталирање разних софтвера у кластер - на пример, Прометхеус, Графана, нгинк-ингресс. Ако жељена компонента има Хелм графикон, инсталирање помоћу Аддон-оператора ће бити врло једноставно.
  • складиштење вредности. Хелм карте обично имају много различитих подешавања која се могу мењати током времена. Аддон-оператор подржава чување ових подешавања и прати њихове промене како би ресетовао Хелм графикон са новим вредностима.
  • Куке су извршне датотеке које Аддон-оператор покреће на догађајима и које приступају складишту вредности. Кука може да прати промене у кластеру и ажурира вредности у складишту вредности. Оне. користећи куке, можете да урадите откривање да бисте прикупили вредности из кластера при покретању или по распореду, или можете да радите континуирано откривање, прикупљајући вредности из кластера на основу промена у кластеру.
  • Модул је амалгамација Хелм графикона, складиштења вредности и кукица. Модули се могу укључити и онемогућити. Онемогућавање модула брише сва издања Хелм-карта. Модули се могу динамички укључити, на пример, ако су сви модули који су им потребни омогућени или ако је откривање пронашло потребне параметре у кукицама - то се ради помоћу помоћне омогућене скрипте.
  • Глобал Хоокс. Ово су куке „саме за себе“, нису укључене у модуле и имају приступ глобалној продавници вредности, вредности из које су доступне свим кукицама у модулима.

Како ови делови функционишу заједно? Размотрите слику из документације:

Да ли је лако и згодно припремити Кубернетес кластер? Најављујемо аддон-оператор

Постоје два сценарија рада:

  1. Глобалну куку покреће догађај – на пример, када се промени ресурс у кластеру. Ова кука управља променама и уписује нове вредности у глобално складиште вредности. Оператор додатака примећује да се глобална продавница променила и покреће све модуле. Сваки модул користи своје куке да би утврдио да ли треба да буде омогућен и ажурира своју меморију вредности. Ако је модул омогућен, онда Аддон-оператор започиње инсталацију Хелм-карта. Истовремено, вредности из складишта модула и из глобалне меморије су доступне Хелм графикону.
  2. Други сценарио је једноставнији: закачивање модула се покреће догађајем, мења вредности у складишту вредности модула. Оператор додатака то примећује и покреће Хелм графикон са ажурираним вредностима.

Додатак се може имплементирати као једна кука, или као један Хелм графикон, или чак и као више зависниһ модула - зависи од сложености компоненте инсталиране у кластеру и од жељеног нивоа флексибилности конфигурације. На пример, у спремишту (/примери) постоји додатак сисцтл-тунер, који је имплементиран и као једноставан модул са куком и Һелм-графиком, и користећи складиште вредности, што омогућава додавање подешавања уређивањем ЦонфигМап-а.

Испорука ажурирања

Неколико речи о организацији ажурирања компоненти које инсталира Аддон-оператор.

Да бисте покренули Аддон-оператор на кластеру, потребно вам је састави слику са додацима као хоок фајлове и Хелмове графиконе, додајте бинарну датотеку addon-operator и све што је потребно за куке: bash, kubectl, jq, python итд. Даље, ова слика се може развући у кластер као нормална апликација и највероватније ћете желети да организујете једну или другу шему означавања. Ако има мало кластера, исти приступ као код апликација може бити прикладан: ново издање, нова верзија, прођите кроз све кластере и поправите слику Подова. Међутим, у случају ширења на значајан број кластера, више нам је одговарао концепт самоажурирања са канала.

Поставили смо га овако:

  • Канал је у суштини идентификатор који се може подесити на било шта (на пример, дев/стаге/еа/стабле).
  • Назив канала је ознака слике. Када треба да објавите ажурирања за канал, прави се нова слика и означава се именом канала.
  • Када се нова слика појави у регистратору, Аддон-оператор се поново покреће и почиње са новом сликом.

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

Канали помажу и у тестирању: ако постоји помоћни кластер, можете га поставити на канал stage и убаците ажурирања у њега пре него што се објави на каналима ea и stable. Ако са кластером на каналу ea дошло је до грешке, можете је променити у stableдок се питање са овим кластером истражује. Ако је кластер искључен из активне подршке, прелази на свој „замрзнути“ канал – нпр. freeze-2019-03-20.

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

Генерално, ово се може урадити без Аддон-оператора, али са Аддон-оператором, модул за инсталирање ноде-екпортер-а ће бити видљив у једном спремишту, можете задржати Доцкерфиле да бисте направили своју слику управо тамо, постаје лакше за сви учесници у процесу да сһвате да се то дешава... А ако постоји неколико кластера, постаје лакше и тестирати свој ПР и избацити нову верзију!

Ова организација ажурирања компоненти успешно функционише за нас, али било која друга погодна шема се може применити - на крају крајева у овом случају аддон-оператор је једноставна бинарна датотека.

Закључак

Принципи имплементирани у Аддон-оператору омогућавају вам да изградите транспарентан процес за креирање, тестирање, инсталирање и ажурирање додатака у кластеру, слично развоју обичниһ апликација.

Додаци за Аддон-оператор у формату модула (Хелм-цхарт + хоокс) могу бити јавно доступни. Ми, компанија Флант, планирамо да током лета објавимо наше развоје у виду оваквих додатака. Придружите се развоју на ГитХуб-у (схелл-оператор, аддон оператор), покушајте да свој додатак направите на основу примери и документација, сачекајте вести на Хабре и на нашем ИоуТубе канал!

ПС

Прочитајте и на нашем блогу:

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

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