Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Baineann an scéal seo leis an gcaoi a n-úsáidimid coimeádáin i dtimpeallacht táirgthe, go háirithe Kubernetes. Tá an t-alt dírithe ar mhéadracht agus logaí a bhailiú ó choimeádáin, chomh maith le híomhánna a thógáil.

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Is ón gcuideachta fintech Exness, a fhorbraíonn seirbhísí trádála ar líne agus táirgí fintech do B2B agus B2C. Tá go leor foirne éagsúla ag ár T&F, tá 100+ fostaithe ag an roinn forbartha.

Déanaimid ionadaíocht ar an bhfoireann atá freagrach as an ardán dár bhforbróirí chun cód a bhailiú agus a rith. Go háirithe, táimid freagrach as méadracht, logaí agus imeachtaí ó fheidhmchláir a bhailiú, a stóráil agus a thuairisciú. Faoi láthair oibrímid thart ar thrí mhíle coimeádán Docker i dtimpeallacht táirgthe, coinnímid ár stór mór sonraí 50 TB, agus cuirimid réitigh ailtireachta ar fáil atá bunaithe ar ár mbonneagar: Kubernetes, Rancher, agus soláthraithe scamall poiblí éagsúla. 

Ár spreagadh

Cad atá ar lasadh? Ní féidir le duine ar bith freagra a thabhairt. Cá bhfuil an teallach? Tá sé deacair a thuiscint. Cathain a chuaigh sé trí thine? Is féidir leat a fháil amach, ach ní ar an bpointe boise. 

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Cén fáth a bhfuil roinnt coimeádán ina seasamh agus cinn eile tar éis titim? Cén coimeádán a bhí an milleán? Tar éis an tsaoil, tá an taobh amuigh de na coimeádáin mar an gcéanna, ach taobh istigh tá a Neo féin ag gach ceann acu.

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Is guys inniúla ár bhforbróirí. Déanann siad seirbhísí maithe a thugann brabús don chuideachta. Ach tá teipeanna ann nuair a théann coimeádáin le hiarratais ar seachrán. ídíonn coimeádán amháin an iomarca LAP, ídíonn ceann eile an líonra, ídíonn an tríú cuid oibríochtaí I/O, agus níl an ceathrú ceann soiléir cad a dhéanann sé le soicéid. Titeann sé ar fad agus téann an long go tóin poill. 

Gníomhairí

Chun a thuiscint cad atá ag tarlú taobh istigh, shocraigh muid gníomhairí a chur go díreach i gcoimeádáin.

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Is cláir srianta iad na gníomhairí seo a choinníonn coimeádáin i riocht den sórt sin nach bhriseann siad a chéile. Tá gníomhairí caighdeánaithe, agus ceadaíonn sé seo cur chuige caighdeánaithe maidir le seirbhísiú coimeádáin. 

Inár gcás, ní mór do ghníomhairí logaí a sholáthar i bhformáid chaighdeánach, agus iad clibáilte agus sracaire. Ba cheart dóibh méadracht chaighdeánaithe a sholáthar dúinn freisin atá insínte ó thaobh feidhmchláir ghnó de.

Ciallaíonn gníomhairí freisin fóntais le haghaidh oibriú agus cothabhála ar féidir leo oibriú i gcórais cheolchoirmeacha éagsúla a thacaíonn le híomhánna éagsúla (Debian, Alpach, Centos, etc.).

Ar deireadh, ní mór do ghníomhairí tacú le CI/CD simplí a chuimsíonn comhaid Docker. Seachas sin, titfidh an long as a chéile, mar cuirfear tús le coimeádáin a sheachadadh ar ráillí “cam”.

Tóg próiseas agus gléas íomhá sprioc

Chun gach rud a choinneáil caighdeánaithe agus inbhainistithe, ní mór cineál éigin de phróiseas tógála caighdeánach a leanúint. Dá bhrí sin, shocraigh muid coimeádáin a bhailiú ag coimeádáin - is athchúrsa é seo.

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Anseo tá imlínte soladacha léirithe ag na coimeádáin. Ag an am céanna, shocraigh siad feisteáin dáileacháin a chur iontu ionas “nach cosúil go bhfuil an saol cosúil le sútha craobh.” Cén fáth go ndearnadh é seo, míneoimid thíos.
 
Is é an toradh ná uirlis tógála - coimeádán a bhaineann go sonrach le leagan a dhéanann tagairt do leaganacha dáileacháin ar leith agus do leaganacha sonracha scripte.

Conas a úsáidimid é? Tá Mol Docker againn ina bhfuil coimeádán. Déanaimid é a scáthán laistigh dár gcóras chun fáil réidh le spleáchais sheachtracha. Is é an toradh coimeádán marcáilte i buí. Cruthaímid teimpléad chun na dáiltí agus na scripteanna go léir a theastaíonn uainn a shuiteáil isteach sa choimeádán. Ina dhiaidh sin, déanaimid íomhá réidh le húsáid a chur le chéile: chuir na forbróirí cód agus cuid dá spleáchais speisialta féin isteach ann. 

Cad atá go maith faoin gcur chuige seo? 

  • Gcéad dul síos, rialú leagan iomlán na n-uirlisí a thógáil - coimeádán a thógáil, script agus leaganacha dáileacháin. 
  • Ar an dara dul síos, tá caighdeánú bainte amach againn: cruthaímid teimpléid, íomhá idirmheánach agus réidh le húsáid ar an mbealach céanna. 
  • Sa tríú háit, tugann coimeádáin inaistritheacht dúinn. Sa lá atá inniu úsáidimid Gitlab, agus amárach aistrímid go TeamCity nó Jenkins agus beimid in ann ár gcoimeádáin a reáchtáil ar an mbealach céanna. 
  • Ceathrú, spleáchais a íoslaghdú. Ní comhtharlú ar bith a bhí ann gur chuireamar feisteáin dáileacháin sa choimeádán, mar ligeann sé seo dúinn gan iad a íoslódáil ón Idirlíon gach uair. 
  • Ar an gcúigiú háit, tá méadú tagtha ar an luas tógála - ceadaíonn láithreacht cóipeanna áitiúla d'íomhánna duit cur amú ama ar íoslódáil a sheachaint, ós rud é go bhfuil íomhá áitiúil ann. 

I bhfocail eile, tá próiseas tionóil rialaithe agus solúbtha bainte amach againn. Bainimid úsáid as na huirlisí céanna chun aon choimeádáin lánleaganacha a thógáil. 

Conas a oibríonn ár nós imeachta tógála

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Seoltar an tionól le hordú amháin, déantar an próiseas a fhorghníomhú san íomhá (aibhsithe i dearg). Tá comhad Docker ag an bhforbróir (aibhsithe i buí), déanaimid é a sholáthar, ag cur luachanna in ionad athróga. Agus ar an mbealach cuirimid ceanntásca agus buntásca - is iad seo ár ngníomhairí. 

Cuireann an ceanntásc dáiltí ó na híomhánna comhfhreagracha. Agus cuireann buntásc ár gcuid seirbhísí taobh istigh, cumraíonn sé seoladh ualach oibre, logáil agus gníomhairí eile, cuirtear an pointe iontrála in ionad, etc. 

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Shíl muid ar feadh i bhfad cibé acu an maoirseoir a shuiteáil. Sa deireadh, shocraigh muid go raibh gá againn leis. Roghnaigh muid S6. Soláthraíonn an maoirseoir bainistíocht coimeádáin: ligeann duit ceangal a dhéanamh leis má thuairteann an príomhphróiseas agus soláthraíonn sé bainistíocht láimhe ar an gcoimeádán gan é a athchruthú. Is próisis iad logaí agus méadracht a ritheann laistigh den choimeádán. Ní mór iad a rialú ar bhealach éigin freisin, agus déanaimid é seo le cabhair ó mhaoirseoir. Ar deireadh, tugann an S6 aire do bhainistíocht tí, próiseáil comhartha agus tascanna eile.

Ós rud é go n-úsáideann muid córais éagsúla orchestration, tar éis a thógáil agus a reáchtáil, ní mór don choimeádán a thuiscint cén timpeallacht ina bhfuil sé agus gníomhú de réir an staid. Mar shampla:
Ligeann sé seo dúinn íomhá amháin a thógáil agus í a rith i gcórais cheolfhoirneacha éagsúla, agus seolfar í ag cur san áireamh sonraí an chórais ceolfhoirne seo.

 Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Maidir leis an gcoimeádán céanna faigheann muid crainn phróisis éagsúla i Docker agus Kubernetes:

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Déantar an pálasta a fhorghníomhú faoi mhaoirseacht S6. Tabhair aird ar bhailitheoir agus ar imeachtaí - is iad seo ár ngníomhairí atá freagrach as logaí agus méadracht. Níl siad ag Kubernetes, ach tá Docker. Cén fáth? 

Má bhreathnaíonn muid ar shonraíocht an “pod” (dá ngairtear – Kubernetes pod), feicfimid go ndéantar an coimeádán imeachtaí a fhorghníomhú i pod, a bhfuil coimeádán bailithe ar leith ann a chomhlíonann an fheidhm a bhaineann le méadracht agus logaí a bhailiú. Is féidir linn cumais Kubernetes a úsáid: coimeádáin a rith in aon phod amháin, i bpróiseáil amháin agus/nó i spás líonra. I ndáiríre a thabhairt isteach do ghníomhairí agus a dhéanamh ar roinnt feidhmeanna. Agus má sheoltar an coimeádán céanna i Docker, gheobhaidh sé na cumais chéanna go léir mar aschur, is é sin, beidh sé in ann logaí agus méadracht a sheachadadh, ós rud é go seolfar na gníomhairí go hinmheánach. 

Méadracht agus logaí

Is tasc casta é méadracht agus logaí a sheachadadh. Tá gnéithe éagsúla lena cinneadh.
Cruthaítear an bonneagar chun an pálasta a chur i gcrích, agus ní le haghaidh seachadadh mais logaí. Is é sin le rá, ní mór an próiseas seo a dhéanamh le riachtanais íosta acmhainne coimeádáin. Déanaimid ár ndícheall cabhrú lenár bhforbróirí: “Faigh coimeádán Docker Hub, rith é, agus is féidir linn na logaí a sheachadadh.” 

Is é an dara gné teorainn a chur le líon na logs. Má tharlaíonn borradh ar líon na logaí i roinnt coimeádán (aschuireann an feidhmchlár rian cruachta i lúb), méadaíonn an t-ualach ar an LAP, bealaí cumarsáide, agus córas próiseála logaí, agus bíonn tionchar aige seo ar oibriú an óstaigh mar a coimeádáin iomlán agus eile ar an ósta, ansin uaireanta mar thoradh ar seo le "titim" an ósta. 

Is é an tríú gné go bhfuil sé riachtanach tacú leis an oiread modhanna bailithe méadrachta agus is féidir as an mbosca. Ó comhaid a léamh agus críochphointe Prometheus a vótáil go prótacail shainfheidhme a úsáid.

Agus is é an ghné dheireanach ná tomhaltas acmhainní a íoslaghdú.

Roghnaigh muid réiteach foinse oscailte Go ar a dtugtar Telegraf. Is cónascaire uilíoch é seo a thacaíonn le níos mó ná 140 cineál cainéal ionchuir (breiseáin ionchuir) agus 30 cineál cainéal aschuir (breiseáin aschuir). Táimid tar éis é a thabhairt chun críche agus anois inseoimid duit conas a úsáidimid é ag baint úsáide as Kubernetes mar shampla. 

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Ligean le rá go ndéanann forbróir ualach oibre a imscaradh agus faigheann Kubernetes iarratas chun pod a chruthú. Ag an bpointe seo, cruthaítear coimeádán ar a dtugtar Collector go huathoibríoch do gach pod (úsáidimid crúca gréasáin sóchán). Is é an bailitheoir ár ngníomhaire. Ag an tús, cumraíonn an coimeádán seo é féin chun oibriú le Prometheus agus an córas bailithe log.

  • Chun seo a dhéanamh, úsáideann sé nótaí pod, agus ag brath ar a bhfuil ann, cruthaíonn sé, abair, críochphointe Prometheus; 
  • Bunaithe ar shonraíocht an pod agus ar shocruithe sonracha coimeádáin, cinneann sé conas logaí a sheachadadh.

Bailímid logaí tríd an Docker API: ní gá d’fhorbróirí ach iad a chur i stdout nó stderr, agus déanfaidh Collector é a réiteach. Bailítear logaí ina smután le roinnt moille chun ró-ualach an óstaigh a sheachaint. 

Bailítear méadracht trasna cásanna ualaigh oibre (próisis) i gcoimeádáin. Déantar gach rud a chlib: ainmspás, faoi, agus mar sin de, agus ansin tiontaithe go formáid Prometheus - agus bíonn sé ar fáil le bailiú (seachas logs). Seolaimid logaí, méadracht agus imeachtaí chuig Kafka agus a thuilleadh:

  • Tá logaí ar fáil in Graylog (le haghaidh anailís amhairc);
  • Seoltar logaí, méadracht, imeachtaí chuig Clickhouse le haghaidh stórála fadtéarmach.

Oibríonn gach rud díreach mar an gcéanna in AWS, ach táimid ag ionad Graylog le Kafka le Cloudwatch. Cuirimid na logaí ann, agus éiríonn gach rud an-áisiúil: tá sé soiléir láithreach cén braisle agus coimeádán lena mbaineann. Tá an rud céanna fíor i gcás Google Stackdriver. Is é sin le rá go n-oibríonn ár scéim ar an láthair le Kafka agus sa scamall. 

Mura bhfuil Kubernetes againn le pods, tá an scéim beagán níos casta, ach oibríonn sé ar na prionsabail chéanna.

Íomhánna le haghaidh táirgeadh-réidh le haghaidh k8s

Déantar na próisis chéanna taobh istigh den choimeádán, déantar iad a stiúradh ag baint úsáide as S6. Tá na próisis chéanna ar fad ar siúl taobh istigh den choimeádán céanna.

Mar thoradh air sin,

Tá réiteach iomlán cruthaithe againn chun íomhánna a thógáil agus a sheoladh, le roghanna chun logaí agus méadracht a bhailiú agus a sheachadadh:

  • D’fhorbraíomar cur chuige caighdeánaithe maidir le híomhánna a chur le chéile, agus bunaithe air d’fhorbraíomar teimpléid CI;
  • Is iad gníomhairí bailithe sonraí ár síntí Telegraf. Rinneamar tástáil mhaith orthu i dtáirgeadh;
  • Bainimid úsáid as mutation webhook a chur i bhfeidhm coimeádáin le gníomhairí i pods; 
  • Comhtháite in éiceachóras Kubernetes/Rancher;
  • Is féidir linn na coimeádáin chéanna a fhorghníomhú i gcórais cheolfhoirne éagsúla agus an toradh a bhfuil súil againn a fháil;
  • Cruthaíodh cumraíocht bainistíochta coimeádán go hiomlán dinimiciúil. 

Comhúdar: Ilya Prudnikov

Foinse: will.com

Add a comment