Ƙirƙirar dandalin kubernetes akan Pinterest

Tsawon shekaru, masu amfani da Pinterest miliyan 300 sun ƙirƙiri filaye fiye da biliyan 200 akan allunan sama da biliyan 4. Don bauta wa wannan runduna ta masu amfani da babban tushen abun ciki, tashar tashar ta haɓaka dubban ayyuka, kama daga ƙananan ayyuka waɗanda ƴan CPUs za su iya sarrafa su, zuwa manyan monoliths waɗanda ke gudana akan gabaɗayan injuna na kama-da-wane. Kuma sai lokacin ya zo lokacin da idanun kamfanin suka fadi akan k8s. Me yasa "cube" yayi kyau akan Pinterest? Za ku koyi game da wannan daga fassarar wani labarin kwanan nan daga Yanar gizo na Pinterest.

Ƙirƙirar dandalin kubernetes akan Pinterest

Don haka, ɗaruruwan miliyoyin masu amfani da ɗaruruwan biliyoyin fil. Don bauta wa wannan runduna ta masu amfani da babban tushen abun ciki, mun haɓaka dubban sabis, kama daga ƙananan sabis waɗanda ƴan CPUs za su iya sarrafa su, zuwa manyan monoliths waɗanda ke gudana a kan gabaɗayan injuna masu kama-da-wane. Bugu da kari, muna da tsari iri-iri masu iya buƙatar CPU, ƙwaƙwalwar ajiya, ko samun I/O.

A cikin kiyaye wannan gidan namun daji na kayan aikin, ƙungiyar haɓaka tana fuskantar ƙalubale da dama:

  • Babu wata hanya iri ɗaya don injiniyoyi don gudanar da yanayin samarwa. Sabis na marasa jiha, ayyuka na jihohi da ayyuka a ƙarƙashin ci gaban aiki sun dogara ne akan tarin fasaha daban-daban. Wannan ya haifar da ƙirƙirar gabaɗayan kwas na horarwa ga injiniyoyi, sannan kuma yana dagula aikin ƙungiyar kayan aikin mu.
  • Masu haɓakawa tare da nasu na'urorin injina suna haifar da babban nauyi akan masu gudanar da ayyukan cikin gida. Sakamakon haka, irin waɗannan ayyuka masu sauƙi kamar sabunta OS ko AMI suna ɗaukar makonni da watanni. Wannan yana haifar da ƙara yawan aiki a cikin abubuwan da ake gani na yau da kullun.
  • Wahala wajen ƙirƙirar kayan aikin sarrafa ababen more rayuwa na duniya akan abubuwan da ake dasu. Lamarin ya kara dagulewa ganin cewa gano masu injina ba abu ne mai sauki ba. Wato, ba mu sani ba ko za a iya fitar da wannan ƙarfin cikin aminci don yin aiki a wasu sassan kayan aikin mu.

Tsarin kaɗe-kaɗen kwantena hanya ce ta haɗa sarrafa nauyin aiki. Suna buɗe kofa don haɓaka saurin haɓakawa da sauƙaƙe sarrafa abubuwan more rayuwa, tunda duk albarkatun da ke cikin aikin ana sarrafa su ta hanyar tsarin tsakiya guda ɗaya.

Ƙirƙirar dandalin kubernetes akan Pinterest

Hoto 1: Abubuwan abubuwan da suka fi dacewa da kayan aiki (abin dogaro, haɓaka haɓakawa, da inganci).

Teamungiyar Platform Management Platform a Pinterest sun gano K8s a cikin 2017. A farkon rabin 2017, mun rubuta mafi yawan iyawar samar da mu, gami da API da duk sabar gidan yanar gizon mu. Bayan haka, mun gudanar da cikakken kimantawa na tsare-tsare daban-daban don tsara hanyoyin magance kwantena, gina gungu da aiki tare da su. Zuwa ƙarshen 2017, mun yanke shawarar amfani da Kubernetes. Ya kasance mai sauƙin sassauƙa kuma ana samun tallafi sosai a cikin al'ummar masu haɓakawa.

Ya zuwa yau, mun gina namu kayan aikin taya na gungu dangane da Kops kuma mun ƙaura abubuwan abubuwan more rayuwa kamar sadarwar sadarwar, tsaro, awo, shiga, sarrafa ainihi, da zirga-zirga zuwa Kubernetes. Mun kuma aiwatar da tsarin ƙirar kayan aiki don albarkatun mu, wanda rikitarwarsa ke ɓoye daga masu haɓakawa. Yanzu mun mai da hankali kan tabbatar da kwanciyar hankali na gungu, daidaita shi da haɗa sabbin abokan ciniki.

Kubernetes: Hanyar Pinterest

Farawa tare da Kubernetes a sikelin Pinterest a matsayin dandalin da injiniyoyinmu za su so ya zo tare da kalubale masu yawa.

A matsayinmu na babban kamfani, mun saka hannun jari sosai a kayan aikin more rayuwa. Misalai sun haɗa da kayan aikin tsaro waɗanda ke sarrafa sarrafa takaddun shaida da rarraba maɓalli, abubuwan sarrafa zirga-zirga, tsarin gano sabis, abubuwan gani, da kayan aikin log da awo. An tattara duk wannan saboda dalili: mun bi ta hanyar al'ada ta gwaji da kuskure, sabili da haka muna so mu haɗa duk wannan kayan aiki a cikin sabon kayan aiki a kan Kubernetes maimakon sake farfado da tsohuwar dabaran a kan sabon dandamali. Wannan hanyar gaba ɗaya ta sauƙaƙa ƙaura, tunda duk tallafin aikace-aikacen ya riga ya wanzu kuma baya buƙatar ƙirƙira daga karce.

A gefe guda, samfuran hasashen kaya a cikin Kubernetes kanta (kamar turawa, ayyuka, da saitin Daemon) ba su isa ga aikinmu ba. Waɗannan batutuwan amfani da su manyan shingaye ne don ƙaura zuwa Kubernetes. Misali, mun ji masu haɓaka sabis suna kokawa game da ɓacewar saitunan shiga ko kuskure. Mun kuma ci karo da yin amfani da injunan samfuri ba daidai ba, lokacin da aka ƙirƙiri ɗaruruwan kwafi tare da ƙayyadaddun bayanai da ɗawainiya iri ɗaya, wanda ya haifar da matsalolin ɓarna na mafarki.

Hakanan yana da matukar wahala a kula da iri daban-daban a cikin tari iri ɗaya. Ka yi la'akari da rikitarwa na goyon bayan abokin ciniki idan kana buƙatar yin aiki a lokaci ɗaya a cikin nau'i-nau'i masu yawa na yanayin lokaci guda, tare da duk matsalolin su, kwari da sabuntawa.

Abubuwan Masu Amfani da Pinterest da Masu Gudanarwa

Don sauƙaƙa wa injiniyoyinmu don aiwatar da Kubernetes, kuma don sauƙaƙa da haɓaka kayan aikinmu, mun haɓaka ma'anar albarkatu na al'ada (CRDs).

CRDs suna ba da ayyuka masu zuwa:

  1. Haɗa albarkatun Kubernetes na asali daban-daban domin su yi aiki azaman nauyin aiki ɗaya. Misali, albarkatun PinterestService sun haɗa da turawa, sabis ɗin shiga, da taswirar daidaitawa. Wannan yana ba masu haɓakawa damar kada su damu da kafa DNS.
  2. Aiwatar da tallafin aikace-aikacen da ake buƙata. Mai amfani yana buƙatar mayar da hankali kawai akan ƙayyadaddun kwantena bisa ga dabarun kasuwancin su, yayin da mai kula da CRD ke aiwatar da duk mahimman kwantena init, masu canjin yanayi da ƙayyadaddun kwafsa. Wannan yana ba da matakan kwanciyar hankali daban-daban ga masu haɓakawa.
  3. Masu kula da CRD kuma suna gudanar da tsarin rayuwar albarkatun ƙasa da kuma inganta samun gyara kuskure. Wannan ya haɗa da daidaita abubuwan da ake so da ainihin ƙayyadaddun ƙayyadaddun bayanai, sabunta matsayin CRD da kiyaye rajistan ayyukan, da ƙari. Idan ba tare da CRD ba, za a tilasta wa masu haɓakawa sarrafa albarkatu da yawa, wanda kawai zai ƙara yuwuwar kuskure.

Ga misali na PinterestService da albarkatu na ciki wanda mai sarrafa mu ke sarrafawa:

Ƙirƙirar dandalin kubernetes akan Pinterest

Kamar yadda kuke gani a sama, don tallafawa kwantena na al'ada muna buƙatar haɗa kwandon init da ƙari da yawa don samar da tsaro, ganuwa, da zirga-zirgar hanyar sadarwa. Bugu da ƙari, mun ƙirƙiri samfuran taswirar daidaitawa da aiwatar da tallafi don samfuran PVC don ayyukan batch, da kuma bin diddigin mahalli da yawa don bin diddigin ainihi, amfani da albarkatu, da tarin shara.

Yana da wuya a yi tunanin cewa masu haɓakawa za su so su rubuta waɗannan fayilolin daidaitawa da hannu ba tare da tallafin CRD ba, balle a ci gaba da kiyayewa da kuma gyara saitunan.

Gudun aiki na tura aikace-aikacen

Ƙirƙirar dandalin kubernetes akan Pinterest

Hoton da ke sama yana nuna yadda ake tura albarkatun al'ada na Pinterest zuwa gungu na Kubernetes:

  1. Masu haɓakawa suna hulɗa tare da gungu na Kubernetes ta hanyar CLI da mai amfani.
  2. Kayan aikin CLI/UI suna dawo da fayilolin YAML tsarin tafiyar da aiki da sauran kaddarorin gini (ID guda ɗaya) daga Kayan aikin fasaha sannan a ƙaddamar da su zuwa Sabis ɗin ƙaddamar da Aiki. Wannan matakin yana tabbatar da cewa nau'ikan samarwa kawai ana isar da su zuwa gungu.
  3. JSS kofa ce don dandamali daban-daban, gami da Kubernetes. Anan an tabbatar da mai amfani, an ba da ƙididdiga kuma an duba ƙayyadaddun tsarin CRD ɗin mu.
  4. Bayan duba CRD a gefen JSS, ana aika bayanin zuwa dandalin k8s API.
  5. Mai sarrafa mu na CRD yana lura da abubuwan da suka faru akan duk albarkatun mai amfani. Yana jujjuya CRs zuwa albarkatun k8s na asali, yana ƙara samfuran da ake buƙata, saita sauye-sauyen yanayi masu dacewa, kuma yana yin wasu ayyukan tallafi don tabbatar da aikace-aikacen mai amfani da kwantena suna da isassun tallafin kayayyakin more rayuwa.
  6. Mai sarrafa CRD sannan ya ba da bayanan da aka karɓa zuwa Kubernetes API domin mai tsarawa zai iya sarrafa su kuma a saka shi cikin samarwa.

Примечание: An ƙirƙiri wannan aikin aikin da aka riga aka saki na ƙaddamarwa don masu amfani da farko na sabon dandalin k8s. A halin yanzu muna kan aiwatar da gyaran wannan tsari don haɗawa da sabon CI/CD ɗin mu. Wannan yana nufin cewa ba za mu iya gaya muku duk abin da ya shafi Kubernetes ba. Muna sa ran raba abubuwan da muke da su da kuma ci gaban ƙungiyar a wannan jagorar a cikin gidan yanar gizon mu na gaba, "Gina dandalin CI/CD don Pinterest."

Nau'in albarkatu na musamman

Dangane da takamaiman bukatun Pinterest, mun haɓaka CRDs masu zuwa don dacewa da gudanawar aiki daban-daban:

  • PinterestService sabis ne marasa jiha waɗanda ke gudana na dogon lokaci. Yawancin tsarin tsarin mu sun dogara ne akan saitin irin waɗannan ayyuka.
  • PinterestJobSet ya ƙirƙira cikakken ayyukan batch na sake zagayowar. Yanayin gama gari akan Pinterest shine ayyuka da yawa suna gudanar da kwantena iri ɗaya a layi daya, ba tare da la'akari da wasu matakai masu kama ba.
  • Ana amfani da PinterestCronJob sosai tare da ƙananan lodi na lokaci-lokaci. Wannan abin rufewa ne don aikin cron na asali tare da hanyoyin tallafi na Pinterest waɗanda ke da alhakin tsaro, zirga-zirga, rajistan ayyukan da awo.
  • PinterestDaemon ya haɗa da kayan aikin Daemons. Wannan iyali yana ci gaba da girma yayin da muke ƙara ƙarin tallafi a gungu na mu.
  • PinterestTrainingJob ya haɓaka zuwa tsarin Tensorflow da Pytorch, yana ba da matakin tallafi iri ɗaya kamar sauran CRDs. Tunda Pinterest yana amfani da Tensorflow da sauran tsarin koyon injin, muna da dalili don gina CRD daban a kusa da su.

Har ila yau, muna aiki akan PinterestStatefulSet, wanda nan ba da jimawa ba za a daidaita shi don wuraren ajiyar bayanai da sauran tsarukan yanayi.

Goyan bayan lokacin gudu

Lokacin da kwas ɗin aikace-aikacen ke gudana akan Kubernetes, yana karɓar takaddun shaida ta atomatik don gano kansa. Ana amfani da wannan takardar shaidar don samun damar ma'ajiyar sirri ko don sadarwa tare da wasu ayyuka ta mTLS. A halin yanzu, Configurator Init Configurator da Daemon za su zazzage duk abubuwan da suka dace kafin gudanar da aikace-aikacen kwantena. Lokacin da komai ya shirya, motar gefen zirga-zirga da Daemon za su yi rajistar adireshin IP na module tare da Zookeeper don abokan ciniki su iya gano shi. Duk wannan zai yi aiki saboda an saita tsarin cibiyar sadarwa kafin a ƙaddamar da aikace-aikacen.

Abubuwan da ke sama misali ne na yau da kullun na tallafi na lokacin gudu don ayyukan aiki. Sauran nau'ikan kayan aiki na iya buƙatar tallafi daban-daban, amma duk sun zo cikin nau'ikan motocin gefe-gefe, matakin node ko matakin na'ura mai kama da Daemons. Mun tabbatar da cewa duk wannan an tura shi a cikin kayan aikin gudanarwa kuma yana da daidaituwa a cikin aikace-aikacen aikace-aikace, wanda a ƙarshe ya rage nauyin nauyi dangane da aikin fasaha da goyon bayan abokin ciniki.

Gwaji da QA

Mun gina bututun gwajin ƙarshen-zuwa-ƙarshe a saman abubuwan gwajin Kubernetes da ake da su. Waɗannan gwaje-gwajen sun shafi duk rukunin mu. Bututun mu ya yi bita da yawa kafin ya zama wani ɓangare na gunkin samfur.

Baya ga tsarin gwaji, muna da tsarin sa ido da faɗakarwa waɗanda ke sa ido akai-akai game da matsayin abubuwan haɗin tsarin, amfani da albarkatu da sauran mahimman alamomi, suna sanar da mu kawai lokacin shigar ɗan adam ya zama dole.

Sauran hanyoyin

Mun duba wasu hanyoyin zuwa albarkatun al'ada, kamar masu sarrafa damar maye gurbi da tsarin samfuri. Koyaya, dukkansu suna zuwa tare da ƙalubalen aiki, don haka mun zaɓi hanyar CRD.

An yi amfani da mai sarrafa shigar da maye don gabatar da motocin gefe, masu canjin yanayi, da sauran tallafin lokacin aiki. Duk da haka, ta fuskanci matsaloli daban-daban, kamar haɗakar albarkatu da gudanar da rayuwa, inda irin waɗannan matsalolin ba su tasowa a cikin CRD.

Note: Hakanan ana amfani da tsarin samfuri kamar taswirar Helm don gudanar da aikace-aikace masu irin wannan jeri. Koyaya, aikace-aikacen aikin mu sun bambanta da yawa don a sarrafa su ta amfani da samfuri. Hakanan yayin ci gaba da turawa za a sami kurakurai da yawa yayin amfani da samfuri.

Aiki mai zuwa

A halin yanzu muna ma'amala da wani nau'i mai gauraya a duk gungu na mu. Don tallafawa irin waɗannan matakai na nau'ikan nau'ikan da girma dabam, muna aiki a cikin waɗannan yankuna:

  • Tarin gungu yana rarraba manyan aikace-aikace a cikin gungu daban-daban don daidaitawa da kwanciyar hankali.
  • Tabbatar da kwanciyar hankali tari, haɓakawa da ganuwa don ƙirƙirar haɗin aikace-aikacen da SLAs.
  • Sarrafa albarkatu da ƙididdiga don kada aikace-aikacen su yi rikici da juna, kuma ana sarrafa ma'aunin gungu a ɓangarenmu.
  • Sabon dandalin CI/CD don tallafawa da tura aikace-aikace akan Kubernetes.

source: www.habr.com

Add a comment