Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Dia duit gach duine! Is é mo ainm Pavel Agaletsky. Oibrím mar cheannasaí foirne i bhfoireann a fhorbraíonn córas seachadta Lamoda. In 2018, labhair mé ag an gcomhdháil HighLoad++, agus inniu ba mhaith liom athscríbhinn de mo thuarascáil a chur i láthair.

Tá mo thopaic dírithe ar thaithí ár gcuideachta maidir le córais agus seirbhísí a imscaradh chuig timpeallachtaí éagsúla. Ag tosú ónár n-amanna réamhstairiúla, nuair a rinneamar gach córas a imscaradh isteach i ngnáthfhreastalaithe fíorúla, ag críochnú leis an aistriú de réir a chéile ó Nomad go dtí imscaradh i Kubernetes. Inseoidh mé duit cén fáth a ndearnamar é agus cad iad na fadhbanna a bhí againn sa phróiseas.

Feidhmchláir a imscaradh chuig VM

Cuirimis tús leis an bhfíric gur imscaradh córais agus seirbhísí uile na cuideachta ar fhreastalaithe fíorúla rialta 3 bliana ó shin. Go teicniúil, eagraíodh é sa chaoi is go ndearnadh an cód ar fad dár gcórais a stóráil agus a chur le chéile ag baint úsáide as uirlisí cóimeála uathoibríocha, ag baint úsáide as jenkins. Ag baint úsáide as Ansible, cuireadh i bhfeidhm é ónár gcóras rialaithe leagan chuig freastalaithe fíorúla. Thairis sin, imscaradh gach córas a bhí ag ár gcuideachta ar 2 fhreastalaí ar a laghad: ceann acu ar an ceann, an dara ceann ar an eireaball. Bhí an dá chóras seo go hiomlán comhionann lena chéile ina gcuid socruithe, cumhacht, cumraíocht, etc. Ba é an t-aon difríocht a bhí eatarthu ná go bhfuair an ceann trácht úsáideora, cé nach bhfuair eireaball trácht úsáideora riamh.

Cén fáth a ndearnadh é seo?

Nuair a d’imscaramar eisiúintí nua dár bhfeidhmchlár, bhíomar ag iarraidh a chinntiú go ndéanfaí feidhmiú céimneach gan uaim, is é sin, gan iarmhairtí suntasacha d’úsáideoirí. Baineadh é seo amach toisc gur cuireadh an chéad scaoileadh tiomsaithe eile ag baint úsáide as Ansible i bhfeidhm go céimneach. Ansin, d'fhéadfadh na daoine a bhí páirteach san imscaradh a sheiceáil agus a chinntiú go raibh gach rud go breá: bhí gach méadracht, rannóg agus feidhmchlár ag obair; seoltar na scripteanna riachtanacha. Go dtí go raibh siad cinnte go raibh gach rud ceart go leor, aistrigh an trácht. Thosaigh sé ag dul go dtí an freastalaí a bhí roimhe seo eireaball. Agus d'fhan an ceann a bhí ina cheann roimhe sin gan trácht úsáideora, agus an leagan roimhe seo dár bhfeidhmchlár fós air.

Mar sin bhí sé gan uaim do na húsáideoirí. Toisc go bhfuil an lascadh meandarach, toisc go bhfuil sé ag aistriú go simplí ar an balancer. Is féidir leat rolladh ar ais go dtí an leagan roimhe seo go héasca ach an t-iarmhéideoir a athrú ar ais. D'fhéadfaimis a fhíorú freisin go raibh an t-iarratas in ann a tháirgeadh fiú sula bhfuair sé trácht úsáideora, rud a bhí áisiúil go leor.

Cad iad na buntáistí a chonaic muid ina leith seo ar fad?

  1. Gcéad dul síos, tá sé go leor oibríonn sé ach. Tuigeann gach duine conas a oibríonn scéim imlonnaithe den sórt sin, toisc gur imscaradh an chuid is mó daoine riamh chuig freastalaithe fíorúla rialta.
  2. Is leor é seo go hiontaofa, ós rud é go bhfuil an teicneolaíocht imscaradh simplí, arna thástáil ag na mílte cuideachtaí. Imscartar na milliúin freastalaithe ar an mbealach seo. Tá sé deacair rud éigin a bhriseadh.
  3. Agus ar deireadh d'fhéadfadh muid a fháil imscaradh adamhach. Imscaradh a tharlaíonn go comhuaineach d’úsáideoirí, gan céim shuntasach maidir le hathrú idir an seanleagan agus an leagan nua.

Ach chonaiceamar roinnt easnaimh ina leith seo go léir freisin:

  1. Chomh maith leis an timpeallacht táirgthe, an timpeallacht forbartha, tá timpeallachtaí eile ann. Mar shampla, qa agus réamhtháirgeadh. Ag an am sin bhí go leor freastalaithe againn agus thart ar 60 seirbhís. Ar an ábhar sin bhí sé riachtanach do gach seirbhís, coinnigh an leagan is déanaí dó meaisín fíorúil. Thairis sin, más mian leat leabharlanna a nuashonrú nó spleáchais nua a shuiteáil, ní mór duit é seo a dhéanamh i ngach timpeallacht. B'éigean duit freisin an t-am a bhfuil tú chun an chéad leagan nua eile de d'iarratas a imscaradh a shioncronú leis an am a ndéanann devops na socruithe timpeallachta riachtanacha. Sa chás seo, tá sé éasca dul isteach i gcás ina mbeidh ár dtimpeallacht beagán difriúil i ngach timpeallacht ag an am céanna. Mar shampla, i dtimpeallacht QA beidh roinnt leaganacha de leabharlanna, agus i dtimpeallacht táirgthe beidh cinn éagsúla ann, rud a fhágann go mbeidh fadhbanna ann.
  2. Deacracht spleáchais a nuashonrú d’iarratas. Braitheann sé ní ortsa, ach ar an bhfoireann eile. Eadhon, ón bhfoireann devops a chothaíonn na freastalaithe. Ní mór duit tasc cuí a thabhairt dóibh agus cur síos ar a bhfuil tú ag iarraidh a dhéanamh.
  3. Ag an am sin, bhíomar ag iarraidh freisin na monolithí móra móra a bhí againn a roinnt ina seirbhísí beaga ar leithligh, ó thuig muid go mbeadh níos mó agus níos mó acu ann. Ag an am sin, bhí níos mó ná 100 acu cheana féin le haghaidh gach seirbhís nua, bhí sé riachtanach meaisín fíorúil nua ar leithligh a chruthú, a raibh gá le cothabháil agus imscaradh freisin. Ina theannta sin, ní gá duit carr amháin, ach ar a laghad dhá. Ina theannta sin tá an timpeallacht QA. Cruthaíonn sé seo fadhbanna agus déanann sé níos deacra duit córais nua a thógáil agus a rith. próiseas casta, costasach agus fada.

Mar sin, chinneamar go mbeadh sé níos áisiúla aistriú ó mheaisíní fíorúla rialta a imscaradh go dtí ár bhfeidhmchláir a imscaradh i gcoimeádán duga. Má tá docker agat, teastaíonn córas uait a fhéadfaidh an feidhmchlár a rith i mbraisle, mar ní féidir leat coimeádán a ardú. De ghnáth ba mhaith leat súil a choinneáil ar cé mhéad coimeádán a ardaítear ionas go n-ardóidh siad go huathoibríoch. Ar an gcúis seo, ní mór dúinn a roghnú córas rialaithe.

Shíleamar ar feadh i bhfad cén ceann a d’fhéadfaimis a ghlacadh. Is é fírinne an scéil go raibh an chairn imscartha seo ar fhreastalaithe fíorúla rialta beagán as dáta ag an am sin, toisc nach raibh na leaganacha is déanaí de chórais oibriúcháin acu. Ag pointe éigin, bhí fiú FreeBSD ann, rud nach raibh an-áisiúil chun tacú leis. Thuigeamar go gcaithfimid dul ar imirce go dtí an duga chomh tapa agus is féidir. Bhreathnaigh ár devops ar a dtaithí reatha le réitigh éagsúla agus roghnaigh siad córas cosúil le Nomad.

Téigh go Nomad

Is táirge de chuid HashiCorp é Nomad. Tá aithne orthu freisin as a réitigh eile:

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

"Consal" is uirlis chun seirbhís a aimsiú.

"Tírbhealach" - córas chun freastalaithe a bhainistiú a ligeann duit iad a chumrú trí chumraíocht, an bonneagar mar a thugtar air.

"Vagrant" ligeann sé duit meaisíní fíorúla a imscaradh go háitiúil nó sa scamall trí chomhaid chumraíochta ar leith.

Ba chuma le Nomad ag an am sin réiteach simplí go leor a d’fhéadfaí a athrú go tapa gan an bonneagar iomlán a athrú. Ina theannta sin, tá sé éasca go leor a fhoghlaim. Sin an fáth a roghnaigh muid é mar chóras scagacháin dár gcoimeádán.

Cad atá uait chun do chóras a imscaradh chuig Nomad?

  1. Gcéad dul síos is gá duit íomhá docker d’iarratas. Ní mór duit é a thógáil agus é a chur sa stór íomhá docker. Is é ár gcás, artifactary é seo - córas a ligeann duit déantáin éagsúla de chineálacha éagsúla a bhrú isteach ann. Is féidir leis cartlanna, íomhánna docker, pacáistí PHP cumadóirí, pacáistí NPM, agus mar sin de a stóráil.
  2. Chomh maith leis sin ag teastáil comhad cumraíochta, a inseoidh Nomad cad é, cén áit agus cén méid is mian leat a imscaradh.

Nuair a labhraímid faoi Nomad, úsáideann sé an teanga HCL mar a bhformáid comhaid faisnéise, a sheasann do Teanga Cumraíochta HashiCorp. Sárfhoireann é seo de Yaml a ligeann duit cur síos a dhéanamh ar do sheirbhís i dtéarmaí Nomad.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Ligeann sé duit a rá cé mhéad coimeádán is mian leat a imscaradh, ónar féidir íomhánna a chur ar aghaidh chuig paraiméadair éagsúla le linn imscaradh. Mar sin, beathaíonn tú an comhad seo do Nomad, agus seolann sé coimeádáin i dtáirgeadh dá réir.

Inár gcás, thuig muid nach mbeadh sé an-áisiúil comhaid HCL comhionann go hiomlán a scríobh do gach seirbhís, toisc go bhfuil go leor seirbhísí ann agus uaireanta is mian leat iad a nuashonrú. Tarlaíonn sé go n-imscartar seirbhís amháin ní i gcás amháin, ach i roinnt seirbhísí éagsúla. Mar shampla, tá níos mó ná 100 cás i dtáirgeadh ar cheann de na córais atá againn i dtáirgeadh. Ritheann siad ó na híomhánna céanna, ach difriúil i socruithe cumraíochta agus comhaid cumraíochta.

Mar sin, chinneamar go mbeadh sé áisiúil dúinn ár gcomhaid chumraíochta go léir a stóráil lena n-imscaradh i stór coiteann amháin. Ar an mbealach seo bhí siad le feiceáil: bhí siad éasca le cothabháil agus d'fhéadfaimis a fheiceáil cad iad na córais a bhí againn. Más gá, tá sé éasca freisin rud éigin a nuashonrú nó a athrú. Níl sé deacair freisin córas nua a chur leis - ní gá duit ach comhad cumraíochta a chruthú taobh istigh den eolaire nua. Taobh istigh de tá na comhaid seo a leanas: service.hcl, ina bhfuil cur síos ar ár seirbhís, agus roinnt comhaid env a cheadaíonn an tseirbhís seo, atá á himscaradh i dtáirgeadh, a chumrú.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Mar sin féin, déantar cuid dár gcórais a imscaradh i dtáirgeadh ní in aon chóip amháin, ach i gcórais éagsúla ag an am céanna. Mar sin, chinneamar go mbeadh sé áisiúil dúinn gan na cumraíochtaí a stóráil ina bhfoirm íon, ach ina bhfoirm theimpléid. Agus roghnaigh muid jinja 2. San fhormáid seo, stórálaimid configs na seirbhíse féin agus na comhaid env atá ag teastáil chun é.

Ina theannta sin, chuireamar sa stór script imlonnaithe a bhaineann le gach tionscadal, a ligeann duit do sheirbhís a sheoladh agus a imscaradh i dtáirgeadh, sa timpeallacht inmhianaithe, isteach sa sprioc atá uait. Sa chás nuair a d'iompaíomar ár config HCL isteach i dteimpléad, ansin thosaigh an comhad HCL, a bhí roimhe seo ina chumraíocht Nomad rialta, sa chás seo ag breathnú beagán difriúil.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Is é sin, chuireamar athróga isteach a tógadh ó chomhaid env nó foinsí eile in ionad roinnt athróg suímh cumraíochta. Ina theannta sin, fuair muid an deis comhaid HCL a bhailiú go dinimiciúil, is é sin, is féidir linn ní hamháin cuir isteach gnáth-athraitheach a úsáid. Ós rud é go dtacaíonn jinja le lúba agus coinníollacha, is féidir leat comhaid cumraíochta a chruthú ann freisin, a athraíonn ag brath ar an áit go díreach a imlonnaíonn tú d'fheidhmchláir.

Mar shampla, ba mhaith leat do sheirbhís a imscaradh chuig réamhtháirgeadh agus táirgeadh. Ligean le rá nach bhfuil tú ag iarraidh scripteanna cron a rith sa réamhléiriú, ach gur mhaith leat an tseirbhís a fheiceáil ar fhearann ​​​​ar leith chun a chinntiú go bhfuil sé ag feidhmiú. Do dhuine ar bith a úsáideann an tseirbhís, tá cuma an-simplí agus trédhearcach ar an bpróiseas. Níl le déanamh agat ach an comhad deploy.sh a rith, sonraigh an tseirbhís is mian leat a imscaradh agus cén sprioc atá agat. Mar shampla, ba mhaith leat córas áirithe a imscaradh go dtí an Rúis, an Bhealarúis nó an Chasacstáin. Chun seo a dhéanamh, ní gá ach ceann de na paraiméadair a athrú, agus beidh an comhad cumraíochta ceart agat.

Nuair atá seirbhís Nomad imlonnaithe chuig do bhraisle cheana féin, tá an chuma air seo.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Gcéad dul síos, is gá duit de chineál éigin cothromóir taobh amuigh, a gheobhaidh gach trácht úsáideora. Oibreoidh sé i gcomhar leis an gConsal agus gheobhaidh sé amach uaidh cá háit, cén nód, ag an seoladh IP a bhfuil seirbhís ar leith suite a fhreagraíonn d’ainm fearainn áirithe. Is ó Nomad féin a thagann seirbhísí sa Chonsal. Ós rud é gur táirgí den chuideachta chéanna iad seo, tá siad sách gaolmhar lena chéile. Is féidir linn a rá gur féidir le Nomad as an mbosca na seirbhísí go léir a seoladh laistigh den Chonsal a chlárú.

A luaithe is a bheidh a fhios ag do chothromóir ualaigh tosaigh cén tseirbhís ar cheart duit trácht a sheoladh chuici, seolann sé ar aghaidh chuig an gcoimeádán cuí nó chuig na coimeádáin iolracha é a mheaitseálann d’iarratas. Ar ndóigh, tá sé riachtanach freisin smaoineamh ar shábháilteacht. Cé go ritheann na seirbhísí go léir ar na meaisíní fíorúla céanna i gcoimeádáin, is gnách go n-éilíonn sé seo rochtain saor in aisce a chosc ó aon seirbhís chuig aon seirbhís eile. Bhaineamar é seo amach trí dheighilt. Seoladh gach seirbhís ina líonra fíorúil féin, ar a raibh rialacha ródaithe agus rialacha maidir le rochtain ar chórais agus ar sheirbhísí eile a cheadú/a dhiúltú. D'fhéadfadh siad a bheith suite laistigh den bhraisle seo agus lasmuigh de. Mar shampla, más mian leat seirbhís a chosc ó nascadh le bunachar sonraí ar leith, is féidir é seo a dhéanamh trí dheighilt ar leibhéal an líonra. Is é sin, fiú trí dhearmad, ní féidir leat ceangal trí thimpiste ón timpeallacht tástála le do bhunachar sonraí táirgthe.

Cé mhéad a chosain an t-aistriú dúinn ó thaobh acmhainní daonna de?

Thóg an t-aistriú na cuideachta ar fad go Nomad thart ar 5-6 mhí. Bhogamar ar bhonn seirbhís ar sheirbhís, ach ar luas measartha tapa. Bhí ar gach foireann a gcoimeádáin féin a chruthú le haghaidh na seirbhísí.

Tá cur chuige den sórt sin glactha againn go mbeidh gach foireann freagrach as íomhánna docker dá gcórais go neamhspleách. Soláthraíonn DevOps an bonneagar ginearálta atá riachtanach le haghaidh imscaradh, is é sin, tacaíocht don bhraisle féin, tacaíocht don chóras CI, agus mar sin de. Agus ag an am sin, bhogamar níos mó ná 60 córas go Nomad, arbh ionann é agus thart ar 2 mhíle coimeádán.

Tá Devops freagrach as bonneagar ginearálta gach rud a bhaineann le himscaradh agus freastalaithe. Agus tá gach foireann forbartha, ar a seal, freagrach as coimeádáin a chur i bhfeidhm dá chóras sonrach, ós rud é gurb é an fhoireann a fhios cad a theastaíonn uaidh go ginearálta i gcoimeádán áirithe.

Cúiseanna le Nomad a thréigean

Cad iad na buntáistí a bhain muid as aistriú chuig imscaradh ag úsáid Nomad agus docker, i measc nithe eile?

  1. Táimid ar choinníoll coinníollacha comhionanna do gach timpeallacht. I bhforbairt, timpeallacht QA, réamhtháirgeadh, táirgeadh, úsáidtear na híomhánna coimeádán céanna, leis na spleáchais chéanna. Dá réir sin, is beag seans atá agat nach é an rud a chríochnóidh i dtáirgeadh ná an rud a ndearna tú tástáil air go háitiúil nó i do thimpeallacht tástála.
  2. Fuair ​​​​muid amach freisin gur leor é éasca seirbhís nua a chur leis. Ó thaobh an imscartha de, seoltar aon chórais nua go simplí. Téigh go dtí an stór a stórálann cumraíochtaí, cuir cumraíocht eile do do chóras ann, agus tá tú réidh. Is féidir leat do chóras a imscaradh chuig táirgeadh gan aon iarracht bhreise ó devops.
  3. Gach comhaid cumraíochta i stór coiteann amháin iompaigh amach a bheith faoi athbhreithniú. Ag an am nuair a rinneamar ár gcórais a imscaradh ag baint úsáide as freastalaithe fíorúla, d'úsáideamar Ansible, ina raibh na cumraíochtaí sa stór céanna. Mar sin féin, d'fhormhór na bhforbróirí bhí sé seo beagán níos deacra oibriú leis. Anseo tá an méid cumraíochta agus cód nach mór duit a chur leis chun an tseirbhís a imscaradh i bhfad níos lú. Ina theannta sin, tá sé an-éasca ag devops é a shocrú nó a athrú. I gcás aistrithe, mar shampla, go leagan nua de Nomad, is féidir leo na comhaid oibriúcháin go léir atá lonnaithe san áit chéanna a thógáil agus a thabhairt cothrom le dáta ar an mórchóir.

Ach thángamar ar roinnt míbhuntáistí freisin:

Iompaigh sé amach go bhfuil muid níorbh fhéidir imscaradh gan uaim a bhaint amach i gcás Nomad. Agus coimeádáin á rolladh amach faoi choinníollacha éagsúla, d'fhéadfadh sé éirí as a bheith ag rith, agus bhraith Nomad gur coimeádán réidh é chun trácht a ghlacadh. Tharla sé seo sula raibh an t-iarratas taobh istigh fiú deis a sheoladh. Ar an gcúis seo, thosaigh an córas a thabhairt ar aird 500 earráidí ar feadh tréimhse ghearr ama, mar gheall ar thosaigh trácht ag dul go dtí coimeádán nach raibh fós réidh chun glacadh leis.

Bhuaileamar le roinnt ag na portaigh. Is é an fabht is suntasaí ná nach láimhseálann Nomad braisle mór go han-mhaith má tá go leor córas agus coimeádán agat. Nuair is mian leat ceann de na freastalaithe atá san áireamh i mbraisle Nomad a thógáil amach le haghaidh cothabhála, tá dóchúlacht sách ard ann nach mbraitheann an braisle an-mhaith agus go dtitfidh sé as a chéile. D’fhéadfadh go dtitfidh agus nach n-ardóidh roinnt coimeádáin, mar shampla - cosnóidh sé seo go mór duit níos déanaí má tá do chórais táirgthe go léir suite i mbraisle arna bhainistiú ag Nomad.

Mar sin shocraigh muid smaoineamh ar an chéad áit eile ar cheart dúinn dul. Ag an bpointe sin, tháinig muid i bhfad níos feasaí ar cad ba mhian linn a bhaint amach. Eadhon: ba mhaith linn iontaofacht, beagán níos mó feidhmeanna ná mar a sholáthraíonn Nomad, agus córas níos aibí agus níos cobhsaí.

Maidir leis seo, thit ár rogha ar Kubernetes mar an t-ardán is mó tóir chun braislí a sheoladh. Go háirithe ós rud é go raibh méid agus líon ár gcoimeádán mór go leor. Chun críocha den sórt sin, ba chosúil gurbh é Kubernetes an córas is oiriúnaí a bhféadfaimis breathnú air.

Aistriú go Kubernetes

Inseoidh mé beagán duit faoi bhunchoincheapa Kubernetes agus an difríocht atá idir iad agus Nomad.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Ar an gcéad dul síos, is é an coincheap is bunúsaí i Kubernetes an coincheap pod. Pod is grúpa coimeádán amháin nó níos mó a ritheann le chéile i gcónaí. Agus oibríonn siad i gcónaí amhail is dá mba go docht ar mheaisín fíorúil amháin. Tá siad inrochtana dá chéile trí IP 127.0.0.1 ar chalafoirt éagsúla.

Glacaimid leis go bhfuil feidhmchlár PHP agat atá comhdhéanta de nginx agus php-fpm - an scéim clasaiceach. Is dócha, beidh tú ag iarraidh coimeádáin nginx agus php-fpm a choinneáil le chéile i gcónaí. Ligeann Kubernetes duit é seo a bhaint amach trí chur síos a dhéanamh orthu mar pod coitianta amháin. Is é seo go díreach an rud nach raibh muid in ann a fháil le Nomad.

Is é an dara coincheap imscaradh. Is é fírinne an scéil gur rud gearrshaolach é an pod féin; tosaíonn sé agus imíonn sé. Ar mhaith leat na coimeádáin a bhí agat roimhe seo a mharú ar dtús, agus ansin leaganacha nua a sheoladh láithreach, nó ar mhaith leat iad a rolladh amach de réir a chéile? Déanann sé cur síos ar an gcaoi a n-imscarann ​​tú do chuid pods, cén méid agus conas iad a nuashonrú.

Is é an tríú coincheap seirbhís. Is é do chóras do sheirbhís i ndáiríre, a fhaigheann roinnt tráchta agus a sheolann ar aghaidh chuig pod amháin nó níos mó a fhreagraíonn do do sheirbhís. Is é sin, ligeann sé duit a rá nach mór an trácht go léir a thagann isteach chuig seirbhís den sórt sin agus den sórt sin le hainm den sórt sin a sheoladh chuig na pods sonracha seo. Agus ag an am céanna soláthraíonn sé cothromaíocht tráchta duit. Is é sin, is féidir leat dhá pods d'iarratas a sheoladh, agus beidh an trácht go léir ag teacht isteach cothromaithe go cothrom idir na pods a bhaineann leis an tseirbhís seo.

Agus is é an ceathrú coincheap bunúsach Ingress. Is seirbhís é seo a ritheann ar bhraisle Kubernetes. Feidhmíonn sé mar chothromóir ualaigh seachtrach a ghlacann le gach iarratas. Ag baint úsáide as API Kubernetes, is féidir le Ingress a chinneadh cén áit ar cheart na hiarratais seo a sheoladh. Ina theannta sin, déanann sé é seo an-solúbtha. Is féidir leat a rá go seoltar gach iarratas chuig an ósta seo agus URL dá leithéid chuig an tseirbhís seo. Agus seoltar na hiarratais seo a thagann chuig an ósta seo agus chuig URL eile chuig seirbhís eile.

Is é an rud is fuaire ó thaobh duine a fhorbraíonn feidhmchlár ná go bhfuil tú in ann é a bhainistiú leat féin. Trí chumraíocht Ingress a shocrú, is féidir leat an trácht go léir a thagann chuig API dá leithéid a sheoladh chuig coimeádáin atá scríofa, mar shampla, in Go. Ach ba cheart an trácht seo, ag teacht chuig an bhfearann ​​​​céanna, ach chuig URL difriúil, a sheoladh chuig coimeádáin atá scríofa i PHP, áit a bhfuil go leor loighic ann, ach níl siad an-tapa.

Má dhéanaimid comparáid idir na coincheapa seo go léir le Nomad, is féidir linn a rá go bhfuil na chéad trí choincheap uile le chéile Seirbhís. Agus tá an coincheap deireanach as láthair in Nomad féin. D'úsáideamar cothromóir seachtrach mar é: d'fhéadfadh sé a bheith haproxy, nginx, nginx+, agus mar sin de. I gcás ciúb, ní gá duit an coincheap breise seo a thabhairt isteach ar leithligh. Mar sin féin, má fhéachann tú ar Ingress go hinmheánach, tá sé nginx, haproxy, nó traefik, ach saghas ionsuite i Kubernetes.

Is acmhainní iad na coincheapa go léir ar chuir mé síos orthu, i ndáiríre, atá ann laistigh de bhraisle Kubernetes. Chun cur síos a dhéanamh orthu sa chiúb, úsáidtear formáid yaml, atá níos inléite agus níos eolach ná comhaid HCL i gcás Nomad. Ach go struchtúrach déanann siad cur síos ar an rud céanna i gcás, mar shampla, pod. Deir siad - ba mhaith liom pods den sórt sin agus den sórt sin a imscaradh ann, le híomhánna den sórt sin agus den sórt sin, i gcainníochtaí den sórt sin agus den sórt sin.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Ina theannta sin, thuig muid nach raibh muid ag iarraidh gach acmhainn aonair a chruthú de láimh: imscaradh, seirbhísí, Ingress, etc. Ina áit sin, theastaigh uainn cur síos a dhéanamh ar gach ceann dár gcórais i dtéarmaí Kubernetes le linn imscaradh, ionas nach mbeadh orainn na spleáchais acmhainní riachtanacha go léir a athchruthú de láimh san ord ceart. Roghnaíodh Helm mar an córas a thug deis dúinn é seo a dhéanamh.

Coincheapa bunúsacha i Helm

Tá Helm bainisteoir pacáiste le haghaidh Kubernetes. Tá sé an-chosúil leis an gcaoi a n-oibríonn bainisteoirí pacáiste i dteangacha ríomhchlárúcháin. Ligeann siad duit seirbhís a stóráil comhdhéanta de, mar shampla, imscaradh nginx, imscaradh php-fpm, config le haghaidh Ingress, configmaps (é seo eintiteas a ligeann duit env agus paraiméadair eile a shocrú do do chóras) i bhfoirm mar sin- ar a dtugtar cairteacha. Ag an am céanna Helm ritheann ar bharr Kubernetes. Is é sin le rá, ní córas de shaghas éigin é seo ar leataobh, ach seirbhís eile a seoladh taobh istigh den chiúb. Idirghníomhaíonn tú leis trína API trí ordú consól. Is í an áisiúlacht agus an áilleacht atá leis ná fiú má bhriseann an clog nó má bhaineann tú as an mbraisle é, ní imeoidh do chuid seirbhísí, ós rud é go bunúsach ní fheidhmíonn an stiúradh ach chun an córas a thosú. Tá Kubernetes féin freagrach ansin as feidhmíocht agus staid na seirbhísí.

Thuigeamar é sin freisin teimpléidiú, a raibh iallach orainn sinn féin a dhéanamh roimhe seo trí jinja a thabhairt isteach inár configs, ar cheann de phríomhghnéithe an stiúrtha. Stóráiltear na cumraíochtaí go léir a chruthaíonn tú do do chórais i Helm i bhfoirm teimpléid, beagán cosúil le jinja, ach, i ndáiríre, ag baint úsáide as templating na teanga Go, ina bhfuil an Helm scríofa, cosúil le Kubernetes.

Cuireann Helm cúpla coincheap eile dúinn.

Cairt - is cur síos é seo ar do sheirbhís. I mbainisteoirí pacáiste eile thabharfaí pacáiste, beart nó rud éigin cosúil leis. Seo cairt a thugtar air.

luachanna na hathróga is mian leat a úsáid chun do chumraíochtaí a thógáil ó theimpléid.

Scaoileadh. Gach uair a fhaigheann seirbhís a imscartar ag baint úsáide as Helm leagan incriminteach den scaoileadh. Cuimhníonn Helm cad a bhí sa chumraíocht seirbhíse san eisiúint roimhe sin, an scaoileadh roimhe sin, agus mar sin de. Dá bhrí sin, más gá duit aischéimnithí a dhéanamh, níl le déanamh ach an t-ordú glao ar ais a rith, agus é á chur in iúl don leagan scaoileadh roimhe seo. Fiú mura bhfuil an chumraíocht chomhfhreagrach i do stór ar fáil tráth an rolladh siar, meabhróidh an stiúrthóir fós cad a bhí ann agus cuirfidh sé do chóras ar ais go dtí an staid ina raibh sé san eisiúint roimhe seo.

Sa chás go n-úsáideann muid clog, déanann configs rialta do Kubernetes freisin teimpléid inar féidir athróga, feidhmeanna a úsáid, agus ráitis choinníollach a chur i bhfeidhm. Ar an mbealach seo is féidir leat do chumraíocht seirbhíse a bhailiú ag brath ar an timpeallacht.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Go praiticiúil, shocraigh muid rudaí a dhéanamh beagán difriúil ná mar a rinne muid le Nomad. Más rud é in Nomad gur stóráiltear cumraíochtaí imlonnaithe agus n-athróg araon a bhí ag teastáil chun ár seirbhís a imscaradh i stór amháin, anseo bheartaíomar iad a roinnt ina dhá stór ar leith. Ní stórálann an stór “imscaradh” ach n-athróg atá riachtanach le himscaradh, agus stórálann an stór “stiall” cumraíochtaí nó cairteacha.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Cad a thug sé seo dúinn?

In ainneoin nach stórálaimid aon sonraí fíor-íogair sna comhaid cumraíochta iad féin. Mar shampla, pasfhocail chuig bunachair shonraí. Stóráiltear iad mar rúin i Kubernetes, ach mar sin féin, tá rudaí áirithe ann fós nach bhfuil muid ag iarraidh rochtain a thabhairt do gach duine. Mar sin, tá rochtain ar an stór “imscartha” níos teoranta, agus níl sa stór “stiall” ach cur síos ar an tseirbhís. Ar an gcúis seo, is féidir le raon níos leithne daoine rochtain a fháil air go sábháilte.

Ós rud é go bhfuil ní hamháin táirgeadh againn, ach freisin timpeallachtaí eile, a bhuíochas leis an scaradh seo is féidir linn ár gcairteacha stiúrtha a athúsáid chun seirbhísí a imscaradh ní hamháin don táirgeadh, ach freisin, mar shampla, do thimpeallacht QA. Fiú iad a imscaradh go háitiúil ag baint úsáide as Miniciúb - is rud é seo chun Kubernetes a reáchtáil go háitiúil.

Laistigh de gach stór, d’fhágamar roinn ina heolairí ar leith do gach seirbhís. Is é sin, taobh istigh de gach eolaire tá teimpléid a bhaineann leis an gcairt chomhfhreagrach agus ag cur síos ar na hacmhainní is gá a imscaradh chun ár gcóras a rith. Níor fhágamar ach suaitheantais sa stór “imscaradh”. Sa chás seo, níor úsáideamar templating ag baint úsáide as jinja, toisc go soláthraíonn helm féin templating as an mbosca - is é seo ceann dá phríomhfheidhmeanna.

D'fhágamar script imlonnaithe - deploy.sh, a shimplíonn agus a chaighdeánaíonn an seoladh le haghaidh imscaradh ag baint úsáide as Helm. Mar sin, do dhuine ar bith atá ag iarraidh imscaradh, tá an chuma ar an gcomhéadan imlonnaithe díreach mar a bhí nuair a bhí sé á imscaradh trí Nomad. An deploy.sh céanna, ainm do sheirbhíse, agus an áit ar mhaith leat é a imscaradh. Cúiseanna seo a Helm chun tús a chur suas go hinmheánach. Bailíonn sé, ina dhiaidh sin, cumraíochtaí ó theimpléid, cuireann sé na comhaid luachanna riachtanacha isteach iontu, ansin imscartar iad, agus iad á seoladh isteach i Kubernetes.

Torthaí

Is cosúil go bhfuil seirbhís Kubernetes níos casta ná Nomad.

Feidhmchláir a imscaradh chuig VM, Nomad agus Kubernetes

Anseo a thagann trácht amach go Ingress. Níl anseo ach an rialtóir tosaigh, a ghlacann le gach iarratas agus ina dhiaidh sin a sheolann chuig na seirbhísí a fhreagraíonn do na sonraí iarratais. Cinneann sé iad bunaithe ar chumraíochtaí atá mar chuid den chur síos ar d'iarratas i gceannas agus a shocraíonn na forbróirí ina n-aonar. Seolann an tseirbhís iarratais chuig a pods, is é sin, coimeádáin ar leith, ag cothromú tráchta ag teacht isteach idir na coimeádáin go léir a bhaineann leis an tseirbhís seo. Agus, ar ndóigh, níor cheart dúinn dearmad a dhéanamh nár cheart dúinn dul in áit ar bith ó shlándáil ag leibhéal an líonra. Mar sin, oibríonn deighilt i mbraisle Kubernetes, atá bunaithe ar chlibeáil. Tá clibeanna áirithe ag gach seirbhís a bhfuil cearta rochtana na seirbhísí ar acmhainní seachtracha/inmheánacha áirithe laistigh nó lasmuigh den bhraisle bainteach leo.

Agus an t-aistriú déanta againn, chonaic muid go raibh na cumais go léir de chuid Nomad ag Kubernetes, a d'úsáid muid roimhe seo, agus chuir sé go leor rudaí nua leis freisin. Is féidir é a leathnú trí fhorlíontáin, agus go deimhin trí chineálacha acmhainní saincheaptha. Is é sin, tá an deis agat ní hamháin úsáid a bhaint as rud éigin a thagann le Kubernetes as an mbosca, ach chun d'acmhainn agus seirbhís féin a chruthú a léifidh d'acmhainn. Tugann sé seo roghanna breise duit chun do chóras a leathnú gan a bheith ort Kubernetes a athshuiteáil agus gan modhnuithe a éileamh.

Sampla d’úsáid den sórt sin is ea Prometheus, a ritheann laistigh dár mbraisle Kubernetes. Chun go dtosóidh sé ag bailiú méadrachta ó sheirbhís ar leith, ní mór dúinn cineál breise acmhainne, an monatóir seirbhíse mar a thugtar air, a chur leis an tuairisc seirbhíse. Mar gheall ar an bhfíric gur féidir le Prometheus cineál acmhainne saincheaptha a léamh nuair a sheoltar é i Kubernetes, tosaíonn sé go huathoibríoch ag bailiú méadrachta ón gcóras nua. Tá sé áisiúil go leor.

Ba i mí an Mhárta 2018 a rinneadh an chéad imscaradh go Kubernetes. Agus le linn an ama seo ní raibh aon fhadhb againn leis. Oibríonn sé go leor cobhsaí gan fabhtanna suntasacha. Ina theannta sin, is féidir linn é a leathnú tuilleadh. Sa lá atá inniu ann tá go leor de na cumais atá aige, agus is maith linn luas forbartha Kubernetes go mór. Faoi láthair, tá níos mó ná 3000 coimeádán i Kubernetes. Tá roinnt Nóid ag an mbraisle. Ag an am céanna, tá sé inseirbhíse, cobhsaí agus an-inrialaithe.

Foinse: will.com

Add a comment