Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ҳисобот ба масъалаҳои амалии таҳияи оператор дар Кубернетес, тарҳрезии меъморӣ ва принсипҳои асосии фаъолияти он бахшида шудааст.

Дар қисми якуми гузориш мо баррасӣ мекунем:

  • оператор дар Кубернетес чист ва чаро он лозим аст;
  • чӣ тавр оператор идоракунии системаҳои мураккабро содда мекунад;
  • ки оператор чиро карда метавонад ва карда наметавонад.

Минбаъд, биёед ба муҳокимаи сохтори дохилии оператор гузарем. Биёед меъморӣ ва фаъолияти операторро зина ба зина дида бароем. Биёед онро ба таври муфассал дида бароем:

  • ҳамкории байни оператор ва Kubernetes;
  • оператор кадом вазифаҳоро иҷро мекунад ва кадом вазифаҳоро ба Kubernetes вогузор мекунад.

Биёед идоракунии пардаҳо ва нусхаҳои пойгоҳи додаҳоро дар Kubernetes бубинем.
Минбаъд, мо масъалаҳои нигоҳдории маълумотро муҳокима хоҳем кард:

  • чӣ тавр кор кардан бо нигаҳдории доимӣ аз нуқтаи назари оператор;
  • хатогиҳои истифодаи захираи маҳаллӣ.

Дар қисми ниҳоии гузориш мо мисолҳои амалии татбиқро баррасӣ хоҳем кард клик-оператор аз Amazon ё Google Cloud Service. Ҳисобот ба мисоли таҷрибаи рушд ва фаъолияти оператор барои ClickHouse асос ёфтааст.

Видео:

Номи ман Владислав Клименко. Имрӯз ман мехостам дар бораи таҷрибаи мо дар таҳия ва истифодабарии оператор сӯҳбат кунам ва ин оператори махсусгардонидашудаи идоракунии кластерҳои пойгоҳи додаҳост. Барои намуна ClickHouse-оператор барои идора кардани кластери ClickHouse.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Чаро мо имкон дорем, ки дар бораи оператор ва ClickHouse сӯҳбат кунем?

  • Мо ClickHouse-ро дастгирӣ ва таҳия мекунем.
  • Дар айни замон, мо кӯшиш мекунем, ки оҳиста-оҳиста саҳми худро дар рушди ClickHouse гузорем. Ва мо аз рӯи ҳаҷми тағйирот дар ClickHouse пас аз Яндекс дуюм ҳастем.
  • Мо кӯшиш мекунем, ки лоиҳаҳои иловагӣ барои экосистемаи ClickHouse иҷро кунем.

Ман мехостам ба шумо дар бораи яке аз ин лоиҳаҳо нақл кунам. Ин дар бораи ClickHouse-оператор барои Kubernetes аст.

Дар гузориши худ мехоҳам ба ду мавзӯъ дахл кунам:

  • Мавзӯи аввал ин аст, ки чӣ тавр оператори идоракунии пойгоҳи додаҳои ClickHouse мо дар Kubernetes кор мекунад.
  • Мавзӯи дуюм ин аст, ки ҳар як оператор чӣ гуна кор мекунад, яъне чӣ гуна он бо Kubernetes ҳамкорӣ мекунад.

Аммо, ин ду савол дар тамоми гузориши ман бо ҳам мепайвандад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Кӣ ба гӯш кардани он чизе ки ман гуфтанӣ ҳастам, манфиатдор хоҳад буд?

  • Он барои онҳое, ки операторҳоро идора мекунанд, таваҷҷӯҳи бештар хоҳад дошт.
  • Ё барои онҳое, ки мехоҳанд худашонро созанд, то бифаҳманд, ки он дар дохили он чӣ гуна кор мекунад, оператор бо Кубернетес чӣ гуна муносибат мекунад ва кадом домҳо метавонанд пайдо шаванд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Барои беҳтар фаҳмидани он чизе, ки мо имрӯз муҳокима хоҳем кард, хуб аст бидонед, ки Кубернетес чӣ гуна кор мекунад ва омӯзиши абрии асосӣ дошта бошед.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

ClickHouse чист? Ин махзани сутуни дорои хусусиятҳои мушаххас барои коркарди онлайни дархостҳои таҳлилӣ мебошад. Ва он комилан кушода аст.

Ва барои мо танҳо ду чизро донистан муҳим аст. Шумо бояд бидонед, ки ин махзани маълумот аст, бинобар ин он чизе, ки ман ба шумо мегӯям, қариб ба ҳама гуна пойгоҳи додаҳо мувофиқ хоҳад буд. Ва он далел, ки миқёси ClickHouse DBMS хеле хуб аст, миқёспазирии қариб хатиро медиҳад. Аз ин рӯ, ҳолати кластер барои ClickHouse ҳолати табиӣ аст. Ва мо бештар манфиатдор ҳастем, ки чӣ тавр ба кластери ClickHouse дар Кубернетес хидмат кунем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Чаро ӯ дар он ҷо лозим аст? Чаро мо худамон кор карда наметавонем? Ва ҷавобҳо қисман техникӣ ва қисман ташкилӣ мебошанд.

  • Дар амал, мо торафт бештар ба вазъият дучор мешавем, ки дар ширкатҳои бузург қариб ҳама ҷузъҳо аллакай дар Кубернетес ҳастанд. Пойгоҳи додаҳо дар берун боқӣ мемонад.
  • Ва саволи бештар дода мешавад: "Оё онро дар дохили он ҷойгир кардан мумкин аст?" Аз ин рӯ, ширкатҳои бузург кӯшиш мекунанд, ки ба муттаҳидсозии ҳадди аксар идоракунӣ ноил шаванд, то тавонанд анборҳои додаҳои худро зуд идора кунанд.
  • Ва ин махсусан кӯмак мекунад, агар ба шумо имкони ҳадди аксар барои такрори ҳамон чизе дар ҷои нав лозим бошад, яъне ҳадди аксар интиқол.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Чӣ қадар осон ё душвор аст? Инро, албатта, дастй кардан мумкин аст. Аммо ин он қадар содда нест, зеро мо мураккабии иловагии идоракунии худи Kubernetes дорем, аммо дар айни замон хусусиятҳои ClickHouse дар бар мегиранд. Ва чунин ҷамъбаст натиҷа медиҳад.

Ва ҳама якҷоя ин маҷмӯи хеле зиёди технологияҳоро медиҳад, ки идора кардани онҳо хеле душвор мешавад, зеро Кубернетес масъалаҳои ҳаррӯзаи худро ба кор меорад ва ClickHouse масъалаҳои худро ба кори ҳаррӯза меорад. Хусусан, агар мо якчанд ClickHouse дошта бошем ва мо бояд доимо бо онҳо коре кунем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Бо конфигуратсияи динамикӣ, ClickHouse дорои шумораи хеле зиёди масъалаҳое мебошад, ки дар DevOps сарбории доимӣ эҷод мекунанд:

  • Вақте ки мо мехоҳем чизеро дар ClickHouse тағир диҳем, масалан, реплика ё пора илова кунед, пас мо бояд конфигуратсияро идора кунем.
  • Сипас схемаи маълумотро тағир диҳед, зеро ClickHouse дорои усули мушаххаси sharding мебошад. Дар он ҷо шумо бояд диаграммаи маълумотро ҷойгир кунед, конфигуратсияҳоро ҷойгир кунед.
  • Шумо бояд мониторингро танзим кунед.
  • Ҷамъоварии гузоришҳо барои пораҳои нав, барои репликаҳои нав.
  • Дар бораи барқарорсозӣ ғамхорӣ кунед.
  • Ва аз нав оғоз кунед.

Инҳо вазифаҳои муқаррарӣ мебошанд, ки ман воқеан мехоҳам истифодаи онҳоро осонтар кунам.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Худи Кубернетес дар амалиёт хуб кӯмак мекунад, аммо дар чизҳои асосии система.

Кубернетес дар осон ва автоматикунонии чизҳо хуб аст, ба монанди:

  • Барќароркунї.
  • Оғози дубора.
  • Идоракунии системаи нигоҳдорӣ.

Ин хуб аст, ин самти дуруст аст, аммо ӯ дар бораи чӣ гуна идора кардани кластери пойгоҳи додаҳо комилан бехабар аст.

Мо бештар мехоҳем, мо мехоҳем, ки тамоми пойгоҳи додаҳо дар Кубернетес кор кунанд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ман мехоҳам чизе ба мисли як тугмаи калони сурхи ҷодугарӣ гирам, ки шумо онро пахш мекунед ва кластер бо вазифаҳои ҳаррӯзае, ки бояд ҳал карда шаванд, дар тӯли тамоми давраи ҳаёти худ ҷойгир ва нигоҳ дошта мешаванд. Кластери ClickHouse дар Кубернетес.

Ва мо кушиш намудем, ки халли он ба осон шудани кор кумак кунад. Ин як оператори ClickHouse барои Kubernetes аз Altinity аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Оператор барномаест, ки вазифаи асосии он идоракунии барномаҳои дигар аст, яъне менеҷер аст.

Ва он дорои намунаҳои рафтор аст. Шумо метавонед ин дониши кодификатсияшударо дар бораи соҳаи мавзӯъ даъват кунед.

Ва вазифаи асосии ӯ осонтар кардани ҳаёти DevOps ва кам кардани микроменеҷмент аст, то ӯ (DevOps) аллакай дар сатҳи баланд фикр кунад, яъне, то ӯ (DevOps) ба микроменеҷмент машғул нашавад, то ки вай танзим накунад. тамоми тафсилотро дастӣ.

Ва танҳо оператор як ёрдамчии роботист, ки бо микрокортҳо сарукор дорад ва ба DevOps кӯмак мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Чаро ба шумо оператор лозим аст? Ӯ махсусан дар ду соҳа хуб баромад мекунад:

  • Вақте ки мутахассисе, ки бо ClickHouse кор мекунад, таҷрибаи кофӣ надорад, аммо аллакай бояд ClickHouse-ро идора кунад, оператор амалиётро осон мекунад ва ба шумо имкон медиҳад, ки кластери ClickHouse-ро бо конфигуратсияи хеле мураккаб идора кунед, бидуни тафсилоти аз ҳад зиёд дар бораи он ки ҳама кор мекунад. дарун. Шумо танҳо ба ӯ супоришҳои баланд медиҳед ва ин кор мекунад.
  • Ва вазифаи дуюм, ки дар он он беҳтарин иҷро мешавад, вақте ки автоматикунонии шумораи зиёди вазифаҳои маъмулӣ зарур аст. Микровазифаҳоро аз маъмурони система хориҷ мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ин бештар ба онҳое лозим аст, ки сафари худро нав оғоз мекунанд ва ё ба онҳое, ки ба автоматизатсияи зиёд ниёз доранд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Муносибати ба оператор асосёфта аз дигар системаҳо чӣ фарқ дорад? Ҳелм вуҷуд дорад. Он инчунин барои насб кардани ClickHouse кӯмак мекунад; шумо метавонед диаграммаҳои рульро кашед, ки ҳатто як кластери ClickHouse-ро насб мекунанд. Пас фарқияти байни оператор ва ҳамон як, масалан, Ҳелм чист?

Тафовути асосии бунёдӣ дар он аст, ки Helm идоракунии бастаҳост ва Оператор як қадами пештар меравад. Ин дастгирӣ барои тамоми давраи ҳаёт аст. Ин на танҳо насбкунӣ аст, инҳо вазифаҳои ҳаррӯза мебошанд, ки миқёскунӣ, тақсимкунӣ, яъне ҳама чизеро, ки дар давоми давраи ҳаёт анҷом додан лозим аст (агар лозим бошад, ҳазф кардан низ) - ҳамаро оператор ҳал мекунад. Он кӯшиш мекунад, ки тамоми давраи ҳаёти нармафзорро автоматӣ ва нигоҳ дорад. Ин фарқи асосии он аз дигар қарорҳои пешниҳодшуда мебошад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ин қисми муқаддима буд, биёед идома диҳем.

Мо оператори худро чӣ гуна созем? Мо кӯшиш мекунем, ки ба ин масъала муносибат кунем, то кластери ClickHouse-ро ҳамчун як манбаи ягона идора кунем.

Дар ин ҷо мо маълумоти воридшударо дар тарафи чапи расм дорем. Ин YAML бо тавсифи кластер аст, ки ба Kubernetes ба таври классикӣ тавассути kubectl интиқол дода мешавад. Дар он ҷо оператори мо онро гирифта, ҷодугарии худро мекунад. Ва дар баромад мо схемаи зеринро мегирем. Ин татбиқи ClickHouse дар Kubernetes аст.

Ва он гоҳ мо оҳиста-оҳиста мебинем, ки оператор чӣ гуна кор мекунад, кадом вазифаҳои маъмулиро ҳал кардан мумкин аст. Мо танҳо вазифаҳои маъмулиро баррасӣ хоҳем кард, зеро мо вақти маҳдуд дорем. Ва на ҳама чизест, ки оператор метавонад қарор кунад, муҳокима карда мешавад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед аз амалия сар кунем. Лоиҳаи мо комилан кушода аст, бинобар ин шумо метавонед бубинед, ки он дар GitHub чӣ гуна кор мекунад. Ва шумо метавонед аз мулоҳизаҳое идома диҳед, ки агар шумо танҳо онро оғоз кардан хоҳед, пас шумо метавонед бо Дастури зуд оғоз кунед.

Агар шумо хоҳед, ки ба таври муфассал фаҳмед, мо кӯшиш мекунем, ки ҳуҷҷатҳоро дар шакли камтар ё камтар мувофиқ нигоҳ дорем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед аз як масъалаи амалӣ оғоз кунем. Вазифаи аввалине, ки ҳамаи мо мехоҳем оғоз кунем, ин аст, ки намунаи аввалро бо ягон роҳ иҷро кунем. Чӣ тавр ман метавонам ClickHouse-ро бо истифода аз оператор оғоз кунам, ҳатто агар ман аслан намедонам, ки он чӣ гуна кор мекунад? Мо манифест менависем, зеро... Ҳама муошират бо k8s иртибот тавассути манифест.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ин як манифести мураккаб аст. Он чизе ки мо бо ранги сурх таъкид кардем, он чизест, ки мо бояд ба он диққат диҳем. Мо аз оператор хоҳиш мекунем, ки кластер бо номи намоишӣ созад.

Инҳо мисолҳои асосӣ барои ҳозир мебошанд. Захира ҳанӯз тавсиф нашудааст, аммо мо каме дертар ба анбор бармегардем. Ҳоло мо динамикаи рушди кластерро мушоҳида хоҳем кард.

Мо ин манифестро офаридаем. Мо онро ба оператори худ медиҳем. Вай кор мекард, ҷодугарӣ мекард.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо ба консол нигоҳ мекунем. Се ҷузъ таваҷҷӯҳ доранд: як Pod, ду хидмат ва StatefulSet.

Оператор кор кард ва мо мебинем, ки вай махз чиро офаридааст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ӯ чунин чизеро эҷод мекунад. Мо барои ҳар як реплика StatefulSet, Pod, ConfigMap, барои тамоми кластер ConfigMap дорем. Хидматҳо ҳамчун нуқтаи вуруд ба кластер талаб карда мешаванд.

Хидматҳо Хадамоти марказии тавозуни сарборӣ мебошанд ва онҳоро инчунин барои ҳар як реплика, барои ҳар як порча истифода бурдан мумкин аст.

Кластери асосии мо чунин менамояд. Он аз як гиреҳ аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед, минбаъд пеш равем ва корро мураккаб кунем. Мо бояд кластерро тақсим кунем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Вазифахои мо меафзояд, динамика огоз меёбад. Мо мехоҳем як порча илова кунем. Мо пешрафтро пайгирӣ мекунем. Мо мушаххасоти худро тағир медиҳем. Мо нишон медиҳем, ки мо ду пора мехоҳем.

Ин ҳамон файлест, ки бо афзоиши система ба таври динамикӣ инкишоф меёбад. Нигоҳдорӣ №, нигоҳдорӣ минбаъд баррасӣ хоҳад шуд, ин мавзӯи алоҳида аст.

Мо оператори YAML-ро ғизо медиҳем ва мебинем, ки чӣ мешавад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Оператор фикр кард ва объектҳои зеринро сохт. Мо аллакай ду Под, се хидмат ва ногаҳон 2 StatefulSet дорем. Чаро 2 StatefulSets?

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Дар диаграмма ин тавр буд - ин ҳолати ибтидоии мост, вақте ки мо як поя доштем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Чунин шуд. То ҳол ҳама чиз оддӣ аст, он такрор шудааст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва чаро ду StatefulSet шуданд? Дар ин ҷо мо бояд дар бораи он ки чӣ гуна Pods дар Кубернетес идора карда мешавад, канорагирӣ кунем ва муҳокима кунем.

Объект бо номи StatefulSet мавҷуд аст, ки ба шумо имкон медиҳад, ки аз қолаб маҷмӯи Pods эҷод кунед. Омили асосӣ дар ин ҷо Шаблон аст. Ва шумо метавонед бо истифода аз як қолаб дар як StatefulSet бисёр Podҳоро оғоз кунед. Ва ибораи калидӣ дар ин ҷо "подҳои зиёде барои як қолаб" аст.

Ва васвасаи бузург барои сохтани тамоми кластер ва бастабандии он ба як StatefulSet вуҷуд дошт. Он кор хоҳад кард, ҳеҷ мушкиле бо он нест. Аммо як огоҳӣ вуҷуд дорад. Агар мо хоҳем, ки кластери гетерогенӣ, яъне аз якчанд версияи ClickHouse ҷамъ кунем, пас саволҳо ба миён меоянд. Бале, StatefulSet метавонад як навсозии ҳамаҷониба анҷом диҳад ва дар он ҷо шумо метавонед версияи навро паҳн кунед, фаҳмонед, ки шумо бояд дар як вақт на бештар аз ин қадар гиреҳҳоро санҷед.

Аммо агар мо вазифаро экстраполятсия кунем ва бигӯем, ки мо мехоҳем кластери комилан гетерогенӣ созем ва мо намехоҳем аз версияи кӯҳна ба версияи нав бо истифода аз навсозии даврӣ тағир диҳем, аммо мо танҳо мехоҳем кластери гетерогенӣ эҷод кунем. аз версияҳои гуногуни ClickHouse ва аз ҷиҳати нигоҳдории гуногун. Мо мехоҳем, масалан, баъзе нусхаҳоро дар дискҳои алоҳида, дар дискҳои суст, умуман, кластери гетерогенӣ комилан бунёд кунем. Ва азбаски StatefulSet ҳалли стандартиро аз як қолаб месозад, ҳеҷ роҳе барои ин кор вуҷуд надорад.

Баъди чанд фикру андеша карор дода шуд, ки мо корро хамин тавр мекунем. Мо ҳар як репликаро дар StatefulSet худ дорем. Дар ин ҳалли мушкилот баъзе камбудиҳо мавҷуданд, аммо дар амал он ҳама аз ҷониби оператор пурра фаро гирифта шудааст. Ва бисёр афзалиятҳо вуҷуд дорад. Мо метавонем кластери дақиқеро, ки мо мехоҳем, созем, масалан, як кластери комилан гетерогенӣ. Аз ин рӯ, дар кластере, ки дар он мо ду пора бо як реплика дорем, мо 2 StatefulSets ва 2 Pod дорем, маҳз аз он сабаб, ки мо ин равишро бо сабабҳои дар боло зикршуда интихоб кардем, то кластери гетерогенӣ бунёд кунем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ба проблемахои амалй бармегардем. Дар кластери мо мо бояд корбаронро танзим кунем, яъне. шумо бояд баъзе конфигуратсияи ClickHouse-ро дар Kubernetes иҷро кунед. Оператор барои ин тамоми имкониятхоро мухайё мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо метавонем он чизеро, ки мехоҳем, мустақиман дар YAML нависем. Ҳама имконоти конфигуратсия мустақиман аз ин YAML ба конфигуратсияҳои ClickHouse харита карда мешаванд, ки баъдан дар тамоми кластер паҳн карда мешаванд.

Шумо метавонед инро чунин нависед. Ин барои мисол. Паролро рамзгузорӣ кардан мумкин аст. Мутлақо ҳама имконоти конфигуратсияи ClickHouse дастгирӣ мешаванд. Ана як мисол.

Конфигуратсияи кластер ҳамчун ConfigMap тақсим карда мешавад. Дар амал, навсозии ConfigMap фавран рух намедиҳад, бинобар ин, агар кластер калон бошад, пас раванди тела додани конфигуратсия каме вақт мегирад. Аммо хамаи ин барои истифода хеле кулай аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед вазифаро мураккаб кунем. Кластер инкишоф меёбад. Мо мехоҳем маълумотро такрор кунем. Ин аст, ки мо аллакай ду порча дорем, ки ҳар як як нусхабардорӣ ва корбарон танзим шудаанд. Мо афзоиш ёфта истодаем ва мехоҳем такрорӣ кунем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Барои нусхабардорӣ ба мо чӣ лозим аст?

Ба мо ZooKeeper лозим аст. Дар ClickHouse, такрорӣ бо истифода аз ZooKeeper сохта мешавад. ZooKeeper лозим аст, то репликаҳои гуногуни ClickHouse дар бораи он ки кадом блокҳои додаҳо дар кадом ClickHouse ҷойгиранд, консенсус дошта бошанд.

ZooKeeper метавонад аз ҷониби ҳама истифода шавад. Агар корхона ZooKeeper-и беруна дошта бошад, пас аз он истифода бурдан мумкин аст. Дар акси ҳол, шумо метавонед онро аз анбори мо насб кунед. Як насбкунанда вуҷуд дорад, ки ин ҳама чизро осон мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва диаграммаи таъсири мутақобилаи тамоми система чунин бармеояд. Мо Kubernetes ҳамчун платформа дорем. Он оператори ClickHouse -ро иҷро мекунад. Ман дар ин ҷо ZooKeeper-ро тасвир кардам. Ва оператор ҳам бо ClickHouse ва ҳам ZooKeeper ҳамкорӣ мекунад. Яъне, натиҷаи мутақобила.

Ва ҳамаи ин барои ClickHouse барои бомуваффақият такрор кардани маълумот дар k8s зарур аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Акнун биёед худи вазифаро бубинем, ки манифести такрорӣ чӣ гуна хоҳад буд.

Мо ба манифести худ ду бахш илова мекунем. Аввалин он аст, ки ZooKeeperро аз куҷо гирифтан мумкин аст, ки он метавонад дар дохили Kubernetes ё берунӣ бошад. Ин танҳо тавсиф аст. Ва мо нусхабардорӣ фармоиш медиҳем. Онхое. мо ду нусха мехоҳем. Дар маҷмӯъ, мо бояд дар баромад 4 pod дошта бошем. Мо дар бораи нигоҳдорӣ дар хотир дорем, он каме дертар бармегардад. Нигоҳдорӣ як ҳикояи алоҳида аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Чунин буд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Чунин мешавад. Репликаҳо илова карда мешаванд. 4-ум мувофиқ набуд, мо боварӣ дорем, ки дар он ҷо шумораи онҳо метавонад зиёд бошад. Ва ZooKeeper ба паҳлӯ илова карда мешавад. Схемахо торафт мураккабтар шуда истодаанд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва вақти он расидааст, ки вазифаи навбатиро илова кунед. Мо нигаҳдории доимиро илова мекунем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)Барои нигоҳдории доимӣ мо имконоти гуногун дорем.

Агар мо дар як провайдери абрӣ кор кунем, масалан, бо истифода аз Amazon, Google, пас васвасаи бузурги истифодаи нигаҳдории абр вуҷуд дорад. Ин хеле қулай аст, хуб аст.

Ва варианти дуюм вуҷуд дорад. Ин барои нигаҳдории маҳаллӣ аст, вақте ки мо дар ҳар як гиреҳ дискҳои маҳаллӣ дорем. Татбиқи ин вариант хеле мушкилтар аст, аммо дар айни замон самараноктар аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед бубинем, ки мо дар бораи нигоҳдории абр чӣ дорем.

Афзалиятҳо вуҷуд доранд. Онро танзим кардан хеле осон аст. Мо танҳо аз провайдери абр фармоиш медиҳем, ки лутфан ба мо захираи фалон иқтидори фалон синфро диҳед. Дарсҳо аз ҷониби провайдерҳо мустақилона ба нақша гирифта мешаванд.

Ва як камбудӣ вуҷуд дорад. Барои баъзеҳо, ин камбудии ғайримуқаррарӣ аст. Албатта, баъзе мушкилоти иҷроиш хоҳад буд. Истифодаи он хеле қулай ва боэътимод аст, аммо баъзе камбудиҳои эҳтимолии иҷроиш вуҷуд доранд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва азбаски ClickHouse махсусан ба маҳсулнокӣ тамаркуз мекунад, ҳатто метавон гуфт, ки он ҳама чизро аз даст медиҳад, бинобар ин бисёр муштариён мекӯшанд, ки ҳосилнокии ҳадди аксарро аз даст диҳанд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва барои ба даст овардани бештари он, ба мо захираи маҳаллӣ лозим аст.

Kubernetes се абстраксияро барои истифодаи нигаҳдории маҳаллӣ дар Кубернетес пешниҳод мекунад. Ин:

  • EmptyDir
  • HostPath.
  • маҳаллӣ

Биёед бубинем, ки онҳо чӣ гуна фарқ мекунанд ва чӣ гуна онҳо ба ҳам монанданд.

Аввалан, дар ҳар се равиш, мо нигоҳдорӣ дорем - инҳо дискҳои маҳаллӣ мебошанд, ки дар як гиреҳи физикии k8s ҷойгиранд. Аммо онҳо баъзе фарқиятҳо доранд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед бо соддатарин оғоз кунем, яъне emptyDir. Ин дар амал чист? Дар мушаххасоти худ, мо аз системаи контейнеризатсия (аксаран Docker) хоҳиш мекунем, ки ба мо дастрасӣ ба ҷузвдони диски локалӣ диҳад.

Дар амал, Docker як папкаи муваққатиро дар ҷое қад-қади роҳҳои худ месозад ва онро хэши дароз меномад. Ва интерфейсеро барои дастрасӣ ба он таъмин мекунад.

Чӣ тавр ин аз ҷиҳати иҷроиш кор хоҳад кард? Ин бо суръати диски маҳаллӣ кор хоҳад кард, яъне. Ин дастрасии пурра ба винти шумост.

Аммо ин парванда камбудии худро дорад. Устувор дар ин масъала хеле шубҳанок аст. Бори аввал, ки Docker бо контейнерҳо ҳаракат мекунад, Persistent гум мешавад. Агар Кубернетес бо ягон сабаб ин Pod-ро ба диски дигар интиқол додан мехоҳад, маълумот гум мешавад.

Ин равиш барои санҷишҳо хуб аст, зеро он аллакай суръати муқаррариро нишон медиҳад, аммо барои чизи ҷиддӣ ин интихоб мувофиқ нест.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Аз ин рӯ, роҳи дуюм вуҷуд дорад. Ин hostPath аст. Агар шумо ба слайди қаблӣ ва ин слайд нигоҳ кунед, шумо танҳо як фарқиятро мебинед. Папкаи мо аз Docker мустақиман ба гиреҳи Кубернетес кӯчид. Ин ҷо каме соддатар аст. Мо бевосита роҳро дар системаи файлии маҳаллӣ муайян мекунем, ки мо мехоҳем маълумоти худро нигоҳ дорем.

Ин усул афзалиятҳо дорад. Ин аллакай як доимии воқеӣ аст ва дар айни замон классикӣ. Мо маълумотро дар диск дар ягон суроға сабт хоҳем кард.

Камбудихо хам мавчуданд. Ин мураккабии идоракунӣ аст. Кубернетҳои мо метавонанд мехоҳанд, ки Pod-ро ба гиреҳи физикии дигар интиқол диҳанд. Ва дар ин ҷо DevOps ба бозӣ меояд. Вай бояд ба тамоми система дуруст фаҳмонад, ки ин подкҳоро танҳо ба он гиреҳҳое интиқол додан мумкин аст, ки шумо дар ин роҳҳо чизе насб кардаед ва на бештар аз як гиреҳ дар як вақт. Ин хеле душвор аст.

Махсусан барои ин мақсадҳо мо дар оператори худ қолабҳо сохтем, то ҳамаи ин мураккабиро пинҳон кунем. Ва шумо метавонед танҳо бигӯед: "Ман мехоҳам барои ҳар як гиреҳи физикӣ ва фалон роҳ як мисоли ClickHouse дошта бошам."

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Аммо на танҳо мо ба ин ниёз ниёз дорем, аз ин рӯ худи ҷанобон аз Кубернетес низ мефаҳманд, ки одамон мехоҳанд ба дискҳои физикӣ дастрасӣ дошта бошанд, бинобар ин онҳо қабати сеюмро таъмин мекунанд.

Онро маҳаллӣ меноманд. Аз слайди қаблӣ амалан фарқият вуҷуд надорад. Танҳо пеш аз он ки ба таври дастӣ тасдиқ кардан лозим буд, ки мо ин подкҳоро аз гиреҳ ба гиреҳ интиқол дода наметавонем, зеро онҳо бояд бо ягон роҳ ба диски физикии маҳаллӣ пайваст карда шаванд, аммо ҳоло ҳамаи ин донишҳо дар худи Кубернетес фаро гирифта шудаанд. Ва он рӯй медиҳад, ки танзим кардан хеле осонтар аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ба проблемам амалии худ бармегардем. Биёед ба қолаби YAML баргардем. Дар ин ҷо мо захираи воқеӣ дорем. Мо ба он бармегардем. Мо қолаби классикии VolumeClaim-ро тавре ки дар k8s муқаррар кардем. Ва мо тасвир мекунем, ки мо чӣ гуна нигоҳдорӣ мехоҳем.

Пас аз ин, k8s нигоҳдорӣ дархост мекунад. Онро ба мо дар StatefulSet ҷудо мекунад. Ва дар ниҳоят он дар ихтиёри ClickHouse хоҳад буд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо ин схема доштем. Анбори доимии мо сурх буд, ки ба назар чунин менамуд, ки ин корро кардан лозим аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва он сабз мешавад. Ҳоло нақшаи кластери ClickHouse дар k8s комилан ба итмом расидааст. Мо пораҳо, репликаҳо, ZooKeeper дорем, мо як Persistent-и воқеӣ дорем, ки бо ин ё он роҳ амалӣ карда мешавад. Схема аллакай пурра ба кор андохта шудааст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо зиндагӣ карданро идома медиҳем. Кластери мо инкишоф меёбад. Ва Алексей кӯшиш мекунад ва версияи нави ClickHouse-ро мебарорад.

Вазифаи амалӣ ба миён меояд - санҷиши версияи нави ClickHouse дар кластери мо. Ва, табиист, ки шумо намехоҳед ҳамаашро паҳн кунед; шумо мехоҳед версияи навро дар як реплика дар ҷое дар гӯшаи дур ҷойгир кунед ва шояд як версияи нав не, балки дуто якбора, зеро онҳо зуд-зуд мебароянд.

Дар ин бора мо чй гуфта метавонем?

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Дар ин чо мо махз хамин гуна имконият дорем. Инҳо қолибҳои подколорӣ мебошанд. Шумо метавонед нависед, ки оператори мо ба шумо комилан имкон медиҳад, ки кластери гетерогенӣ бунёд кунед. Онхое. конфигуратсия кунед, сар карда аз ҳама репликаҳо дар як хӯша, ки бо ҳар як репликаи шахсӣ хотима меёбад, кадом версияи мо ClickHouse-ро мехоҳем, кадом версияи мо нигоҳдорӣ мехоҳем. Мо метавонем кластерро бо конфигуратсияе, ки ба мо лозим аст, пурра танзим кунем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед дар дохили он каме амиқтар равем. Пеш аз ин, мо дар бораи он ки чӣ тавр ClickHouse-оператор дар робита бо мушаххасоти ClickHouse кор мекунад, сӯҳбат кардем.

Акнун ман мехостам чанд сухан дар бораи умуман чй тавр кор кардани ягон оператор, инчунин бо K8-хо чй тавр му-носибат мекунад, гуям.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед аввал ба ҳамкорӣ бо K8s назар кунем. Вақте ки мо kubectl муроҷиат мекунем, чӣ мешавад? Объектҳои мо дар etcd тавассути API пайдо мешаванд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Масалан, объектҳои асосии Kubernetes: pod, StatefulSet, хидмат ва ғайра дар поёни рӯйхат.

Дар айни замон, ҳеҷ чизи ҷисмонӣ ҳанӯз рӯй намедиҳад. Ин объектҳо бояд дар кластер моддӣ карда шаванд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Бо ин мақсад, контроллер пайдо мешавад. Контроллер як ҷузъи махсуси k8s мебошад, ки метавонад ин тавсифҳоро амалӣ кунад. Ӯ медонад, ки чӣ гуна ва чӣ кор кардан лозим аст. Вай медонад, ки чӣ гуна контейнерҳоро идора кардан лозим аст, то он ҷо чӣ кор карда шавад, то сервер кор кунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва он объектҳои моро дар K8s моддӣ мекунад.

Аммо мо мехоҳем, ки на танҳо бо pods ва StatefulSets кор кунем, мо мехоҳем як ClickHouseInstallation, яъне объекти навъи ClickHouse эҷод кунем, то бо он дар як маҷмӯъ кор кунем. То ҳол чунин имкон вуҷуд надорад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Аммо K8s чизи хубе дорад. Мо мехоҳем, ки дар ҷое мисли ин сохтори мураккабе дошта бошем, ки дар он кластери мо аз pods ва StatefulSet ҷамъ карда шавад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва барои ин чӣ кор кардан лозим аст? Аввалан, Таърифи захираҳои фармоишӣ ба расм меояд. Ин чист? Ин тавсиф барои K8s аст, ки шумо як намуди дигари маълумот хоҳед дошт, ки мо мехоҳем ба подкаст, StatefulSet манбаи фармоиширо илова кунем, ки дар дохили он мураккаб хоҳад буд. Ин тавсифи сохтори додаҳост.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо инчунин онро тавассути kubectl application ба он ҷо мефиристем. Кубернетес онро бо хушнудӣ қабул кард.

Ва ҳоло дар анбори мо, объект дар etcd имкон дорад, ки манбаи фармоиширо бо номи ClickHouseInstallation сабт кунад.

Аммо ҳоло дигар ҳеҷ чиз рӯй нахоҳад дод. Яъне, агар мо ҳоло файли YAML-ро эҷод кунем, ки мо онро тавсифи пораҳо ва репликаҳоро дидаем ва "kubectl татбиқ мешавад" гӯем, пас Кубернетес онро қабул карда, дар etcd ҷойгир мекунад ва мегӯяд: "Аҷоиб, аммо ман намедонам чӣ кор кунам бо он. Ман намедонам, ки чӣ тавр ClickHouseInstallation нигоҳ дошта шавад."

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Аз ин рӯ, ба мо касе лозим аст, ки ба Кубернетес дар хидматрасонии навъи нави маълумот кӯмак кунад. Дар тарафи чап мо як контролери аслии Kubernetes дорем, ки бо намудҳои додаҳои аслӣ кор мекунад. Ва дар тарафи рост мо бояд як контролери фармоишӣ дошта бошем, ки метавонад бо намудҳои фармоишии додаҳо кор кунад.

Ва ба тарзи дигар онро оператор меноманд. Ман онро махсусан дар ин ҷо ҳамчун Kubernetes дохил кардам, зеро онро берун аз K8s низ иҷро кардан мумкин аст. Бештари вақт, албатта, ҳама операторҳо дар Кубернетес иҷро карда мешаванд, аммо ҳеҷ чиз ба он дар берун истодан монеъ намешавад, бинобар ин дар ин ҷо он махсус ба берун интиқол дода мешавад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва дар навбати худ, контролери фармоишӣ, ки бо номи оператор низ маълум аст, тавассути API бо Kubernetes ҳамкорӣ мекунад. Он аллакай медонад, ки чӣ тавр бо API муомила кардан мумкин аст. Ва ӯ аллакай медонад, ки чӣ гуна схемаи мураккаберо, ки мо мехоҳем аз манбаи фармоишӣ созем, амалӣ созад. Ин маҳз ҳамон чизест, ки оператор мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Оператор чӣ гуна кор мекунад? Биёед ба тарафи рост назар кунем, то бубинем, ки ӯ чӣ гуна ин корро мекунад. Биёед бифаҳмем, ки оператор ин ҳамаро чӣ гуна амалӣ мекунад ва чӣ гуна муносибатҳои минбаъда бо K8s ба амал меоянд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Оператор як барнома аст. Вай ба рӯйдод нигаронида шудааст. Оператор бо истифода аз API Kubernetes ба рӯйдодҳо обуна мешавад. API Kubernetes дорои нуқтаҳои вуруд аст, ки шумо метавонед ба рӯйдодҳо обуна шавед. Ва агар чизе дар K8s тағир ёбад, пас Кубернетес рӯйдодҳоро ба ҳама мефиристад, яъне. ҳар касе, ки ба ин нуқтаи API обуна шудааст, огоҳиномаҳо мегирад.

Оператор ба рӯйдодҳо обуна мешавад ва бояд як навъ вокуниш нишон диҳад. Вазифаи он вокуниш ба рӯйдодҳои пайдошуда мебошад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ҳодисаҳо тавассути навсозиҳои муайян тавлид мешаванд. Файли YAML мо бо тавсифи ClickHouseInstallation меояд. Вай ба воситаи kubectl муроҷиат ба etcd рафт. Дар он ҷо як ҳодиса оғоз шуд ва дар натиҷа ин ҳодиса ба ClickHouse-оператор омад. Оператор ин тавсифро гирифт. Ва ӯ бояд чизе кунад. Агар барои объекти ClickHouseInstallation навсозӣ ворид шуда бошад, пас шумо бояд кластерро навсозӣ кунед. Ва вазифаи оператор ин навсозии кластер аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ӯ чӣ кор мекунад? Аввалан, мо бояд нақшаи амалеро таҳия кунем, ки мо бо ин навсозӣ чӣ кор хоҳем кард. Навсозиҳо метавонанд хеле хурд бошанд, яъне. дар иҷрои YAML хурд, аммо метавонад дар кластер тағйироти хеле калонро ба бор орад. Бинобар ин оператор план тартиб дода, баъд ба он вафо мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Тибқи ин нақша, ӯ ба пухтупази ин сохтор дар дохили он шурӯъ мекунад, то ки подҳо, хидматҳо, яъне. он чиро, ки вазифаи асосиаш аст, ичро кунад. Ин аст тарзи сохтани кластери ClickHouse дар Кубернетес.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Акнун биёед ба чунин як чизи ҷолиб дахл кунем. Ин тақсимоти масъулият байни Кубернетес ва оператор аст, яъне. Кубернетес чӣ кор мекунад, оператор чӣ кор мекунад ва онҳо бо ҳамдигар чӣ гуна муносибат мекунанд.

Кубернетес барои чизҳои система масъул аст, яъне. барои маҷмӯи асосии объектҳо, ки метавонанд ҳамчун система-миқёси тафсир. Кубернетес медонад, ки чӣ тавр ба кор андохтани pods, чӣ гуна аз нав оғоз кардани контейнерҳо, чӣ гуна насб кардани ҳаҷмҳо, чӣ гуна кор кардан бо ConfigMap, яъне. хамаи он чиро ки система номидан мумкин аст.

Операторҳо дар доменҳо амал мекунанд. Ҳар як оператор барои мавзӯи худ сохта шудааст. Мо инро барои ClickHouse кардем.

Ва оператор маҳз аз рӯи мавзӯи мавзӯъ, ба монанди илова кардани реплика, таҳияи диаграмма, насб кардани мониторинг амал мекунад. Ин боиси тақсимшавӣ мегардад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед мисоли амалиеро бубинем, ки чӣ тавр ин тақсимоти масъулият ҳангоми иҷро кардани амали такрории илова ба амал меояд.

Оператор супориш мегирад - илова кардани реплика. Оператор чӣ кор мекунад? Оператор ҳисоб мекунад, ки StatefulSet-и нав бояд эҷод карда шавад, ки дар он чунин ва чунин қолабҳо, даъвои ҳаҷм бояд тавсиф карда шаванд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Вай хамаашро тайёр карда, ба К8-хо медихад. Вай мегӯяд, ки ба ӯ ConfigMap, StatefulSet, Volume лозим аст. Кубернетес кор мекунад. Вай агрегатхои асосиеро, ки бо онхо кор мекунад, модди мегардонад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва он гоҳ ClickHouse-оператор боз ба бозӣ меояд. Вай аллакай як поди ҷисмонӣ дорад, ки дар он аллакай коре карда метавонад. Ва ClickHouse-оператор боз дар шароити домен кор мекунад. Онхое. Махсусан ClickHouse, барои дохил кардани реплика дар кластер, шумо бояд аввал схемаи маълумотеро, ки дар ин кластер мавҷуд аст, танзим кунед. Ва, сониян, ин нусха бояд ба мониторинг дохил карда шавад, то ки он ба таври возеҳ пайгирӣ карда шавад. Оператор аллакай инро танзим мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва танҳо пас аз он худи ClickHouse ба кор меояд, яъне. дигар муассисаи сатҳи баландтар. Ин аллакай базаи маълумот аст. Он намунаи худро дорад, репликаи дигари танзимшуда, ки барои пайвастан ба кластер омода аст.

Маълум мешавад, ки занҷири иҷро ва тақсими масъулият ҳангоми илова кардани реплика хеле дароз аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо вазифахои амалии худро давом медихем. Агар шумо аллакай кластер дошта бошед, шумо метавонед конфигуратсияро интиқол диҳед.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо онро тавре сохтем, ки шумо метавонед ба xml мавҷуда часбонед, ки ClickHouse онро мефаҳмад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Шумо метавонед ClickHouse-ро дуруст танзим кунед. Ҷойгиркунии танҳо минтақавӣ он чизест, ки ман ҳангоми шарҳи hostPath, нигаҳдории маҳаллӣ дар бораи он сӯҳбат кардам. Ин аст, ки чӣ тавр ҷойгиркунии минтақавӣ дуруст анҷом дода шавад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Вазифаи амалии навбатии мониторинг аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Агар кластери мо тағир ёбад, мо бояд давра ба давра мониторингро танзим кунем.

Биёед ба диаграмма назар андозем. Мо аллакай дар ин ҷо ба тирҳои сабз назар кардаем. Акнун биёед ба тирҳои сурх назар андозем. Ин аст, ки мо мехоҳем кластери худро назорат кунем. Чӣ тавр метрикҳо аз кластери ClickHouse ба Prometheus ва сипас ба Grafana ворид мешаванд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мушкилоти мониторинг чӣ гуна аст? Чаро ин ҳамчун як навъ дастовард муаррифӣ мешавад? Мушкилот дар динамика аст. Вақте ки мо як кластер дорем ва он статикӣ аст, мо метавонем мониторингро як маротиба танзим кунем ва дигар ташвиш надиҳем.

Аммо агар мо кластерҳои зиёде дошта бошем, ё чизе пайваста тағир ёбад, пас раванд динамикӣ аст. Ва пайваста аз нав танзим кардани мониторинг сарфи беҳудаи захираҳо ва вақт аст, яъне. ҳатто танҳо танбалӣ. Инро автоматй кардан лозим аст. Мушкилот дар динамикаи раванд аст. Ва оператор инро хеле хуб автоматӣ мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Кластери мо чӣ гуна инкишоф ёфт? Дар аввал вай чунин буд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Баъд ӯ чунин буд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Дар охир, вай чунин шуд.

Ва мониторинг ба таври худкор аз ҷониби оператор анҷом дода мешавад. Нуқтаи ягонаи вуруд.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ва танҳо дар баромадгоҳ мо ба панели графикии Grafana нигоҳ мекунем, то бубинем, ки ҳаёти кластери мо дар дохили он чӣ гуна ҷӯш мешавад.

Дар омади гап, панели графикии Grafana инчунин бо оператори мо бевосита дар коди сарчашма тақсим карда мешавад. Шумо метавонед пайваст кунед ва истифода баред. DevOps мо ба ман ин скриншотро дод.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Мо минбаъд ба куҷо рафтан мехостем? Ин:

  • Ташаккул додани автоматикунонии санҷиш. Вазифаи асосй озмоиши автоматии версияхои нав мебошад.
  • Мо инчунин дар ҳақиқат мехоҳем ҳамгироиро бо ZooKeeper автоматӣ кунем. Ва нақшаи ҳамгироӣ бо ZooKeeper-оператор вуҷуд дорад. Онхое. Оператор барои ZooKeeper навишта шудааст ва мантиқист, ки ин ду оператор ба ҳамгироӣ шурӯъ мекунанд, то ҳалли муносибтаре созанд.
  • Мо мехоҳем, ки аломатҳои ҳаётан муҳимтарро иҷро кунем.
  • Ман бо ранги сабз қайд кардам, ки мо ба мероси Шаблонҳо наздик шуда истодаем - ИЧРО шуд, яъне бо нашри навбатии оператор мо аллакай мероси қолибҳоро хоҳем дошт. Ин як воситаи пурқувватест, ки ба шумо имкон медиҳад конфигуратсияҳои мураккабро аз қисмҳо созед.
  • Ва мо мехоҳем автоматикунонии вазифаҳои мураккаб. Як чизи асосӣ аз нав тақсим кардан аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Биёед якчанд натиҷаҳои миёнаро гирем.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Дар натиҷа мо чӣ ба даст меорем? Ва оё ин кор меарзад ё не? Оё ҳатто кӯшиш кардан лозим аст, ки пойгоҳи додаҳоро ба Kubernetes кашед ва дар маҷмӯъ оператор ва алалхусус оператори Alitnity -ро истифода баред?

Дар натиҷа мо ба даст меорем:

  • Ба таври назаррас содда ва автоматикунонии конфигуратсия, ҷойгиркунӣ ва нигоҳдорӣ.
  • Мониторинги фаврӣ дарунсохт.
  • Ва қолибҳои кодификатсияшуда барои ҳолатҳои мураккаб. Амал ба монанди илова кардани репликаро дастӣ иҷро кардан лозим нест. Оператор ин корро мекунад.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Танҳо як саволи охирин боқӣ мондааст. Мо аллакай дар Кубернетес пойгоҳи додаҳо дорем, виртуализатсия. Дар бораи иҷрои чунин қарор чӣ гуфтан мумкин аст, хусусан азбаски ClickHouse барои иҷроиш оптимизатсия шудааст?

Ҷавоб ин аст, ки ҳама чиз хуб аст! Ман ба тафсилот намеравам, ин мавзӯи гузориши алоҳида аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Аммо чунин як лоиҳа ба монанди TSBS вуҷуд дорад. Вазифаи асосии он чист? Ин санҷиши иҷрои пойгоҳи додаҳост. Ин кӯшиши муқоиса кардани гарм бо гарм, нарм бо нарм аст.

Ӯ чӣ гуна кор мекунад? Як маҷмӯи маълумот тавлид карда мешавад. Сипас, ин маҷмӯи маълумот дар пойгоҳи додаҳои гуногун бо истифода аз як маҷмӯи санҷишҳо иҷро карда мешавад. Ва ҳар як базаи маълумот як масъаларо бо роҳи худ ҳал мекунад. Ва он гоҳ шумо метавонед натиҷаҳоро муқоиса кунед.

Он аллакай миқдори зиёди пойгоҳи додаҳоро дастгирӣ мекунад. Ман се чизи асосиро муайян кардам. Ин:

  • TimescaleDB.
  • InfluxDB.
  • ClickHouse.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Муқоиса бо ҳалли дигари шабеҳ низ анҷом дода шуд. Муқоиса бо RedShift. Дар Amazon муқоиса карда шуд. ClickHouse низ дар ин масъала аз ҳама пештар аст.

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Аз гуфтаҳои ман чӣ гуна хулоса баровардан мумкин аст?

  • DB дар Кубернетес имконпазир аст. Эҳтимол ҳама чиз имконпазир аст, аммо дар маҷмӯъ он имконпазир аст. ClickHouse дар Kubernetes бешубҳа бо ёрии оператори мо имконпазир аст.
  • Оператор ба автоматикунонии равандҳо кӯмак мекунад ва воқеан ҳаётро осон мекунад.
  • Фаъолият муқаррарӣ аст.
  • Ва ба мо чунин менамояд, ки аз ин истифода бурдан мумкин аст ва бояд истифода шавад.

Манбаи кушода - ба мо ҳамроҳ шавед!

Тавре ки ман аллакай гуфтам, оператор як маҳсулоти комилан кушода аст, аз ин рӯ хеле хуб мебуд, агар шумораи ҳадди аксар одамон онро истифода баранд. Бо мо ҳамроҳ шудан! Мо ҳама шуморо интизорем!

Ташаккур ба шумо!

Саволҳои шумо

Оператор дар Kubernetes барои идоракунии кластерҳои пойгоҳи додаҳо. Владислав Клименко (Altinity, 2019)

Ташаккур барои гузориш! Номи ман Антон аст. Ман аз SEMrush ҳастам. Ман ҳайронам, ки дар қайдгири чӣ аст? Мо дар бораи мониторинг мешунавем, аммо дар бораи сабткунӣ чизе намегӯем, агар дар бораи тамоми кластер сухан гӯем. Масалан, мо кластерро оид ба сахтафзор ба вуҷуд овардем. Ва мо ба қайдгирии мутамарказ истифода мебарем ва онҳоро дар як теппаи умумӣ бо истифода аз воситаҳои стандартӣ ҷамъ меорем. Ва аз он ҷо мо маълумотеро мегирем, ки ба мо таваҷҷӯҳ доранд.

Саволи хуб, яъне ворид шудан ба рӯйхати вазифаҳо. Оператори мо ҳоло инро автоматӣ намекунад. Он ҳоло ҳам инкишоф меёбад, лоиҳа ҳанӯз хеле ҷавон аст. Мо зарурати буридани дарахтонро мефаҳмем. Ин ҳам як мавзӯи хеле муҳим аст. Ва ин шояд аз мониторинг камтар муҳим набошад. Аммо аввал дар рӯйхат барои татбиқ мониторинг буд. Дар он ҷо ба қайд гирифта мешавад. Табиист, ки мо кӯшиш мекунем, ки тамоми ҷанбаҳои ҳаёти кластерро автоматӣ кунем. Аз ин ру, чавоб ин аст, ки дар айни замон оператор, мутаассифона, ин корро намедонад, вале дар накшахо хает, мо инро мекунем. Агар шумо хоҳед, ки ҳамроҳ шавед, лутфан дархостро кашед.

Салом! Ташаккур барои гузориш! Ман як саволи стандартии марбут ба Ҳаҷмҳои доимӣ дорам. Вақте ки мо конфигуратсияро бо ин оператор эҷод мекунем, оператор чӣ гуна муайян мекунад, ки дар кадом гиреҳ мо диск ё ҷузвдони мушаххасро замима кардаем? Мо бояд аввал ба ӯ фаҳмонем, ки лутфан ClickHouse-ро дар ин гиреҳҳое ҷойгир кунед, ки диск доранд?

То ҷое ки ман мефаҳмам, ин савол идомаи нигаҳдории маҳаллӣ аст, махсусан қисми hostPath он. Ин ба тамоми система фаҳмонидани он аст, ки подкастро дар фалон гиреҳ оғоз кардан лозим аст, ки мо ба он диски ҷисмонӣ пайваст дорем, ки дар фалон роҳ васл карда шудааст. Ин як бахшест, ки ман ба он хеле рӯякӣ дахл кардам, зеро ҷавоб дар он ҷо хеле калон аст.

Ба таври мухтасар чунин ба назар мерасад. Табиист, ки мо бояд ин хачмхоро таъмин кунем. Дар айни замон, дар нигаҳдории маҳаллӣ ягон таъминоти динамикӣ вуҷуд надорад, аз ин рӯ DevOps бояд худи дискҳоро, ин ҳаҷмҳоро бурида. Ва онҳо бояд муқаррароти Кубернетесро шарҳ диҳанд, ки шумо дорои ҳаҷмҳои доимии фалон синф, ки дар фалон гиреҳҳо ҷойгиранд, хоҳед дошт. Он гоҳ ба шумо лозим меояд, ки ба Кубернетес фаҳмонед, ки подкҳо, ки чунин ва чунин синфи нигаҳдории маҳаллиро талаб мекунанд, бояд танҳо ба фалон гиреҳҳо бо истифода аз нишонаҳо равона карда шаванд. Барои ин мақсадҳо, оператор дорои қобилияти таъин кардани як навъ нишона ва як намунаи ҳост мебошад. Ва маълум мешавад, ки pods аз ҷониби Kubernetes барои кор кардан танҳо дар гиреҳҳое, ки ба талабот, тамғакоғазҳо мувофиқат мекунанд, равона карда мешаванд. Администраторҳо тамғакоғазҳо ва дискҳоро дастӣ таъин мекунанд. Ва он гоҳ он миқёси калон дорад.

Ва ин варианти сеюм, маҳаллӣ аст, ки ин корро каме осонтар мекунад. Тавре ки ман аллакай таъкид кардам, ин кори душвори танзим аст, ки дар ниҳоят барои ба даст овардани ҳадди аксар кӯмак мекунад.

Саволи дуюме дорам, ки вобаста ба ин. Кубернетес тавре тарҳрезӣ шудааст, ки барои мо муҳим нест, ки гиреҳро аз даст медиҳем ё не. Дар ин ҳолат мо бояд чӣ кор кунем, агар гиреҳеро, ки пораи мо овезон аст, гум карда бошем?

Бале, Кубернетес дар аввал чунин буд, ки муносибати мо бо говҳои мо мисли гов аст, аммо дар ин ҷо бо мо ҳар як диск ба ҳайвони хонагӣ табдил меёбад. Чунин мушкилот вуҷуд дорад, ки мо онҳоро танҳо партофта наметавонем. Ва рушди Кубернетес ба самте меравад, ки ба он комилан фалсафӣ муносибат кардан ғайриимкон аст, гӯё он як манбаи комилан партофташуда бошад.

Акнун барои як саволи амалӣ. Чӣ бояд кард, агар шумо гиреҳеро, ки дар он диск буд, гум кунед? Дар ин чо масъала ба дарачаи баланд хал карда мешавад. Дар мавриди ClickHouse, мо нусхаҳое дорем, ки дар сатҳи баландтар кор мекунанд, яъне. дар сатҳи ClickHouse.

Муносибати натиҷа чист? DevOps барои гум накардани маълумот масъул аст. Вай бояд репликатсияро дуруст танзим кунад ва бояд боварӣ ҳосил кунад, ки репликатсия иҷро мешавад. Реплика дар сатҳи ClickHouse бояд маълумоти такрорӣ дошта бошад. Ин вазифа нест, ки оператор хал мекунад. Ва на мушкилоте, ки худи Кубернетес ҳал мекунад. Ин дар сатҳи ClickHouse аст.

Чӣ бояд кард, агар гиреҳи оҳании шумо афтад? Ва маълум мешавад, ки ба шумо лозим меояд, ки дуюмро насб кунед, дискро дар он дуруст таъмин кунед ва тамғакоғазҳоро истифода баред. Ва пас аз он, он ба талаботе ҷавобгӯ хоҳад буд, ки Kubernetes метавонад як паҳлӯи намунаро дар он оғоз кунад. Кубернетес онро оғоз мекунад. Миқдори қуттиҳои шумо барои қонеъ кардани шумораи муайяншуда кофӣ нест. Он аз даврае, ки ман нишон додам, мегузарад. Ва дар сатҳи баландтарин, ClickHouse мефаҳмад, ки мо нусхабардорӣ ворид кардаем, он ҳоло холӣ аст ва мо бояд интиқоли маълумотро ба он оғоз кунем. Онхое. Ин процесс хануз нагз автоматй кунонда нашудааст.

Ташаккур барои гузориш! Вақте ки ҳама гуна чизҳои ногувор рух медиҳанд, оператор ба кор медарояд ва аз нав оғоз мешавад ва дар он лаҳза воқеаҳо меоянд, оё шумо ин корро бо ягон роҳ ҳал мекунед?

Чӣ мешавад, агар оператор суқут кунад ва аз нав оғоз кунад, дуруст?

Бале. Ва дар ҳамин лаҳза воқеаҳо фаро расиданд.

Вазифаи чӣ кор кардан дар ин ҳолат қисман байни оператор ва Кубернетес тақсим карда мешавад. Кубернетес қобилияти такрор кардани ҳодисаи рӯйдодаро дорад. Вай такрор мекунад. Ва вазифаи оператор ин аст, ки боварӣ ҳосил кунед, ки вақте ки сабти рӯйдодҳо дар ӯ такрор карда мешавад, ин рӯйдодҳо беэътиноӣ мекунанд. Ва то ки такрори як ходиса системаи моро вайрон накунад. Ва оператори мо аз ухдаи ин вазифа мебарояд.

Салом! Ташаккур барои гузориш! Дмитрий Завьялов, ширкат Смедова. Оё нақшаи илова кардани қобилияти конфигуратсия бо haproxy ба оператор вуҷуд дорад? Ман ба ғайр аз мувозинати стандартӣ ба ягон мувозинати дигар таваҷҷӯҳ дорам, то он оқил бошад ва дарк кунад, ки ClickHouse воқеан дар он ҷост.

Оё шумо дар бораи Ingress гап мезанед?

Бале, Ingress-ро бо haproxy иваз кунед. Дар haproxy шумо метавонед топологияи кластерро, ки дар он репликаҳо мавҷуд аст, муайян кунед.

Мо хануз дар ин бора фикр накардаем. Агар он ба шумо лозим бошад ва фаҳмонед, ки чаро он зарур аст, он гоҳ татбиқи он имконпазир мегардад, хусусан агар шумо иштирок кардан хоҳед. Мо бо хурсандӣ вариантро баррасӣ хоҳем кард. Ҷавоби кӯтоҳ ин аст, ки не, мо ҳоло чунин функсия надорем. Ташаккур барои маслиҳат, мо ин масъаларо баррасӣ хоҳем кард. Ва агар шумо инчунин мисоли истифода ва чаро он дар амал зарур аст, шарҳ диҳед, масалан, дар GitHub масъала эҷод кунед, пас ин олиҷаноб хоҳад буд.

Аллакай дорад.

Хуб. Мо ба ҳама гуна пешниҳодҳо бозем. Ва haproxy ба рӯйхати todo илова карда мешавад. Рӯйхати тодо афзоиш меёбад, аммо ҳоло кам намешавад. Аммо ин хуб аст, ин маънои онро дорад, ки маҳсулот талабот дорад.

Манбаъ: will.com

Илова Эзоҳ