DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Kubernetes як воситаи олӣ барои идора кардани контейнерҳои Docker дар муҳити истеҳсолии кластерӣ мебошад. Аммо, мушкилоте ҳастанд, ки Кубернетес онҳоро ҳал карда наметавонад. Барои ҷойгиркунии зуд-зуд истеҳсолот, ба мо як ҷойгиркунии пурраи автоматии кабуд/сабз лозим аст, то аз вақти бекорӣ дар ин раванд пешгирӣ карда шавад, ки он инчунин бояд дархостҳои берунии HTTP-ро иҷро кунад ва боркунии SSL-ро иҷро кунад. Ин ҳамгироиро бо тавозуни сарборӣ ба монанди ha-proxy талаб мекунад. Мушкилоти дигар ин миқёси нимаавтоматии худи кластери Кубернетес ҳангоми кор дар муҳити абрӣ мебошад, масалан қисман миқёси кластер шабона.

Гарчанде ки Kubernetes ин хусусиятҳоро аз қуттӣ надорад, он API-ро пешниҳод мекунад, ки шумо метавонед барои ҳалли мушкилоти шабеҳ истифода баред. Асбобҳо барои ҷойгиркунии автоматии Blue/Green ва миқёси кластери Kubernetes ҳамчун як қисми лоиҳаи Cloud RTI, ки дар асоси сарчашмаи кушод сохта шудаанд, таҳия карда шудаанд.

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

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 1

Ҳамин тавр, вақте ки шумо ба замимаҳои худ аз ҷаҳони беруна дастрасӣ пайдо мекунед, шумо метавонед ба танзими пурраи автоматизатсия шурӯъ кунед, яъне онро ба марҳилае расонед, ки шумо метавонед як ӯҳдадории git-ро иҷро кунед ва боварӣ ҳосил кунед, ки ин ӯҳдадории git дар истеҳсолот анҷом меёбад. Табиист, ки ҳангоми татбиқи ин қадамҳо, ҳангоми татбиқи ҷойгиркунӣ, мо намехоҳем, ки ба бекористӣ дучор шавем. Ҳамин тавр, ҳама гуна автоматизатсия дар Kubernetes аз API оғоз мешавад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Kubernetes асбобе нест, ки аз қуттӣ самаранок истифода шавад. Албатта, шумо метавонед ин корро кунед, kubectl ва ғайраро истифода баред, аммо ба ҳар ҳол API чизи ҷолибтарин ва муфид дар ин платформа аст. Бо истифода аз API ҳамчун маҷмӯи функсияҳо, шумо метавонед қариб ҳама чизеро, ки мехоҳед дар Kubernetes иҷро кунед, дастрас кунед. Худи kubectl низ REST API-ро истифода мебарад.

Ин REST аст, аз ин рӯ шумо метавонед барои кор бо ин API ҳама гуна забон ё асбобро истифода баред, аммо китобхонаҳои фармоишӣ ҳаёти шуморо хеле осонтар мекунанд. Дастаи ман 2 чунин китобхона навишт: яке барои Java/OSGi ва дигаре барои Go. Дуюмаш аксар вақт истифода намешавад, аммо дар ҳар сурат шумо ин чизҳои муфидро дар ихтиёр доред. Онҳо як лоиҳаи қисман литсензияшудаи кушодаасос мебошанд. Чунин китобхонаҳо барои забонҳои гуногун зиёданд, бинобар ин шумо метавонед китобхонаҳоеро, ки ба шумо мувофиқанд, интихоб кунед.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Ҳамин тавр, пеш аз он ки шумо автоматикунонии ҷойгиркунии худро оғоз кунед, шумо бояд боварӣ ҳосил кунед, ки ин раванд ба ягон вақти бекорӣ дучор нахоҳад шуд. Масалан, дастаи мо дар нимаи рӯз ҷойгиркунии истеҳсолотро иҷро мекунад, вақте ки одамон барномаҳоро бештар истифода мебаранд, аз ин рӯ муҳим аст, ки ба таъхир дар ин раванд роҳ надиҳед. Барои роҳ надодан ба бекористӣ, 2 усул истифода мешавад: густариши кабуд/сабз ё навсозии яклухт. Дар ҳолати охирин, агар шумо 5 нусхаи барнома дошта бошед, онҳо пай дар пай нав карда мешаванд. Ин усул хуб кор мекунад, аммо он мувофиқ нест, агар шумо версияҳои гуногуни барномаро дар як вақт дар ҷараёни ҷойгиркунӣ иҷро кунед. Дар ин ҳолат, шумо метавонед интерфейси корбарро ҳангоми кор кардани версияи кӯҳна навсозӣ кунед ва барнома корашро қатъ мекунад. Аз ин рӯ, аз нуқтаи назари барномасозӣ, кор дар чунин шароит хеле душвор аст.

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

Механизми ҷойгиркунии кабуд/сабз чунин менамояд. Мо трафикро барои замимаҳои худ тавассути ha-proxy мегирем, ки онро ба репликаҳои иҷрошавандаи замимаи ҳамон версия интиқол медиҳад.

Вақте ки ҷойгиркунии нав анҷом дода мешавад, мо Deployer-ро истифода мебарем, ки ба он ҷузъҳои нав дода мешавад ва версияи навро ҷойгир мекунад. Ҷойгиркунии версияи нави барнома маънои онро дорад, ки маҷмӯи нави репликаҳо "бардошта мешавад", ки пас аз он ин репликаҳои версияи нав дар як паҳлӯи алоҳидаи нав оғоз мешаванд. Аммо, ха-прокси онхо дар бораи онхо чизе намедонад ва то хол ба онхо ягон бори кор намефиристад.

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

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Ҳама ҷузъҳои ҷойгиркунӣ бояд як намуди санҷиши саломатиро дастгирӣ кунанд. Ин метавонад санҷиши занги хеле соддаи HTTP бошад, вақте ки шумо коди дорои мақоми 200-ро мегиред ё санҷиши амиқтаре, ки дар он шумо пайвасти репликаҳоро бо пойгоҳи додаҳо ва хидматҳои дигар, устувории пайвастҳои динамикии муҳити зистро месанҷед. , ва оё ҳама чиз дуруст оғоз меёбад ва кор мекунад. Ин раванд метавонад хеле мураккаб бошад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Пас аз он ки система тафтиш мекунад, ки ҳамаи нусхаҳои навшуда кор мекунанд, Deployer конфигуратсияро навсозӣ мекунад ва конфигуратсияи дурустро мегузарад, ки ha-proxy-ро аз нав танзим мекунад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

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

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Ин механизм хусусияти Kubernetes нест. Мафҳуми густариши кабуд/сабз муддати тӯлонӣ вуҷуд дорад ва он ҳамеша мувозинати сарборӣ истифода мекард. Аввалан, шумо тамоми трафикро ба версияи кӯҳнаи барнома равона мекунед ва пас аз навсозӣ, шумо онро пурра ба версияи нав интиқол медиҳед. Ин принсип на танҳо дар Кубернетес истифода мешавад.

Ҳоло ман шуморо бо як ҷузъи нави ҷойгиркунӣ шинос мекунам - Deployer, ки санҷиши саломатиро анҷом медиҳад, проксиро аз нав танзим мекунад ва ғайра. Ин консепсияест, ки ба ҷаҳони беруна дахл надорад ва дар дохили Кубернетес мавҷуд аст. Ман ба шумо нишон медиҳам, ки чӣ гуна шумо метавонед консепсияи Deployer-и худро бо истифода аз абзорҳои кушодаасос эҷод кунед.

Ҳамин тавр, аввалин чизе, ки Deployer мекунад, ин эҷоди як контролери такрории RC бо истифода аз API Kubernetes мебошад. Ин API барои густариши минбаъда подҳо ва хидматҳо эҷод мекунад, яъне он барои замимаҳои мо кластери комилан нав эҷод мекунад. Ҳамин ки RC итминон ҳосил кард, ки репликаҳо оғоз шудаанд, он санҷиши саломатиро оид ба фаъолияти онҳо анҷом медиҳад. Барои ин, Deployer фармони GET /health -ро истифода мебарад. Он ҷузъҳои скании мувофиқро иҷро мекунад ва ҳамаи унсурҳоеро, ки кори кластерро дастгирӣ мекунанд, месанҷад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Пас аз он ки ҳама поддонҳо дар бораи саломатии худ гузориш доданд, Deployer як унсури нави конфигуратсияро эҷод мекунад - etcd нигаҳдории тақсимшуда, ки дар дохили он аз ҷониби Kubernetes истифода мешавад, аз ҷумла нигоҳ доштани конфигуратсияи мувозинаткунандаи сарборӣ. Мо ба etcd маълумот менависем ва асбоби хурде бо номи confd monitors etcd барои маълумоти нав.

Агар он ягон тағиротро дар конфигуратсияи аввалия муайян кунад, он файли танзимоти нав тавлид мекунад ва онро ба ha-proxy интиқол медиҳад. Дар ин ҳолат, ha-proxy бе аз даст додани ягон пайвастагӣ аз нав оғоз мешавад ва сарбориро ба хидматҳои нав равона мекунад, ки ба версияи нави замимаҳои мо имкон медиҳанд, ки кор кунанд.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Тавре ки шумо мебинед, сарфи назар аз фаровонии ҷузъҳо, дар ин ҷо ҳеҷ чизи мураккаб нест. Шумо танҳо бояд ба API ва ғайра диққати бештар диҳед. Ман мехоҳам ба шумо дар бораи паҳнкунандаи кушодаасос, ки мо худамон истифода мебарем, нақл кунам - Amdatu Kubernetes Deployer.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Он асбобест барои ташкили ҷойгиркунии Kubernetes ва дорои хусусиятҳои зерин аст:

  • Ҷойгиркунии кабуд/сабз;
  • таъсиси мувозинати беруна;
  • идоракунии тавсифи ҷойгиркунӣ;
  • идоракунии ҷойгиркунии воқеӣ;
  • санҷиши фаъолияти санҷишҳои саломатӣ ҳангоми ҷойгиркунӣ;
  • татбиқи тағйирёбандаҳои муҳити зист ба pods.

Ин Deployer дар болои Kubernetes API сохта шудааст ва API REST барои идоракунии дастаҳо ва ҷойгиркунӣ, инчунин API Websocket барои ҷараён додани гузоришҳо дар ҷараёни ҷойгиркунӣ таъмин мекунад.

Он маълумоти конфигуратсияи тавозуни сарбориро ба etcd мегузорад, аз ин рӯ ба шумо лозим нест, ки ha-proxy-ро бо дастгирии берун аз қуттӣ истифода баред, аммо ба осонӣ файли конфигуратсияи баланси сарбории худро истифода баред. Amdatu Deployer дар Go навишта шудааст, ба монанди худи Kubernetes ва аз ҷониби Apache иҷозатнома дорад.

Пеш аз он ки ман ба истифодаи ин версияи паҳнкунанда шурӯъ кардам, ман тавсифкунандаи паҳнкунии зеринро истифода кардам, ки параметрҳои ба ман лозимиро муайян мекунад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Яке аз параметрҳои муҳими ин код фаъол кардани парчами "useHealthCheck" мебошад. Мо бояд муайян кунем, ки ҳангоми ҷойгиркунӣ санҷиши солим бояд анҷом дода шавад. Ин танзимотро вақте ғайрифаъол кардан мумкин аст, вақте ки густариш контейнерҳои тарафи сеюмро истифода мебарад, ки ба тафтиш ниёз надоранд. Ин дескриптор инчунин шумораи репликаҳо ва URL-и интерфейсро, ки ба ҳа-прокси лозим аст, нишон медиҳад. Дар охир парчами мушаххасоти pod "podspec" мавҷуд аст, ки Кубернетесро барои маълумот дар бораи конфигуратсияи порт, тасвир ва ғайра даъват мекунад. Ин тавсифи хеле соддаи JSON аст.

Воситаи дигаре, ки як қисми лоиҳаи кушодаи Amdatu мебошад, Deploymentctl мебошад. Он дорои UI барои конфигуратсияи ҷойгиркунӣ, нигоҳ доштани таърихи густариш ва дорои вебхукҳо барои зангҳои бозпас аз корбарон ва таҳиягарони тарафи сеюм мебошад. Шумо метавонед UI-ро истифода набаред, зеро худи Amdatu Deployer API REST аст, аммо ин интерфейс метавонад густаришро барои шумо бидуни ҷалби ягон API осонтар кунад. Deploymentctl дар OSGi/Vertx бо истифода аз Angular 2 навишта шудааст.

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

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Дар ин ҷо мо сервери HTTP эҷод карда истодаем, ки танҳо ба /саломатӣ ҷавоб медиҳад, бинобар ин ин барнома танҳо санҷиши саломатиро месанҷад, на чизи дигаре. Агар чек гузарад, сохтори JSON дар зер нишон дода мешавад. Он дорои версияи замима, ки аз ҷониби паҳнкунанда ҷойгир карда мешавад, паёме, ки шумо дар болои файл мебинед ва навъи маълумоти логикӣ - новобаста аз он ки барномаи мо кор мекунад ё не.

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

Пас биёед оғоз кунем. Аввалан, мо мавҷудияти ҳама гуна подкастаҳоро бо истифода аз фармони ~ kubectl get pods тафтиш мекунем ва дар асоси мавҷуд набудани посух аз URL-и фронт, мо боварӣ ҳосил мекунем, ки дар айни замон ягон ҷойгиркунӣ анҷом дода намешавад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Дар оянда шумо дар экран интерфейси Deploymentctl-ро мебинед, ки дар он параметрҳои ҷойгиркунӣ муқаррар карда шудаанд: фазои ном, номи барнома, версияи ҷойгиркунӣ, шумораи репликаҳо, URL-и пештара, номи контейнер, тасвир, маҳдудиятҳои захираҳо, рақами порт барои санҷиши саломатӣ, ва ғайра. Маҳдудияти захираҳо хеле муҳим аст, зеро онҳо ба шумо имкон медиҳанд, ки миқдори максималии имконпазири сахтафзорро истифода баред. Дар ин ҷо шумо инчунин метавонед гузориши густаришро бубинед.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Агар шумо ҳоло фармонро такрор кунед ~ kubectl get pods, шумо мебинед, ки система дар тӯли 20 сония "ях мешавад" ва дар давоми он ha-proxy аз нав танзим карда мешавад. Пас аз ин, подкаст оғоз мешавад ва репликаи моро дар гузориши густариш дидан мумкин аст.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Ман интизории 20 сонияро аз видео буридам ва акнун шумо дар экран мебинед, ки версияи якуми барнома ҷойгир шудааст. Ҳамаи ин танҳо бо истифода аз UI анҷом дода шуд.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Акнун биёед версияи дуюмро санҷем. Барои ин ман паёми барномаро аз "Салом, Кубернетес!" иваз мекунам. дар бораи "Салом, Деплойер!", система ин тасвирро эҷод мекунад ва онро дар реестри Docker ҷойгир мекунад ва пас аз он мо танҳо тугмаи "Ҷойгир кардан" -ро дар равзанаи Deploymentctl дубора пахш мекунем. Дар ин ҳолат, сабти ҷойгиркунӣ ба таври худкор ҳамон тавре оғоз мешавад, ки ҳангоми ҷойгиркунии версияи якуми барнома рӯй дод.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Фармони ~ kubectl get pods нишон медиҳад, ки дар айни замон 2 версияи барнома кор мекунад, аммо интерфейс нишон медиҳад, ки мо то ҳол версияи 1-ро иҷро карда истодаем.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Мувозинаткунандаи сарборӣ интизори анҷоми санҷиши саломатӣ аст, то пеш аз интиқоли трафик ба версияи нав. Пас аз 20 сония, мо ба curl мегузарем ва мебинем, ки мо ҳоло версияи 2-и барнома ҷойгир карда шудааст ва аввалинаш нест карда шудааст.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

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

Тавре ки шумо мебинед, ҷойгиркунӣ аз тамоми қадамҳои дар боло зикршуда мегузарад ва ~kubectl get pods нишон медиҳад, ки ҳарду pods кор мекунанд. Аммо бар хилофи ҷойгиркунии қаблӣ, гузориш ҳолати вақтро нишон медиҳад. Яъне, аз сабаби нокомии санҷиши саломатӣ, версияи нави барномаро ҷойгир кардан мумкин нест. Дар натиҷа, шумо мебинед, ки система ба истифодаи версияи кӯҳнаи барнома баргаштааст ва версияи нав танҳо нест карда шудааст.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Чизи хуби ин дар он аст, ки ҳатто агар шумо шумораи зиёди дархостҳои ҳамзамон ба барнома ворид шавед, онҳо ҳатто ҳангоми татбиқи тартиби ҷойгиркунӣ вақти бекориро пай намебаранд. Агар шумо ин барномаро бо истифода аз чаҳорчӯбаи Gatling санҷед, ки он ба қадри имкон дархостҳои зиёд мефиристад, ҳеҷ яке аз ин дархостҳо қатъ карда намешаванд. Ин маънои онро дорад, ки корбарони мо ҳатто дар вақти воқеӣ навсозиҳои версияро пай намебаранд. Агар он ноком шавад, кор дар версияи кӯҳна идома меёбад; агар он муваффақ бошад, корбарон ба версияи нав мегузаранд.

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

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Сервери Build-и мо тасвири Docker эҷод мекунад, онро ба Docker Hub ё ҳар феҳристи истифодабарии шумо тела медиҳад. Docker Hub вебхукро дастгирӣ мекунад, аз ин рӯ мо метавонем ҷойгиркунии дурдастро тавассути Deployer бо роҳи дар боло нишон додашуда оғоз кунем. Бо ин роҳ шумо метавонед ҷойгиркунии барномаи худро ба истеҳсоли эҳтимолӣ пурра автоматӣ кунед.

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

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Ҳамзамон, дар давоми соатҳои корӣ ба шумо лозим меояд, ки зиёд кунед ва шабона барои кам кардани арзиши хидматҳои Amazon, ба шумо лозим аст, ки шумораи мисолҳои татбиқшавандаро кам кунед. Ин маънои онро надорад, ки миқёси танҳо шумораи подкҳо кофӣ хоҳад буд, зеро ҳатто агар яке аз гиреҳҳо бекор бошад ҳам, шумо бояд ба Amazon барои он пардохт кунед. Яъне, дар баробари миқёси қубурҳо, шумо бояд шумораи мошинҳои истифодашударо васеъ кунед.

Ин метавонад душвор бошад, зеро оё мо Amazon ё дигар хидмати абриро истифода мебарем, Кубернетес дар бораи шумораи мошинҳои истифодашаванда чизе намедонад. Он асбобе надорад, ки ба шумо имкон медиҳад, ки системаро дар сатҳи гиреҳ васеъ кунед.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Аз ин рӯ, мо бояд ҳам гиреҳҳо ва ҳам баргҳоро нигоҳубин кунем. Мо метавонем ба осонӣ оғоз кардани гиреҳҳои навро бо истифода аз мошинҳои гурӯҳи AWS API ва Scaling барои танзим кардани шумораи гиреҳҳои кории Kubernetes васеъ кунем. Шумо инчунин метавонед cloud-init ё скрипти шабеҳро барои сабти гиреҳҳо дар кластери Kubernetes истифода баред.

Мошини нав дар гурӯҳи Scaling оғоз меёбад, худро ҳамчун гиреҳ оғоз мекунад, дар феҳристи устод сабти ном мешавад ва ба кор шурӯъ мекунад. Пас аз ин, шумо метавонед шумораи репликаҳоро барои истифода дар гиреҳҳои натиҷавӣ зиёд кунед. Паст кардани миқёс кӯшиши бештарро талаб мекунад, зеро шумо бояд боварӣ ҳосил кунед, ки чунин қадам пас аз хомӯш кардани мошинҳои "нодаркор" ба нобудшавии замимаҳои аллакай коркунанда оварда намерасонад. Барои пешгирии чунин сенария, шумо бояд гиреҳҳоро ба ҳолати "нақшанашаванда" таъин кунед. Ин маънои онро дорад, ки банақшагирии пешфарз ҳангоми банақшагирии pods DaemonSet ин гиреҳҳоро нодида мегирад. Банақшагир ҳеҷ чизро аз ин серверҳо нест намекунад, балки инчунин дар он ҷо контейнерҳои навро оғоз намекунад. Қадами навбатӣ хориҷ кардани гиреҳи дренажӣ, яъне аз он ба мошини дигар ё дигар гиреҳҳое, ки барои ин иқтидори кофӣ доранд, интиқол додан аст. Пас аз он ки шумо боварӣ ҳосил кардед, ки дар ин гиреҳҳо дигар контейнерҳо нестанд, шумо метавонед онҳоро аз Kubernetes хориҷ кунед. Пас аз ин, онҳо барои Кубернетес мавҷудияти худро қатъ мекунанд. Баъдан, шумо бояд AWS API-ро барои хомӯш кардани гиреҳҳо ё мошинҳои нолозим истифода баред.
Шумо метавонед Amdatu Scalerd, як абзори дигари миқёси кушодаасосро, ки ба AWS API монанд аст, истифода баред. Он CLI-ро барои илова ё хориҷ кардани гиреҳҳо дар кластер таъмин мекунад. Хусусияти ҷолиби он қобилияти танзим кардани нақшакаш бо истифода аз файли json зерин мебошад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Рамзи нишон додашуда иқтидори кластерро дар давоми шабонарӯз ду маротиба кам мекунад. Он ҳам шумораи нусхаҳои дастрас ва ҳам иқтидори дилхоҳи кластери Amazonро танзим мекунад. Истифодаи ин нақшакаш ба таври худкор шумораи гиреҳҳоро шабона коҳиш медиҳад ва субҳ онҳоро афзоиш медиҳад ва арзиши истифодаи гиреҳҳоро аз хидмати абрӣ ба монанди Amazon сарфа мекунад. Ин хусусият дар Kubernetes сохта нашудааст, аммо бо истифода аз Scalerd ба шумо имкон медиҳад, ки ин платформаро тавре ки мехоҳед, васеъ кунед.

Ман мехоҳам қайд намоям, ки бисёриҳо ба ман мегӯянд: "Ин ҳама хуб ва хуб аст, аммо дар бораи базаи ман, ки одатан статикӣ аст?" Чӣ тавр шумо метавонед чунин чизеро дар муҳити динамикӣ ба монанди Kubernetes иҷро кунед? Ба андешаи ман, шумо набояд ин корро кунед, шумо набояд кӯшиш кунед, ки анбори додаҳоро дар Кубернетес идора кунед. Ин аз ҷиҳати техникӣ имконпазир аст ва дар Интернет дар бораи ин мавзӯъ дарсҳо мавҷуданд, аммо он ҳаёти шуморо ба таври ҷиддӣ душвор хоҳад кард.

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

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Барои ҷамъбасти мавзӯъ, ман мехоҳам шуморо бо платформаи Cloud RTI дар асоси Kubernetes шинос кунам, ки дастаи ман дар он кор мекунад. Он бақайдгирии мутамарказ, мониторинги барномаҳо ва кластерҳо ва бисёр дигар хусусиятҳои муфидро таъмин мекунад, ки муфид хоҳанд буд. Он абзорҳои гуногуни кушодаасосро ба мисли Grafana барои намоиши мониторинг истифода мебарад.

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

DEVOXX UK. Кубернетҳо дар истеҳсолот: Ҷойгиркунии кабуд / сабз, автоматизатсияи автоматизатсия ва густариш. Қисми 2

Саволе ба миён омад, ки чаро тавозуни бори ha-proxy бо Kubernetes истифода мешавад. Саволи хуб, зеро дар айни замон 2 сатҳи мувозинати сарборӣ вуҷуд дорад. Хидматҳои Kubernetes ҳоло ҳам дар суроғаҳои IP виртуалӣ зиндагӣ мекунанд. Шумо онҳоро барои бандарҳо дар мошинҳои ҳости беруна истифода карда наметавонед, зеро агар Amazon хости абрии худро аз ҳад зиёд бор кунад, суроға тағйир меёбад. Аз ин рӯ, мо ha-proxy-ро дар назди хидматҳо ҷойгир мекунем - барои эҷоди сохтори статикӣ барои трафик барои муоширати бефосила бо Kubernetes.

Саволи дигари хуб ин аст, ки чӣ гуна шумо метавонед ҳангоми ҷойгиркунии кабуд/сабз тағиротҳои схемаи пойгоҳи додаҳоро нигоҳубин кунед? Гап дар он аст, ки новобаста аз истифодаи Kubernetes, тағир додани схемаи пойгоҳи додаҳо кори душвор аст. Шумо бояд боварӣ ҳосил кунед, ки схемаи кӯҳна ва нав мувофиқанд, пас шумо метавонед пойгоҳи додаҳоро навсозӣ кунед ва худи барномаҳоро навсозӣ кунед. Шумо метавонед пойгоҳи додаҳоро иваз кунед ва сипас барномаҳоро навсозӣ кунед. Ман одамонеро медонам, ки кластери комилан нави махзани маълумотро бо схемаи нав пурбор кардаанд, ин як вариант аст, агар шумо як пойгоҳи додаҳои бе схемавӣ ба мисли Mongo дошта бошед, аммо ба ҳар ҳол ин кори осон нест. Агар саволи дигар надошта бошед, ташаккур барои таваҷҷуҳатон!

Баъзе рекламаҳо 🙂

Ташаккур ба шумо барои бо мо мондан. Мақолаҳои мо ба шумо маъқуланд? Мехоҳед мундариҷаи ҷолибтарро бубинед? Бо фармоиш додан ё тавсия додан ба дӯстон моро дастгирӣ кунед, абр VPS барои таҳиягарон аз $4.99, аналоги беназири серверҳои сатҳи ибтидоӣ, ки аз ҷониби мо барои шумо ихтироъ шудааст: Тамоми ҳақиқат дар бораи VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps аз $19 ё чӣ гуна мубодила кардани сервер? (бо RAID1 ва RAID10, то 24 ядро ​​ва то 40 ГБ DDR4 дастрас аст).

Dell R730xd дар маркази додаҳои Equinix Tier IV дар Амстердам 2 маротиба арзонтар аст? Танҳо дар ин ҷо 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ аз $199 дар Нидерландия! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - аз $99! Дар бораи хондан Корпоратсияи инфраструктураро чӣ гуна бояд сохт. синф бо истифодаи серверҳои Dell R730xd E5-2650 v4 ба маблағи 9000 XNUMX евро барои як динор?

Манбаъ: will.com

Илова Эзоҳ