Kubernetes: манбаи кушода ва ба фурӯшанда хос

Салом, номи ман Дмитрий Краснов. Зиёда аз панҷ сол ман кластерҳои Kubernetes-ро идора мекунам ва меъмории мураккаби хидматрасонии хурдро бунёд мекунам. Дар аввали соли ҷорӣ мо хидмати идоракунии кластерҳои Kubernetes-ро дар асоси Containerum оғоз кардем. Бо истифода аз ин фурсат, ман ба шумо мегӯям, ки Kubernetes чист ва чӣ гуна ҳамгироӣ бо фурӯшанда аз манбаи кушода фарқ мекунад.

Барои оғоз, чӣ аст Кубернитель. Ин система барои идоракунии контейнерҳо дар шумораи зиёди ҳостҳо мебошад. Аз забони юнонӣ, он ҳамчун "пилот" ё "рульбон" тарҷума шудааст. Аввалан аз ҷониби Google таҳия шуда, сипас ҳамчун саҳми технологӣ ба Бунёди Cloud Native Computing, як созмони байналмилалии ғайритиҷоратӣ, ки таҳиягарон, корбарони ниҳоӣ ва провайдерҳои технологияи контейнериро муттаҳид мекунад, тақдим карда шуд.

Kubernetes: манбаи кушода ва ба фурӯшанда хос

Шумораи зиёди контейнерҳоро идора кунед

Акнун биёед бифаҳмем, ки инҳо чӣ гуна контейнерҳо мебошанд. Ин барнома бо тамоми муҳити он аст - асосан китобхонаҳое, ки барнома аз онҳо вобаста аст. Ҳамаи ин дар бойгонӣ бастабандӣ карда шудааст ва дар шакли тасвир пешниҳод карда мешавад, ки онро новобаста аз системаи оператсионӣ иҷро кардан мумкин аст, санҷида мешавад ва ғайра. Аммо мушкилот вуҷуд дорад - идоракунии контейнерҳо дар шумораи зиёди ҳостҳо хеле душвор аст. Барои ҳамин Kubernetes офарида шудааст.

Тасвири контейнер як барнома ва вобастагии онро ифода мекунад. Барнома, вобастагии он ва тасвири системаи файлии ОС дар қисмҳои гуногуни тасвир ҷойгир шудаанд, ки ба истилоҳ қабатҳо мебошанд. Қабатҳоро барои контейнерҳои гуногун дубора истифода бурдан мумкин аст. Масалан, ҳама замимаҳо дар ширкат метавонанд қабати асосии Ubuntu-ро истифода баранд. Ҳангоми кор кардани контейнерҳо, барои нигоҳ доштани нусхаҳои сершумори як қабати асосӣ дар ҳост лозим нест. Ин ба шумо имкон медиҳад, ки нигоҳдорӣ ва интиқоли тасвирҳоро оптимизатсия кунед.

Вақте ки мо мехоҳем, ки барномаро аз контейнер иҷро кунем, қабатҳои зарурӣ дар болои ҳамдигар ҷойгир карда мешаванд ва системаи файлии қабатӣ ташкил карда мешавад. Дар боло қабати сабт ҷойгир карда мешавад, ки ҳангоми қатъ шудани контейнер хориҷ карда мешавад. Ин кафолат медиҳад, ки вақте ки контейнер кор мекунад, барнома ҳамеша муҳити якхела дорад, ки тағир дода намешавад. Ин такроршавандагии муҳити атрофро дар OS-ҳои гуногуни мизбон кафолат медиҳад. Новобаста аз он ки Ubuntu ё CentOS бошад, муҳити атроф ҳамеша якхела хоҳад буд. Илова бар ин, контейнер аз ҳост бо истифода аз механизмҳое, ки дар ядрои Linux сохта шудаанд, ҷудо карда мешавад. Барномаҳо дар контейнер файлҳо, равандҳои ҳост ва контейнерҳои ҳамсояро намебинанд. Ин ҷудокунии барномаҳо аз ОС мизбон як қабати иловагии амниятро таъмин мекунад.

Барои идоракунии контейнерҳо дар ҳост асбобҳои зиёде мавҷуданд. Маъмултарини онҳо Docker мебошад. Он ба шумо имкон медиҳад, ки давраи пурраи ҳаёти контейнерҳоро таъмин кунед. Аммо, он танҳо дар як мизбон кор мекунад. Агар ба шумо лозим ояд, ки контейнерҳоро дар ҳостҳои сершумор идора кунед, Docker метавонад ҳаёти муҳандисонро ҷаҳаннам кунад. Барои ҳамин Kubernetes офарида шудааст.

Талабот ба Kubernetes маҳз ба қобилияти идоракунии гурӯҳҳои контейнерҳо дар ҳостҳои сершумор ҳамчун як намуди воҳиди ягона вобаста аст. Маъруфияти система имкон медиҳад, ки DevOps ё Development Operations сохта шавад, ки дар он Kubernetes барои иҷро кардани равандҳои ин DevOps истифода мешавад.

Kubernetes: манбаи кушода ва ба фурӯшанда хос

Тасвири 1. Намоиши схематикии чӣ гуна кор кардани Кубернетес

Автоматикунонии пурра

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

Якҷоя бо Kubernetes, DevOps ба шумо имкон медиҳад, ки ин равандро автоматӣ кунед, то он амалан бидуни иштироки худи таҳиягарон сурат гирад. Аз ин рӯ, сохтмон ба таври назаррас тезтар аст, зеро таҳиякунанда набояд ин корро дар компютери худ иҷро кунад - вай танҳо як пораи кодро менависад, кодро ба анбор тела медиҳад ва пас аз он қубур оғоз мешавад, ки метавонад равандро дар бар гирад. сохтмон, озмоиш ва ба кор андохтан. Ва ин бо ҳар як ӯҳдадорӣ рӯй медиҳад, бинобар ин санҷиш пайваста сурат мегирад.

Дар айни замон, истифодаи контейнер ба шумо имкон медиҳад, ки боварӣ ҳосил кунед, ки тамоми муҳити ин барнома маҳз ҳамон шакле, ки дар он санҷида шудааст, ба истеҳсолот бароварда мешавад. Яъне, ҳеҷ гуна мушкилоте ба мисли "баъзе версияҳо дар озмоиш буданд, дигарон дар истеҳсолот, аммо вақте ки мо онҳоро насб кардем, ҳама чиз афтод." Ва аз имрӯз мо тамоюли меъмории микросервисро дорем, вақте ки ба ҷои як замимаи азим садҳо барномаҳои хурд мавҷуданд, барои ба таври дастӣ идора кардани онҳо, як ҳайати бузурги кормандон лозим мешавад. Барои ҳамин мо Kubernetes-ро истифода мебарем.

Тарафдор, тарафдор, тарафдор


Агар мо дар бораи бартариҳои Kubernetes ҳамчун платформа сухан ронем, пас он аз нуқтаи назари идоракунии меъмории микросервис бартариҳои назаррас дорад.

  • Идоракунии репликаҳои сершумор. Муҳимтар аз ҳама, идоракунии контейнерҳо дар ҳостҳои сершумор аст. Муҳимтар аз ҳама, репликаҳои сершумори барномаҳоро дар контейнерҳо ҳамчун як воҳиди ягона идора кунед. Ба туфайли ин инженерон дар бораи хар як контейнери алохида гамхорй намекунанд. Агар яке аз контейнерҳо ба садама дучор шавад, Кубернетес инро дида, аз нав оғоз мекунад.
  • Шабакаи кластерӣ. Kubernetes инчунин дорои шабакаи ба истилоҳ кластерӣ бо фазои суроғаи худ мебошад. Ба шарофати ин хар як подразделения адреси худро дорад. Субпод ҳамчун воҳиди ҳадди ақали сохтории кластер фаҳмида мешавад, ки дар он контейнерҳо мустақиман ба кор андохта мешаванд. Илова бар ин, Kubernetes дорои функсияест, ки тавозуни сарборӣ ва Discovery-ро муттаҳид мекунад. Ин ба шумо имкон медиҳад, ки аз идоракунии дастӣ суроғаи IP халос шавед ва ин вазифаро ба Kubernetes вогузор кунед. Ва санҷишҳои автоматии саломатӣ дар ошкор кардани мушкилот ва равона кардани трафик ба қуттиҳои корӣ кӯмак мекунанд.
  • Идоракунии конфигуратсия. Ҳангоми идоракунии шумораи зиёди барномаҳо, идоракунии конфигуратсияи барномаҳо душвор мегардад. Бо ин мақсад, Kubernetes дорои захираҳои махсуси ConfigMap мебошад. Онҳо ба шумо имкон медиҳанд, ки конфигуратсияҳоро ба таври мутамарказ нигоҳ доред ва ҳангоми иҷро кардани барномаҳо онҳоро ба қуттиҳо фош кунед. Ин механизм ба мо имкон медиҳад, ки мувофиқати конфигуратсияро дар ҳадди аққал даҳ ё сад нусхаи барнома кафолат диҳем.
  • Ҳаҷмҳои доимӣ. Контейнерҳо табиатан тағирнопазиранд ва вақте ки контейнер қатъ карда мешавад, ҳама маълумоти ба системаи файлӣ навишташуда нобуд карда мешаванд. Аммо баъзе барномаҳо маълумотро бевосита дар диск нигоҳ медоранд. Барои ҳалли ин мушкилот, Kubernetes дорои функсияи идоракунии нигаҳдории диск - Ҳаҷмҳои доимӣ мебошад. Ин механизм нигаҳдории берунаро барои додаҳо истифода мебарад ва метавонад нигаҳдории доимӣ, блок ё файлро ба контейнерҳо интиқол диҳад. Ин ҳалли шумо имкон медиҳад, ки маълумотро аз коргарон ҷудо нигоҳ доред, ки дар сурати вайрон шудани ҳамон коргарон онҳоро сарфа мекунад.
  • Тавозуни сарборӣ. Гарчанде ки дар Kubernetes мо объектҳои абстрактӣ ба монанди Deployment, StatefulSet ва ғайраро идора мекунем, дар ниҳоят контейнерҳо дар мошинҳои муқаррарии виртуалӣ ё серверҳои сахтафзор кор мекунанд. Онҳо комил нестанд ва метавонанд дар ҳар лаҳза афтод. Кубернетес инро дида, трафики дохилиро ба дигар нусхаҳо равона мекунад. Аммо бо трафике, ки аз берун меояд, чӣ бояд кард? Агар шумо танҳо трафикро ба яке аз коргарон равона кунед, агар он ба садама дучор шавад, хидмат дастнорас мешавад. Барои ҳалли ин мушкилот, Kubernetes дорои хидматҳои монанди Load Balancer мебошад. Онҳо барои ба таври худкор танзим кардани мувозинати абрии беруна барои ҳамаи коргарони кластер тарҳрезӣ шудаанд. Ин тавозуни беруна трафики берунаро ба коргарон равона мекунад ва ҳолати онҳоро худаш назорат мекунад. Агар як ё якчанд коргарон дастнорас шаванд, трафик ба дигарон равона карда мешавад. Ин ба шумо имкон медиҳад, ки бо истифода аз Kubernetes хидматҳои дастрасро эҷод кунед.

Kubernetes ҳангоми иҷро кардани меъмории микросервис беҳтарин кор мекунад. Ин системаро ба меъмории классикӣ татбиқ кардан мумкин аст, аммо ин бефоида аст. Агар барнома дар якчанд реплика кор карда натавонад, пас он чӣ фарқияте дорад - дар Kubernetes ё не?

Манбаи кушода Kubernetes


Манбаи кушода Kubernetes як чизи бузург аст: ман онро насб кардам ва он кор мекунад. Шумо метавонед онро дар серверҳои сахтафзори худ, дар инфрасохтори худ ҷойгир кунед, устоҳо ва коргаронеро насб кунед, ки ҳама барномаҳо дар онҳо кор мекунанд. Ва муҳимтар аз ҳама, ин ҳама ройгон аст. Бо вуҷуди ин, нозукиҳо ҳастанд.

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

Kubernetes: манбаи кушода ва ба фурӯшанда хос

Расми 2. меъмории k8s

Кубернетес аз фурӯшанда


Интегратсия бо провайдери абрӣ ду имконотро фароҳам меорад:

  • Аввалан, шахс метавонад танҳо тугмаи "сохтани кластер" -ро пахш кунад ва кластери аллакай танзимшуда ва барои истифода омодашударо гирад.
  • Дуюм, худи фурӯшанда кластерро насб мекунад ва ҳамгироиро бо абр муқаррар мекунад.

Чӣ тавр дар ин ҷо рӯй медиҳад. Муҳандис, ки кластерро оғоз мекунад, муайян мекунад, ки ба ӯ чанд коргар лозим аст ва бо кадом параметрҳо (масалан, 5 коргар, ки ҳар кадоми онҳо 10 CPU, 16 ГБ хотираи оперативӣ ва масалан, 100 ГБ диск доранд). Пас аз он, он ба кластери аллакай ташаккулёфта дастрасӣ пайдо мекунад. Дар ин ҳолат, коргароне, ки сарборӣ ба он сар дода мешавад, пурра ба муштарӣ интиқол дода мешавад, аммо тамоми ҳавопаймои идоракунӣ дар масъулияти фурӯшанда боқӣ мемонад (агар хидмат мувофиқи модели хидматрасонии идорашаванда пешниҳод карда шавад).

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

Kubernetes: манбаи кушода ва ба фурӯшанда хос

Тасвири 3. Намунаи кластери Kubernetes аз провайдери абр

Чӣ бояд интихоб кард: манбаи кушода ё фурӯшанда


Пас, оё Kubernetes манбаи кушода ё фурӯшанда мушаххас аст? Агар мо Kubernetes-и кушодаро гирем, пас корбар он чизеро, ки мехоҳад бо он мекунад. Аммо имкони аз пои худ тирпарронӣ кардан вуҷуд дорад. Бо фурӯшанда ин мушкилтар аст, зеро ҳама чиз барои ширкат фикр карда ва танзим шудааст. Камбудии калонтарини Kubernetes-и кушода ин талабот ба мутахассисон мебошад. Бо варианти фурӯшанда ширкат аз ин дарди сар халос мешавад, аммо бояд тасмим бигирад, ки ба мутахассисон ё фурӯшанда пардохт кунад.

Kubernetes: манбаи кушода ва ба фурӯшанда хос

Kubernetes: манбаи кушода ва ба фурӯшанда хос

Хуб, фоидаҳо маълуманд, манфиҳо низ маълуманд. Як чиз доимист: Кубернетес тавассути автоматикунонии идоракунии бисёр контейнерҳо бисёр мушкилотро ҳал мекунад. Ва кадомашро интихоб кардан мумкин аст, манбаи кушода ё фурӯшанда - ҳар кас худаш тасмим мегирад.

Мақоларо Дмитрий Краснов, меъмори пешбари хидмати Containerum провайдери #CloudMTS омода кардааст.

Манбаъ: will.com

Илова Эзоҳ