Ardán kubernetes a chruthú ar Pinterest

Thar na blianta, chruthaigh 300 milliún úsáideoir Pinterest níos mó ná 200 billiún bioráin ar níos mó ná 4 billiún boird. Chun freastal ar an arm úsáideoirí seo agus ar an mbonn leathan ábhar, tá na mílte seirbhísí forbartha ag an tairseach, ó mhicreirbhísí ar féidir le cúpla LAP a láimhseáil, go monoliths ollmhóra a ritheann ar chabhlach iomlán de mheaisíní fíorúla. Agus ansin tháinig an nóiméad nuair a thit súile na cuideachta ar k8s. Cén fáth ar fhéach an “ciúb” go maith ar Pinterest? Foghlaimeoidh tú faoi seo ónár n-aistriúchán ar alt le déanaí ó blog Pinterest innealtóireachta.

Ardán kubernetes a chruthú ar Pinterest

Mar sin, na céadta milliún na n-úsáideoirí agus na céadta billiúin bioráin. Chun freastal ar an arm úsáideoirí seo agus ar an mbonn leathan ábhar, tá na mílte seirbhísí forbartha againn, ó mhicrisheirbhísí ar féidir le cúpla LAP a láimhseáil, go monoliths ollmhóra a ritheann ar chabhlaigh iomlána meaisíní fíorúla. Ina theannta sin, tá creataí éagsúla againn a bhféadfadh rochtain LAP, cuimhne nó rochtain I/O a bheith ag teastáil uathu.

Agus an zú uirlisí seo á chothabháil, tá roinnt dúshlán os comhair na foirne forbartha:

  • Níl aon bhealach aonfhoirmeach ann d'innealtóirí timpeallacht táirgthe a reáchtáil. Tá seirbhísí gan stát, seirbhísí stáit agus tionscadail atá á bhforbairt go gníomhach bunaithe ar stoic teicneolaíochta atá go hiomlán difriúil. Cruthaíodh cúrsa oiliúna iomlán d'innealtóirí dá bharr, agus cuireann sé go mór casta ar obair ár bhfoireann bonneagair.
  • Cruthaíonn forbróirí a bhfuil a gcabhlach féin de mheaisíní fíorúla ualach mór ar riarthóirí inmheánacha. Mar thoradh air sin, tógann sé seachtainí agus míonna le hoibríochtaí simplí amhail an OS nó AMI a nuashonrú. Is é an toradh a bhíonn air sin ná go n-ardaítear an t-ualach oibre i gcásanna laethúla is cosúil.
  • Deacrachtaí maidir le huirlisí bainistíochta bonneagair dhomhanda a chruthú de bhreis ar na réitigh atá ann cheana féin. Is casta a thuilleadh é an scéal toisc nach bhfuil sé éasca úinéirí meaisíní fíorúla a aimsiú. Is é sin, níl a fhios againn an féidir an acmhainn seo a bhaint go sábháilte chun oibriú i gcodanna eile dár mbonneagar.

Is bealach iad córais orchestration coimeádán chun bainistíocht ualach oibre a aontú. Osclaíonn siad an doras do luas forbartha méadaithe agus simplíonn siad bainistíocht bonneagair, ós rud é go ndéantar na hacmhainní go léir a bhaineann leis an tionscadal a bhainistiú ag córas láraithe amháin.

Ardán kubernetes a chruthú ar Pinterest

Fíor 1: Tosaíochtaí bonneagair (iontaofacht, táirgiúlacht fhorbróra, agus éifeachtúlacht).

D’aimsigh foireann Cloud Management Platform ag Pinterest K8anna in 2017. Faoin gcéad leath de 2017, bhí an chuid is mó dár gcumas táirgthe doiciméadaithe againn, lena n-áirítear an API agus ár bhfreastalaithe gréasáin go léir. Ina dhiaidh sin, rinneamar measúnú críochnúil ar chórais éagsúla chun réitigh coimeádán a cheolfhoireann, braislí a thógáil agus oibriú leo. Ag druidim le deireadh 2017, shocraigh muid Kubernetes a úsáid. Bhí sé solúbtha go leor agus tacaíodh go forleathan leis i measc an phobail fhorbróra.

Go dtí seo, tá ár n-uirlisí tosaithe braisle féin tógtha againn bunaithe ar Kops agus aistríodh comhpháirteanna bonneagair atá ann cheana mar líonrú, slándáil, méadracht, logáil, bainistíocht aitheantais, agus trácht go Kubernetes. Chuireamar córas samhaltaithe ualaigh oibre i bhfeidhm freisin dár n-acmhainn, a bhfuil a chastacht ceilte ar fhorbróirí. Anois táimid dírithe ar chobhsaíocht an bhraisle a chinntiú, é a scálú agus cliaint nua a nascadh.

Kubernetes: An Bealach Pinterest

Tháinig go leor dúshlán le tosú le Kubernetes ar scála Pinterest mar ardán a mbeadh grá ag ár n-innealtóirí.

Mar chuideachta mhór, tá infheistíocht mhór déanta againn in uirlisí bonneagair. I measc na samplaí tá uirlisí slándála a láimhseálann próiseáil deimhnithe agus dáileadh eochair, comhpháirteanna rialaithe tráchta, córais aimsithe seirbhíse, comhpháirteanna infheictheachta, agus comhpháirteanna seolta loga agus méadrachta. Bailíodh é seo go léir ar chúis: chuaigh muid tríd an ngnáthchosán trialach agus earráide, agus mar sin theastaigh uainn an trealamh seo go léir a chomhtháthú leis an mbonneagar nua ar Kubernetes in ionad an sean-roth a athchruthú ar ardán nua. Tríd is tríd, shimpligh an cur chuige seo an t-aistriú, ós rud é go bhfuil an tacaíocht iarratais ar fad ann cheana féin agus nach gá é a chruthú ón tús.

Ar an láimh eile, ní leor na samhlacha réamhaisnéise ualaigh i Kubernetes féin (cosúil le imscaradh, poist agus tacair Deamhan) dár dtionscadal. Is bacainní móra iad na saincheisteanna inúsáidteachta seo ar aistriú go Kubernetes. Mar shampla, chualamar forbróirí seirbhíse ag gearán faoi shocruithe logáil isteach atá in easnamh nó mícheart. Thángamar freisin ar úsáid mhícheart na n-innill teimpléid, nuair a cruthaíodh na céadta cóip leis an tsonraíocht agus an tasc céanna, rud a d'eascair fadhbanna dífhabhtaithe tromluí.

Bhí sé an-deacair freisin leaganacha éagsúla a choinneáil sa chnuasach céanna. Samhlaigh castacht na tacaíochta do chustaiméirí más gá duit oibriú go comhuaineach i leaganacha iolracha den timpeallacht rite céanna, lena gcuid fadhbanna, fabhtanna agus nuashonruithe go léir.

Airíonna agus Rialaitheoirí Úsáideora Pinterest

Chun é a dhéanamh níos éasca dár n-innealtóirí Kubernetes a chur i bhfeidhm, agus chun ár mbonneagar a shimpliú agus a bhrostú, tá ár sainmhínithe acmhainní saincheaptha (CRDanna) forbartha againn.

Soláthraíonn CRDanna an fheidhmiúlacht seo a leanas:

  1. Acmhainní dúchasacha éagsúla Kubernetes a chomhcheangal ionas go n-oibreoidh siad mar ualach oibre amháin. Mar shampla, cuimsíonn acmhainn PinterestService imscaradh, seirbhís logáil isteach, agus léarscáil cumraíochta. Ligeann sé seo d'fhorbróirí gan a bheith buartha faoi DNS a bhunú.
  2. Tacaíocht iarratais riachtanach a chur i bhfeidhm. Ní mór don úsáideoir díriú ach ar shonraíocht an choimeádáin de réir a loighic ghnó, agus cuireann an rialtóir CRD na coimeádáin init, na hathróga comhshaoil ​​agus na sonraíochtaí pod riachtanacha i bhfeidhm. Soláthraíonn sé seo leibhéal bunúsach difriúil de chompord d'fhorbróirí.
  3. Bainistíonn rialtóirí CRD saolré na n-acmhainní dúchasacha freisin agus feabhsaíonn siad infhaighteacht dífhabhtaithe. Áirítear leis seo sonraíochtaí inmhianaithe agus iarbhír a réiteach, stádas CRD a nuashonrú agus logaí imeachtaí a chothabháil, agus níos mó. Gan CRD, chuirfí iallach ar fhorbróirí acmhainní iolracha a bhainistiú, rud a chuirfeadh leis an dóchúlacht go ndéanfaí earráid amháin.

Seo sampla de PinterestService agus acmhainn inmheánach atá á bhainistiú ag ár rialtóir:

Ardán kubernetes a chruthú ar Pinterest

Mar a fheiceann tú thuas, chun tacú le coimeádán saincheaptha ní mór dúinn coimeádán init agus roinnt breiseán a chomhtháthú chun slándáil, infheictheacht agus trácht líonra a sholáthar. Ina theannta sin, chruthaigh muid teimpléid léarscáileanna cumraíochta agus chuireamar tacaíocht i bhfeidhm do theimpléid PVC do phoist bhaisc, chomh maith le rianú a dhéanamh ar il-athróga timpeallachta chun aitheantas, tomhaltas acmhainní agus bailiú truflais a rianú.

Tá sé deacair a shamhlú go mbeadh forbróirí ag iarraidh na comhaid cumraíochta seo a scríobh de láimh gan tacaíocht CRD, gan trácht ar na cumraíochtaí a chothabháil agus a dhífhabhtú.

Sreabhadh oibre imscaradh iarratais

Ardán kubernetes a chruthú ar Pinterest

Taispeánann an íomhá thuas conas acmhainn saincheaptha Pinterest a imscaradh chuig braisle Kubernetes:

  1. Idirghníomhaíonn forbróirí lenár mbraisle Kubernetes tríd an CLI agus comhéadan úsáideora.
  2. Aisghabhann na huirlisí CLI/UI cumraíocht an tsreafa oibre comhaid YAML agus airíonna tógála eile (ID an leagain chéanna) ó Artifactory agus ansin cuireann siad faoi bhráid na Seirbhíse Aighneachta Poist iad. Cinntíonn an chéim seo nach seachadtar ach leaganacha táirgeachta don bhraisle.
  3. Is geata é JSS d’ardáin éagsúla, lena n-áirítear Kubernetes. Anseo fíordheimhnítear an t-úsáideoir, eisítear cuótaí agus déantar cuid de chumraíocht ár CRD a sheiceáil.
  4. Tar éis an CRD a sheiceáil ar thaobh JSS, seoltar an fhaisnéis chuig API ardán k8s.
  5. Déanann ár rialtóir CRD monatóireacht ar imeachtaí ar gach acmhainn úsáideora. Tiontaíonn sé CRs ina n-acmhainní dúchais k8s, cuireann sé na modúil riachtanacha leis, socraíonn sé na hathróga timpeallachta cuí, agus déanann sé obair thacaíochta eile chun a chinntiú go bhfuil dóthain tacaíochta bonneagair ag feidhmchláir coimeádáin úsáideoirí.
  6. Ansin cuireann an rialtóir CRD na sonraí faighte ar aghaidh chuig Kubernetes API ionas gur féidir leis an sceidealóir é a phróiseáil agus a chur i dtáirgeadh.

Tabhair faoi deara: Cruthaíodh an sreabhadh oibre réamhscaoilte seo den imscaradh do na chéad úsáideoirí den ardán k8s nua. Táimid i mbun an phróisis seo a bheachtú faoi láthair chun comhtháthú iomlán a dhéanamh lenár CI/CD nua. Ciallaíonn sé seo nach féidir linn gach rud a bhaineann le Kubernetes a insint duit. Táimid ag tnúth lenár dtaithí agus dul chun cinn na foirne sa treo seo a roinnt inár gcéad bhlagmhír eile, “Ag Tógáil ardán CI/CD do Pinterest.”

Cineálacha acmhainní speisialta

Bunaithe ar shainriachtanais Pinterest, tá na CRDanna seo a leanas forbartha againn chun freastal ar shreafaí oibre éagsúla:

  • Is seirbhísí gan stát iad PinterestService atá ar siúl le fada an lá. Tá go leor dár gcroíchórais bunaithe ar shraith seirbhísí dá leithéid.
  • PinterestJobSet múnlaí jabanna iomlán timthriallta. Cás coitianta ar Pinterest ná go ritheann poist iolracha na coimeádáin chéanna go comhthreomhar, beag beann ar phróisis eile dá samhail.
  • Úsáidtear PinterestCronJob go forleathan i gcomhar le hualaí beaga tréimhsiúla. Is fillteán é seo le haghaidh obair cron dúchais le meicníochtaí tacaíochta Pinterest atá freagrach as slándáil, trácht, logaí agus méadracht.
  • Pinterest Cuimsíonn Deamhan Deamhan bonneagair. Leanann an teaghlach seo ag fás agus muid ag cur níos mó tacaíochta lenár mbraislí.
  • Síneann PinterestTrainingJob go próisis Tensorflow agus Pytorch, ag soláthar an leibhéal céanna tacaíochta rite ama agus atá ag gach CRD eile. Ós rud é go n-úsáideann Pinterest Tensorflow agus córais mheaisínfhoghlama eile go gníomhach, bhí cúis againn le CRD ar leith a thógáil timpeall orthu.

Táimid ag obair freisin ar PinterestStatefulSet, a bheidh in oiriúint go luath le haghaidh stórais sonraí agus córais stáit eile.

Tacaíocht am rite

Nuair a ritheann pod feidhmchlár ar Kubernetes, faigheann sé deimhniú go huathoibríoch chun é féin a shainaithint. Úsáidtear an teastas seo chun rochtain a fháil ar stóras rúnda nó chun cumarsáid a dhéanamh le seirbhísí eile trí mTLS. Idir an dá linn, déanfaidh an Container Init Configurator agus Deamhan na spleáchais riachtanacha go léir a íoslódáil roimh an feidhmchlár coimeádán a rith. Nuair a bheidh gach rud réidh, cláróidh an taobhcharr tráchta agus an Deamhan seoladh IP an mhodúil lenár Zookeeper ionas gur féidir le cliaint é a fháil amach. Oibreoidh sé seo go léir toisc go raibh an modúl líonra cumraithe sular seoladh an feidhmchlár.

Is samplaí tipiciúla iad seo thuas de thacaíocht am rite le haghaidh ualaí oibre. D'fhéadfadh tacaíocht beagán difriúil a bheith ag teastáil ó chineálacha eile ualaí oibre, ach tagann siad go léir i bhfoirm taobhcharranna pod-leibhéil, Deamhan leibhéal nód nó leibhéal meaisín fíorúil. Cinntímid go ndéantar é seo ar fad a imscaradh laistigh den bhonneagar bainistíochta agus go bhfuil sé comhsheasmhach ar fud na bhfeidhmchlár, rud a laghdaíonn go mór an t-ualach i ndeireadh na dála ó thaobh obair theicniúil agus tacaíochta custaiméara.

Tástáil agus QA

Thógamar píblíne tástála ceann go ceann ar bharr bhonneagar tástála Kubernetes atá ann cheana féin. Baineann na tástálacha seo le gach ceann dár mbraislí. Chuaigh ár bpíblíne trí go leor leasuithe sular tháinig sé mar chuid den bhraisle táirgí.

Chomh maith le córais tástála, tá córais monatóireachta agus foláirimh againn a dhéanann monatóireacht leanúnach ar stádas comhpháirteanna an chórais, tomhaltas acmhainní agus táscairí tábhachtacha eile, ag cur in iúl dúinn ach amháin nuair is gá idirghabháil an duine.

Roghanna eile

D’fhéachamar ar roinnt roghanna eile seachas acmhainní saincheaptha, amhail rialaitheoirí rochtana sóchán agus córais teimpléid. Mar sin féin, tá dúshláin oibríochta suntasacha ag baint leo go léir, agus mar sin roghnaigh muid an bealach CRD.

Baineadh úsáid as rialtóir iontrála sócháin chun taobhcharranna, athróga timpeallachta, agus tacaíocht ama rite eile a thabhairt isteach. Mar sin féin, bhí fadhbanna éagsúla le sárú aige, mar cheangal acmhainní agus bainistiú saolré, i gcás nach dtagann fadhbanna dá leithéid chun cinn i CRD.

Tabhair faoi deara: Úsáidtear córais teimpléid ar nós cairteacha Helm go forleathan freisin chun feidhmchláir a bhfuil cumraíochtaí cosúla acu a rith. Mar sin féin, tá ár bhfeidhmchláir oibre ró-ilchineálach le bainistiú ag baint úsáide as teimpléid. Chomh maith leis sin le linn imscaradh leanúnach beidh an iomarca earráidí agus teimpléid á n-úsáid.

Obair le teacht

Táimid ag déileáil le hualach measctha ar fud ár mbraislí go léir faoi láthair. Chun tacú le próisis den sórt sin de chineálacha agus de mhéideanna éagsúla, oibrímid sna réimsí seo a leanas:

  • Dáileann bailiúchán de bhraislí feidhmchláir mhóra ar fud braislí éagsúla le haghaidh inscálaitheacht agus cobhsaíocht.
  • Cobhsaíocht braisle, inscálaitheacht agus infheictheacht a chinntiú chun nascacht feidhmchláir agus CLSanna a chruthú.
  • Acmhainní agus cuótaí a bhainistiú ionas nach mbeidh feidhmchláir ag teacht salach ar a chéile, agus tá scála an bhraisle á rialú againne.
  • Ardán nua CI/CD chun tacú le feidhmchláir agus iad a imscaradh ar Kubernetes.

Foinse: will.com

Add a comment