Abuuritaanka madal kubernetes ee Pinterest

Sanadihii la soo dhaafay, isticmaalayaasha Pinterest ee 300 milyan ah ayaa abuuray in ka badan 200 bilyan biin in ka badan 4 bilyan oo loox. Si loogu adeego ciidankan isticmaalayaasha ah iyo saldhigga nuxurka ballaadhan, xadhkaha ayaa soo saaray kumanaan adeegyo ah, oo u dhexeeya adeeg-yaraha oo ay maamuli karaan dhowr CPUs, ilaa monoliths weyn oo ku shaqeeya mashiinnada farsamada gacanta. Ka dibna daqiiqad ayaa timid markii indhihii shirkadu ay ku dhaceen k8s. Muxuu "cube" ugu muuqday Pinterest? Tan waxaad ku baran doontaa turjumaadayada maqaal dhowaan ka yimid blog Pinterest kobcinta.

Abuuritaanka madal kubernetes ee Pinterest

Markaa, boqolaal milyan oo isticmaaleyaal ah iyo boqolaal balaayiin biin ah. Si aan ugu adeegno ciidankan isticmaalayaasha ah iyo saldhigga nuxurka ballaaran, waxaan soo saarnay kumanaan adeegyo, oo u dhexeeya adeegyo yar-yar oo ay maamuli karaan dhowr CPUs, ilaa monoliths weyn oo ku shaqeeya dhammaan raxannada mashiinnada farsamada gacanta. Intaa waxaa dheer, waxaan haynaa qaabab kala duwan oo sidoo kale u baahan kara CPU, memory, ama I/O gelitaanka.

Si loo ilaaliyo qalabkan xayawaanka lagu xanaaneeyo, kooxda horumarintu waxay la kulmaan caqabado dhawr ah:

  • Ma jiro hab isku mid ah oo injineerada ay u maamulaan deegaan wax soo saar. Adeegyada dawlad la'aanta, adeegyada gobolka iyo mashaariicda horumarinta firfircoon waxay ku salaysan yihiin qalabyo tignoolajiyadeed oo kala duwan. Tani waxay horseeday abuurista koorsada tababarka injineerada oo dhan, waxayna sidoo kale si dhab ah u adkeyneysaa shaqada kooxdayada kaabayaasha.
  • Soo-saareyaasha wata raxan u gaar ah oo ah mashiinnada casriga ah waxay culeys weyn ku abuuraan maamulayaasha gudaha. Natiijo ahaan, hawlgallada fudud sida cusboonaysiinta OS ama AMI waxay qaataan toddobaadyo iyo bilo. Tani waxay keenaysaa korodhka culeyska shaqada ee xaaladaha maalinlaha ah ee u muuqda gabi ahaanba.
  • Dhibaatooyinka abuuritaanka qalabka maaraynta kaabayaasha caalamiga ah ee ugu sarreeya xalalka jira. Xaaladdu way sii murugsan tahay xaqiiqda ah in helitaanka milkiilayaasha mashiinnada farsamada aysan fududayn. Taasi waa, ma garanayno in awooddan si badbaado leh loo soo saari karo si looga shaqeeyo qaybaha kale ee kaabayaashayaga.

Nidaamyada abaabulka weelku waa hab lagu mideeyo maaraynta culayska shaqada. Waxay albaabada u furayaan kordhinta xawaaraha horumarka waxayna fududeeyaan maareynta kaabayaasha, maadaama dhammaan agabka ku lug leh mashruuca lagu maamulo hal nidaam oo dhexe.

Abuuritaanka madal kubernetes ee Pinterest

Jaantus 1: Mudnaanta kaabayaasha (isku-kalsoonaanta, wax soo saarka horumariyaha, iyo hufnaanta).

Kooxda Platform Management Cloud ee Pinterest waxay heleen K8s 2017. Qaybtii hore ee 2017, waxaanu diiwaangelinay inta badan awoodahayada wax soo saarka, oo ay ku jiraan API-ga iyo dhammaan mareegahayaga. Ka dib, waxaanu samaynay qiimayn dhamaystiran oo ku saabsan hababka kala duwan ee habaynta xalalka weelka, dhisidda kooxaha iyo la shaqaynta iyaga. Dhammaadkii 2017, waxaan go'aansanay inaan isticmaalno Kubernetes. Waxay ahayd mid aad u dabacsan oo si weyn loogu taageeray bulshada horumarisa.

Ilaa hadda, waxaanu dhisnay qalabyada kabaha kooxeed noo gaar ah oo ku salaysan Kops waxaana u haajiray qaybaha kaabayaasha ee jira sida isku xidhka, amniga, cabbirada, gooynta, maaraynta aqoonsiga, iyo taraafikada Kubernetes. Waxa kale oo aanu hirgelinay nidaamka qaabaynta culayska shaqada ee kheyraadkayaga, kakan kaas oo ka qarsoon horumariyeyaasha. Hadda waxaan diiradda saarnay hubinta xasilloonida kooxda, cabbiridda iyo isku xirka macaamiisha cusub.

Kubernetes: Waddada Pinterest

Bilawga Kubernetes ee cabirka Pinterest sida madal ay injineeradayadu jeclaan lahaayeen waxay la timid caqabado badan.

Shirkad weyn ahaan, waxaan si weyn u maalgelinay agabka kaabayaasha. Tusaalooyinka waxaa ka mid ah aaladaha amniga ee gacanta ku haya habaynta shahaadaynta iyo qaybinta furaha, qaybaha xakamaynta taraafikada, nidaamyada daahfurka adeega, qaybaha muuqaalka, iyo qaybaha diritaanka log iyo metrics. Waxaas oo dhan waxaa loo soo ururiyay sabab: waxaan soo marnay jidka caadiga ah ee tijaabada iyo qaladka, sidaas darteed waxaan rabnay in aan isku xirno dhammaan qalabkan kaabayaasha cusub ee Kubernetes halkii aan dib u soo celin lahayn giraangi hore ee madal cusub. Habkani guud ahaan wuxuu fududeeyay socdaalka, maadaama dhammaan taageerada codsigu ay hore u jireen oo aan loo baahnayn in laga abuuro eber.

Dhanka kale, moodooyinka saadaasha culeyska ee Kubernetes laftiisa (sida hawlgelinta, shaqooyinka, iyo qalabka Daemon) kuma filna mashruucayaga. Arrimahan isticmaalka ayaa caqabad weyn ku ah u dhaqaaqida Kubernetes. Tusaale ahaan, waxaan maqalnay horumariyeyaasha adeegga oo ka cabanaya dejinta gelitaanka maqan ama khaldan. Waxaan sidoo kale la kulannay isticmaalka khaldan ee matoorada template, markii boqollaal nuqul la abuuray isla qeexitaan iyo hawl isku mid ah, taas oo keentay dhibaatooyin riyooyin qarow ah.

Waxa kale oo aad u adkeyd in la sii hayo noocyo kala duwan oo isku koox ah. Bal qiyaas kakanaanta taageerada macmiilka haddii aad u baahan tahay inaad si isku mar ah uga shaqeyso noocyo badan oo isla jawi runtime ah, oo leh dhammaan dhibaatooyinkooda, dhiqlaha iyo cusboonaysiinta.

Guryaha Isticmaalaha Pinterest iyo Koontaroolayaasha

Si loo fududeeyo injineeradayada inay hirgeliyaan Kubernetes, iyo si loo fududeeyo oo loo dedejiyo kaabayaashayaga, waxaanu samaynay qeexitaan kheyraad gaar ah (CRDs).

CRDs waxay bixiyaan shaqada soo socota:

  1. Isku darka agabyada kala duwan ee Kubernetes ee u dhashay si ay ugu shaqeeyaan sidii hal shaqo oo keliya. Tusaale ahaan, Ilaha Adeegga Pinterest waxaa ka mid ah geyn, adeeg galeyn, iyo khariidad qaabeynta. Tani waxay u oggolaaneysaa horumariyeyaasha inaysan ka welwelin dejinta DNS.
  2. Hirgelinta taageerada codsiga lagama maarmaanka ah. Isticmaaluhu wuxuu u baahan yahay inuu diirada saaro oo kaliya qeexitaanka weelka iyadoo loo eegayo caqli-galkooda ganacsi, halka kontaroolaha CRD uu fulinayo dhammaan weelasha lagama maarmaanka ah, doorsoomayaasha deegaanka iyo qeexida godadka. Tani waxay siisaa heer aasaasi ah oo kala duwan oo raaxada loogu talagalay horumarinta.
  3. Koontaroolayaasha CRD waxay sidoo kale maareeyaan meertada nolosha ee kheyraadka waddaniga ah waxayna hagaajiyaan helitaanka cilladaha. Tan waxaa ka mid ah dib-u-heshiisiinta la doonayo iyo qeexida dhabta ah, cusboonaysiinta heerka CRD iyo ilaalinta diiwaannada dhacdada, iyo in ka badan. CRD la'aanteed, horumariyayaashu waxay ku qasbanaan doonaan inay maareeyaan ilo badan, taas oo kordhin doonta kaliya suurtagalnimada khalad.

Waa kuwan tusaale ahaan Adeegga Pinterest iyo kheyraadka gudaha ee uu maamulo maamulahayada:

Abuuritaanka madal kubernetes ee Pinterest

Sida aad kor ku arki karto, si aan u taageerno weelka gaarka ah waxaan u baahanahay in aan isku darno weelka init iyo dhowr waxyaabood oo lagu daro si aan u bixino amniga, muuqaalka, iyo taraafikada shabakada. Intaa waxaa dheer, waxaan abuurnay habab khariidado qaabeyn ah waxaanan hirgelinay taageerada qaababka PVC ee shaqooyinka dufcada, iyo sidoo kale dabagalka doorsoomayaal deegaan oo badan si aan ula socono aqoonsiga, isticmaalka kheyraadka, iyo aruurinta qashinka.

Way adag tahay in la qiyaaso in horumariyayaashu ay rabaan inay gacanta ku qoraan faylalka qaabeynta iyada oo aan la helin taageerada CRD, iska daa in la sii ilaaliyo oo laga tirtiro isku xidhka.

Codsiga hawlgelinta socodka shaqada

Abuuritaanka madal kubernetes ee Pinterest

Sawirka kore wuxuu muujinayaa sida loo geeyo agabka gaarka ah ee Pinterest kooxda Kubernetes:

  1. Soo-saarayaashu waxay la falgalaan kutladayada Kubernetes iyada oo loo marayo CLI iyo interface interface.
  2. Aaladaha CLI/UI waxay soo ceshadaan qaabeynta socodka shaqada faylalka YAML iyo guryaha kale ee la dhiso (ID nooca la mid ah) ee Farshaxanka ka dibna u gudbi Adeegga Gudbinta Shaqada. Talaabadani waxay xaqiijinaysaa in kaliya noocyada wax soo saarka la geeyo kooxda.
  3. JSS waa albaab laga galo goobo kala duwan, oo ay ku jiraan Kubernetes. Halkan isticmaaluhu waa la xaqiijiyay, kootada ayaa la soo saaray iyo qaabaynta CRD-ga qayb ahaan waa la hubiyay.
  4. Kadib markaad hubiso CRD dhanka JSS, macluumaadka waxaa loo diraa k8s platform API.
  5. Xakamayntayada CRD waxay la socotaa dhacdooyinka dhammaan ilaha isticmaalaha. Waxay u beddeshaa CR-yada ilaha k8s ee asalka ah, waxay ku dartay cutubyada lagama maarmaanka ah, waxay dejisaa doorsoomayaasha deegaanka ee ku habboon, waxayna fulisaa shaqo kale oo taageero ah si loo hubiyo in codsiyada isticmaale ee weelaysan ay leeyihiin taageero kaabayaasha ku filan.
  6. Xakamaynta CRD ayaa markaa xogta la helay u gudbisa Kubernetes API si ay u habayn karto jadwaleeyaha oo loo geliyo wax soo saar.

tacliiq: Socodkan shaqo ee sii-daynta ka hor ee hawlgelinta waxaa loo abuuray isticmaalayaashii ugu horreeyay ee k8s-ka cusub. Waxaan hadda ku jirnaa habka sifaynta habkan si aan si buuxda ula midowno CI/CD-keena cusub. Tani waxay ka dhigan tahay inaanan kuu sheegi karin wax kasta oo la xiriira Kubernetes. Waxaan rajeyneynaa inaan wadaagno khibradeena iyo horumarka kooxda ee jihadaan boostada soo socota ee blog, "Dhismaha CI/CD ee Pinterest."

Noocyada agabka gaarka ah

Iyada oo ku saleysan baahiyaha gaarka ah ee Pinterest, waxaan soo saarnay CRD-yada soo socda si ay ugu habboonaato socodka shaqada ee kala duwan:

  • Adeegga Pinterest waa adeegyo bilaa dal ah oo socday muddo dheer. Qaar badan oo ka mid ah nidaamyadayada xudunta u ah waxay ku salaysan yihiin adeegyo kala duwan.
  • PinterestJobSet waxay u qaabaysaa shaqooyinka dufcada wareegga buuxa. Xaalad caadi ah oo ku saabsan Pinterest ayaa ah in shaqooyin badan ay si isku mid ah u wadaan weel isku mid ah, iyada oo aan loo eegin hababka kale ee la midka ah.
  • PinterestCronJob waxaa si weyn loo isticmaalaa iyadoo la socota culeysyo yar yar oo xilliyeed ah. Tani waa xirmo loogu talagalay shaqada cron-ka asalka ah ee leh hababka taageerada Pinterest ee ka mas'uulka ah amniga, taraafikada, logyada iyo cabbirada.
  • PinterestDaemon waxaa ku jira kaabayaasha Daemons. Qoyskani wuu sii korayaa markaan taageero badan ku darno kooxaheena.
  • PinterestTrainingJob waxay ku fidsan tahay habka Tensorflow iyo Pytorch, taasoo bixisa taageero runtime oo la mid ah dhammaan CRD-yada kale. Maadaama Pinterest ay si firfircoon u isticmaasho Tensorflow iyo nidaamyada kale ee barashada mashiinka, waxaan haysanay sabab aan ku dhisno CRD gaar ah oo ku wareegsan.

Waxaan sidoo kale ka shaqeyneynaa PinterestStatefulSet, kaas oo dhawaan loo habeyn doono bakhaarada xogta iyo nidaamyada kale ee gobolka.

Taageerada Runtime

Marka boodhka codsigu ku socdo Kubernetes, waxay si toos ah u helaysaa shahaado si loo aqoonsado. Shahaadadan waxa loo isticmaalaa in lagu galo kaydinta sirta ah ama in lagula xidhiidho adeegyada kale mTLS. Dhanka kale, Isku xidhaha Koonteenarka Init iyo Daemon ayaa soo dejin doona dhammaan ku tiirsanaanta lagama maarmaanka ah ka hor intaysan socodsiin codsiga weelka ku jira. Marka wax walba ay diyaar noqdaan, gaariga dhinac ee taraafikada iyo Daemon waxay ka diiwaan gelin doonaan moduleka cinwaanka IP-ga ee noo ilaaliye si macaamiishu u ogaadaan. Waxaas oo dhami way shaqayn doonaan sababtoo ah moduleka shabakada ayaa la habeeyey ka hor intaan codsiga la bilaabin.

Kuwa kore waa tusaalayaal caadi ah oo taageero runtime ah ee culeyska shaqada. Noocyada kale ee culeyska shaqada ayaa laga yaabaa inay u baahdaan taageero xoogaa ka duwan, laakiin dhammaantood waxay ku yimaadaan qaab gawaadhi-geeseed-korka, heerka noode ama heerka mashiinka farsamada Daemons. Waxaan hubineynaa in waxaas oo dhan la geeyey gudaha kaabayaasha maamulka oo ay si joogto ah u socdaan codsiyada, taas oo ugu dambeyntii si weyn u yareyneysa culeyska xagga shaqada farsamada iyo taageerada macaamiisha.

Imtixaanka iyo QA

Waxaan dhisnay dhuumo tijaabo ah oo dhamaadka-ilaa-dhamaadka ah korka ka ah kaabayaasha tijaabada Kubernetes ee jira. Tijaabooyinku waxay khuseeyaan dhammaan kooxaheena. Dhuumahayagu waxa ay soo martay dib u eegis badan ka hor inta aanay ka mid noqon kooxda alaabta.

Marka lagu daro nidaamyada tijaabinta, waxaan leenahay nidaamyo kormeer iyo feejignaan kuwaas oo si joogto ah ula socda xaaladda qaybaha nidaamka, isticmaalka kheyraadka iyo tilmaamayaasha kale ee muhiimka ah, na ogeysiiya kaliya marka faragelinta bini'aadamku ay lagama maarmaan tahay.

Beddelka

Waxaan eegnay waxyaabo kale oo lagu beddelan karo ilaha gaarka ah, sida kontaroolayaasha gelitaanka isbeddelka iyo nidaamyada qaab-dhismeedka. Si kastaba ha ahaatee, dhamaantood waxay la yimaadaan caqabado hawleed oo la taaban karo, sidaa darteed waxaan dooranay wadada CRD.

Xakamaynta gelitaanka is-beddelka ah ayaa loo isticmaalay in lagu soo bandhigo gawaarida dhinac-dhaafka ah, doorsoomayaasha deegaanka, iyo taageerooyinka kale ee wakhtiga. Si kastaba ha ahaatee, waxay la kulantay dhibaatooyin kala duwan, sida ku-xidhka khayraadka iyo maaraynta meertada nolosha, halkaasoo dhibaatooyinkan oo kale aysan ka soo bixin CRD.

Fiiro gaar ah: Nidaamyada qaab-dhismeedka sida jaantusyada Helm sidoo kale si weyn ayaa loo adeegsadaa si loogu socodsiiyo codsiyada leh qaabayn la mid ah. Si kastaba ha ahaatee, codsiyadayada shaqadu aad bay u kala duwan yihiin in lagu maareeyo iyadoo la isticmaalayo habyaallo. Sidoo kale inta lagu jiro hawlgelinta joogtada ah waxaa jiri doona khaladaad aad u badan marka la isticmaalayo qaab-dhismeedka.

Shaqada soo socota

Waxaan hadda la tacaaleynaa culeys isku dhafan oo dhan dhammaan kooxahayada. Si loo taageero hababka noocaas ah ee noocyada iyo cabbirrada kala duwan, waxaan ka shaqeynaa meelaha soo socda:

  • Ururinta kooxuhu waxay u qaybiyaan codsiyo waaweyn kooxo kala duwan si loo cabbiro iyo xasilloonida.
  • Xaqiijinta xasiloonida kooxda, miisaan-yeelka iyo muuqaalka si loo abuuro isku xidhka codsiga iyo SLAs.
  • Maareynta kheyraadka iyo kootada si aysan codsiyadu isu khilaafin, waxaana la xakameynayaa baaxadda kooxda.
  • Meel cusub oo CI/CD ah oo lagu taageerayo laguna geynayo codsiyada Kubernetes.

Source: www.habr.com

Add a comment