K8S Сафари бисёрсоҳавӣ

Эй Ҳабр!

Мо намояндагии дастаи платформаи Exness. Қаблан ҳамкасбони мо дар бораи он мақола навишта буданд Тасвирҳои истеҳсолӣ барои k8s. Имрӯз мо мехоҳем таҷрибаи худро дар бораи хидматрасонии муҳоҷират ба Kubernetes мубодила кунем.

K8S Сафари бисёрсоҳавӣ

Барои оғоз, мо ба шумо якчанд рақамҳоро пешниҳод менамоем, то фаҳмиши беҳтари он чизе, ки муҳокима карда мешавад:

  • Шӯъбаи рушди мо аз 100+ нафар, аз ҷумла зиёда аз 10 дастаҳои гуногун бо равандҳои худкифоии QA, DevOps ва Scrum иборат аст. Стеки рушд - Python, PHP, C++, Java ва Golang. 
  • Андозаи муҳити озмоишӣ ва истеҳсолӣ тақрибан 2000 контейнерро ташкил медиҳад. Онҳо Rancher v1.6-ро дар виртуализатсияи худ ва зери VMware иҷро мекунанд. 

Муваффақият

Тавре ки мегӯянд, ҳеҷ чиз абадӣ намемонад ва Ранчер муддати тӯлонӣ ба итмом расидани дастгирии версияи 1.6 эълон кард. Бале, дар давоми зиёда аз се сол мо тарзи тайёр кардани он ва халли проблемахои ба миён омадаро ёд гирифтем, вале бештар ва бештар ба мушкилоте дучор мешавем, ки хеч гох ислох намешаванд. Rancher 1.6 инчунин дорои системаи устухоншудаи додани ҳуқуқҳо мебошад, ки дар он шумо метавонед қариб ҳама чизро иҷро кунед ё ҳеҷ чиз.

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

Мо мехостем, ки стандартҳои IaC-ро риоя кунем ва дар ҳолати зарурӣ иқтидорро дар ҳама гуна макони ҷуғрофӣ ва бидуни қулфи фурӯшанда ба даст орем ва инчунин тавонем онро зуд тарк кунем.

қадамҳои аввалин

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

Баъдан масъалаи интихоби асбоб барои ташкили кластерҳо ба миён омад. Мо ҳалли маъмултаринро муқоиса кардем: kops, kubespray, kubeadm.

Кубеадм барои огоз кардан ба назари мо роди хеле мурак-каб, балки як навъ ихтироъкори «велосипед» менамуд ва копхо чандирии кофй надоштанд.

Ва ғолиб:

K8S Сафари бисёрсоҳавӣ

Мо озмоишро бо виртуализатсия ва AWS-и худ оғоз кардем ва кӯшиш кардем, ки чизеро тақрибан ба намунаи қаблии идоракунии захираҳои мо, ки дар он ҳама як "кластер" -ро тақсим карданд, дубора эҷод кунем. Ва ҳоло мо кластери аввалини худро аз 10 мошини хурди виртуалӣ дорем, ки якчандтои онҳо дар AWS ҷойгиранд. Мо кӯшиши муҳоҷирати дастаҳоро ба он ҷо оғоз кардем, ҳама чиз "хуб" буд ва ҳикояро метавон анҷом дод, аммо...

Мушкилоти аввал

Ansible он чизест, ки kubespray бар он сохта шудааст, он асбобе нест, ки ба шумо имкон медиҳад IaC-ро риоя кунед: ҳангоми ба кор андохтан/баровардани гиреҳҳо, чизе пайваста хато мекард ва як навъ дахолат лозим мешуд ва ҳангоми истифодаи OS-ҳои гуногун, китоби бозӣ ба таври дигар рафтор мекард. . Бо афзоиши шумораи дастаҳо ва гиреҳҳо дар кластер, мо пай бурдем, ки барои анҷом додани китоби бозӣ тӯлонитар ва дарозтар вақт мегирад ва дар натиҷа рекорди мо 3,5 соатро ташкил дод, дар бораи шумо чӣ гуфтан мумкин аст? 🙂

Ва чунин ба назар мерасад, ки kubespray танҳо Ansible аст ва ҳама чиз дар назари аввал равшан аст, аммо:

K8S Сафари бисёрсоҳавӣ

Дар оғози сафар, вазифа ба кор андохтани иқтидорҳо танҳо дар AWS ва виртуализатсия буд, аммо баъд, чунон ки аксар вақт рӯй медиҳад, талабот тағир ёфт.
 
K8S Сафари бисёрсоҳавӣK8S Сафари бисёрсоҳавӣ

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

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

Ҳикояи алоҳида додани ҳуқуқ ба кормандон буд: ҳар як даста мехост, ки "дар сари" кластер бошад ва онро комилан идора кунад, ки ин метавонад ба харобшавии пурра оварда расонад, зеро дастаҳо асосан аз ҳамдигар мустақиланд.

Чӣ тавр бошад?

Гапхои боло ва хохиши мустакилияти командахоро ба назар гирифта, мо ба чунин хулоса омадем: як даста — як кластер. 

Ҳамин тавр, мо дуюмро гирифтем:

K8S Сафари бисёрсоҳавӣ

Ва он гоҳ кластери сеюм: 

K8S Сафари бисёрсоҳавӣ

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

K8S Сафари бисёрсоҳавӣ

Кубернетҳои пурра хоҳанд омад! Ин як навъ MultiKubernetes аст, маълум мешавад. 

Ҳамзамон, ба ҳамаи мо лозим меояд, ки бо ягон роҳ ҳамаи ин кластерҳоро нигоҳ дорем, дастрасиро ба онҳо ба осонӣ идора карда тавонем, инчунин бе дахолати дастӣ нав эҷод кунем ва кӯҳнаро аз кор барем.

Аз оғози сафари мо дар ҷаҳони Кубернетес чанд вақт гузашт ва мо тасмим гирифтем, ки роҳҳои мавҷударо аз нав дида бароем. Маълум шуд, ки он аллакай дар бозор мавҷуд аст - Rancher 2.2.

K8S Сафари бисёрсоҳавӣ

Дар марҳилаи аввали тадқиқоти мо, Rancher Labs аллакай нашри аввалини версияи 2-ро бароварда буд, аммо ҳарчанд онро метавон бо ба кор андохтани контейнер бидуни вобастагии беруна бо якчанд параметр ё бо истифода аз диаграммаи расмии HELM хеле зуд баланд кард, аммо он хом ба назар мерасид. ба мо, ва мо намедонистем, ки оё мо ба ин қарор такя карда метавонем, ки оё он таҳия карда мешавад ё зуд тарк карда мешавад. Парадигмаи кластер = кликҳо дар худи UI низ ба мо мувофиқ набуд ва мо намехостем, ки ба RKE пайваст шавем, зеро он як воситаи хеле маҳдуд аст. 

Version Rancher 2.2 аллакай намуди корношоям дошт ва дар баробари хусусиятҳои қаблӣ як қатор хусусиятҳои ҷолибро аз қуттӣ дошт, ба монанди ҳамгироӣ бо бисёр провайдерҳои беруна, як нуқтаи ягонаи тақсимоти ҳуқуқҳо ва файлҳои kubeconfig, кушодани kubectl тасвирро бо ҳуқуқҳои худ дар UI, фазоҳои номҳои лона ба лоиҳаҳо. 

Инчунин дар атрофи Rancher 2 як ҷомеае мавҷуд буд ва барои идоракунии он як провайдер бо номи HashiCorp Terraform таъсис дода шуд, ки ба мо кӯмак кард, ки ҳама чизро якҷоя кунем.

Чӣ шуд

Дар натиҷа, мо бо як кластери хурде, ки бо Rancher кор мекунад, ба даст омадем, ки барои ҳамаи кластерҳои дигар дастрасанд ва инчунин кластерҳои зиёде, ки ба он пайвастанд, дастрасӣ ба ҳар кадоме аз онҳо метавонад танҳо ҳамчун илова кардани корбар ба директорияи ldap, новобаста аз дар куҷо ҷойгир аст ва аз кадом провайдер истифода мебарад.

Бо истифода аз gitlab-ci ва Terraform, системае сохта шудааст, ки ба шумо имкон медиҳад кластери ҳама гуна конфигуратсияро дар провайдерҳои абрӣ ё инфрасохтори худ созед ва онҳоро ба Rancher пайваст кунед. Ҳамаи ин бо услуби IaC анҷом дода мешавад, ки дар он ҳар як кластер аз ҷониби анбор тавсиф карда мешавад ва ҳолати он нусхабардорӣ карда мешавад. Дар айни замон, аксари модулҳо аз анборҳои беруна пайваст карда мешаванд, то ин ки танҳо интиқол додани тағирёбандаҳо ё тавсифи конфигуратсияи фармоишии шумо барои мисолҳо боқӣ мемонад, ки ба кам кардани фоизи такрори код мусоидат мекунад.

K8S Сафари бисёрсоҳавӣ

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

Маколаро инженерони платформа А Антипов, А Гануш. 

Манбаъ: will.com

Илова Эзоҳ