Mamorona sehatra kubernetes amin'ny Pinterest

Nandritra ny taona maro, ireo mpampiasa Pinterest 300 tapitrisa dia namorona pins 200 lavitrisa mahery amin'ny tabilao maherin'ny 4 lavitrisa. Mba hanompoana an'ity tafik'ireo mpampiasa sy votoaty midadasika ity, dia namolavola tolotra an'arivony ny vavahadin-tserasera, manomboka amin'ny microservices izay azon'ny CPU vitsivitsy, ka hatramin'ny monolith goavambe izay mandeha amin'ny andiana milina virtoaly iray manontolo. Ary avy eo dia tonga ny fotoana nianjera tamin'ny k8s ny mason'ny orinasa. Nahoana no tsara tarehy tao amin'ny Pinterest ny “cube”? Hianatra momba izany ianao avy amin'ny fandikanay lahatsoratra vao haingana avy amin'ny bilaogy Pinterest engineering.

Mamorona sehatra kubernetes amin'ny Pinterest

Noho izany, mpampiasa an-jatony tapitrisa sy pin an-jatony tapitrisa. Mba hanompoana an'ity tafiky ny mpampiasa ity sy ny votoaty midadasika, dia namolavola tolotra an'arivony izahay, manomboka amin'ny microservice izay azo karakarain'ny CPU vitsivitsy, ka hatramin'ny monolith goavambe izay mandeha amin'ny andiana milina virtoaly manontolo. Fanampin'izany, manana rafitra isan-karazany izay mety mitaky CPU, fahatsiarovana, na fidirana I/O ihany koa izahay.

Amin'ny fitazonana ity valan-javaboary ity dia miatrika fanamby maromaro ny ekipan'ny fampandrosoana:

  • Tsy misy fomba fanamiana ho an'ny injeniera amin'ny fitantanana tontolo famokarana. Ny serivisy tsy misy fanjakana, ny serivisy ary ny tetikasa eo amin'ny fampandrosoana mavitrika dia mifototra amin'ny antontam-teknolojia hafa tanteraka. Izany dia nitarika ho amin'ny famoronana fampianarana iray manontolo ho an'ny injeniera, ary nanasarotra mafy ny asan'ny ekipan'ny fotodrafitrasa.
  • Ny mpamorona miaraka amin'ny andiana milina virtoaly manokana dia miteraka enta-mavesatra lehibe amin'ny mpitantana anatiny. Vokatr'izany dia maharitra herinandro sy volana ny asa tsotra toy ny fanavaozana ny OS na AMI. Izany dia mitarika amin'ny fitomboan'ny enta-mavesatra amin'ny toe-javatra toa tena isan'andro.
  • Fahasarotana amin'ny famoronana fitaovana fitantanana fotodrafitrasa eran-tany ankoatra ny vahaolana efa misy. Ny toe-javatra dia vao mainka sarotra noho ny zava-misy fa ny fitadiavana ny tompon'ny milina virtoaly dia tsy mora. Izany hoe, tsy fantatray raha azo alaina soa aman-tsara io fahafaha-manao io mba hiasa any amin'ny faritra hafa amin'ny fotodrafitrasa misy antsika.

Ny rafitra orkestra kaontenera dia fomba iray hampiraisana ny fitantanana ny enta-mavesatra. Izy ireo dia manokatra ny varavarana ho amin'ny fampitomboana ny hafainganan'ny fampandrosoana ary manatsotra ny fitantanana ny fotodrafitrasa, satria ny loharanon-karena rehetra tafiditra ao amin'ny tetikasa dia tantanin'ny rafitra iray foibe.

Mamorona sehatra kubernetes amin'ny Pinterest

Sary 1: Laharam-pahamehana amin'ny fotodrafitrasa (azo itokisana, famokarana vokatra ary fahombiazana).

Ny ekipa Cloud Management Platform ao amin'ny Pinterest dia nahita K8s tamin'ny taona 2017. Tamin'ny tapany voalohany tamin'ny taona 2017, efa voarakitra an-tsoratra ny ankamaroan'ny fahaiza-mamokatray izahay, anisan'izany ny API sy ny mpizara tranonkala rehetra. Taorian'izay dia nanao fanombanana lalina momba ny rafitra isan-karazany izahay amin'ny famolavolana vahaolana amin'ny kaontenera, fananganana cluster ary fiaraha-miasa amin'izy ireo. Tamin'ny faran'ny taona 2017, nanapa-kevitra ny hampiasa Kubernetes izahay. Izy io dia tena malefaka ary notohanana betsaka tao amin'ny vondrom-piarahamonina developer.

Hatramin'izao, nanangana fitaovana fanamoriana cluster manokana mifototra amin'ny Kops izahay ary nifindra monina ireo singa fotodrafitrasa efa misy toy ny tambajotra, fiarovana, metrika, logging, fitantanana ny maha-izy azy, ary fifamoivoizana mankany Kubernetes. Nametraka rafitra modely enta-mavesatra ho an'ny loharanonay ihany koa izahay, izay miafina amin'ny mpamorona ny fahasarotana. Ankehitriny izahay dia mifantoka amin'ny fiantohana ny fahamarinan'ny cluster, ny fampitomboana azy ary ny fampifandraisana ireo mpanjifa vaovao.

Kubernetes: Ny fomba Pinterest

Ny fanombohana miaraka amin'ny Kubernetes amin'ny haavon'ny Pinterest ho sehatra izay tian'ny injeniera dia tonga niaraka tamin'ny fanamby maro.

Amin'ny maha-orinasa lehibe anay dia nametraka vola be tamin'ny fitaovana fotodrafitrasa izahay. Ohatra amin'izany ny fitaovana fiarovana izay mitantana ny fanodinana taratasy fanamarinana sy ny fizarana fanalahidy, ny singa fanaraha-maso ny fifamoivoizana, ny rafi-pahitana serivisy, ny singa hita maso, ary ny singa fandefasana log sy metrika. Izany rehetra izany dia nangonina noho ny antony iray: nandeha tamin'ny lalan'ny fitsapana sy ny fahadisoana mahazatra izahay, ary noho izany dia naniry ny hampiditra ireo fitaovana rehetra ireo amin'ny fotodrafitrasa vaovao ao amin'ny Kubernetes izahay fa tsy hamerina ny kodiarana taloha amin'ny sehatra vaovao. Ity fomba fiasa ity dia nanatsotra ny fifindra-monina amin'ny ankapobeny, satria efa misy ny fanohanan'ny fampiharana rehetra ary tsy mila noforonina hatrany am-boalohany.

Etsy ankilany, tsy ampy ho an'ny tetikasantsika ny maodely vinavina momba ny enta-mavesatra ao amin'ny Kubernetes (toy ny fametrahana, asa ary Daemon set). Ireo olan'ny fampiasana ireo dia sakana lehibe amin'ny fifindran'ny Kubernetes. Ohatra, renay ireo mpamorona serivisy mitaraina momba ny tsy fisian'ny firafitry ny fidirana na diso. Nifanena taminay ihany koa ny fampiasana tsy ara-drariny ny maotera môdely, rehefa noforonina ny kopia an-jatony miaraka amin'ny famaritana sy ny asa mitovy, izay niteraka olana amin'ny debugging nofy ratsy.

Sarotra be ihany koa ny nitazona dikan-teny samihafa amin'ny cluster iray ihany. Alaivo sary an-tsaina ny fahasarotan'ny fanohanan'ny mpanjifa raha toa ka mila miasa miaraka amin'ny dikan-teny maro amin'ny tontolon'ny fotoam-pivoriana iray ihany ianao, miaraka amin'ny olan'izy ireo, ny bug ary ny fanavaozana.

Pinterest Properties mpampiasa sy mpanara-maso

Mba hanamora ny fampiharana ny Kubernetes ho an'ny injenieranay, sy hanatsorana sy hanafainganana ny fotodrafitrasanay, dia namolavola famaritana manokana momba ny loharanon-karena (CRD) izahay.

Ny CRD dia manome ireto fiasa manaraka ireto:

  1. Manambatra ny loharanon-karena Kubernetes teratany samihafa mba hiasa toy ny enta-mavesatra tokana. Ohatra, ny loharanon'ny PinterestService dia misy fametrahana, serivisy fidirana ary sarintany fanaingoana. Izany dia mamela ny mpamorona tsy hanahy momba ny fametrahana DNS.
  2. Ampiharo ny fanohanana fampiharana ilaina. Ny mpampiasa dia tsy maintsy mifantoka afa-tsy amin'ny fanondroana kaontenera araka ny lojikan'ny orinasany, raha toa kosa ny mpanara-maso CRD dia mampihatra ny kaontenera init rehetra ilaina, ny fari-piainan'ny tontolo iainana ary ny famaritana pod. Izany dia manome ambaratonga fampiononana tena hafa ho an'ny mpamorona.
  3. Ny mpanara-maso CRD ihany koa dia mitantana ny fiainan'ny loharanon-karena voajanahary ary manatsara ny fisian'ny debug. Tafiditra ao anatin'izany ny fampihavanana ireo fepetra tiana sy tena izy, ny fanavaozana ny sata CRD ary ny fitazonana ny diarin'ny hetsika, sy ny maro hafa. Raha tsy misy ny CRD, dia voatery mitantana loharano maro ny mpamorona, izay hampitombo ny mety hisian'ny fahadisoana.

Ity misy ohatra iray amin'ny PinterestService sy loharano anatiny izay tantanin'ny mpanara-maso anay:

Mamorona sehatra kubernetes amin'ny Pinterest

Araka ny hitanao etsy ambony, mba hanohanana kaontenera mahazatra dia mila mampiditra container init sy add-ons maromaro isika mba hanomezana fiarovana, fahitana ary fifamoivoizana amin'ny tambajotra. Ho fanampin'izany, namorona môdely sarintany fanamafisam-peo izahay ary nampihatra fanohanana ny maodely PVC ho an'ny asa andiany, ary koa ny fanaraha-maso ny fari-piainan'ny tontolo iainana maro mba hanarahana ny maha-izy azy, ny fanjifana loharanon-karena ary ny fanangonana fako.

Sarotra ny maka sary an-tsaina fa ny mpamorona dia te hanoratra amin'ny tanana ireo rakitra fanamafisana ireo raha tsy misy fanohanana CRD, mainka fa ny fikojakojana bebe kokoa sy ny debug ny fanitsiana.

Fampiharana fampiharana ny workflow

Mamorona sehatra kubernetes amin'ny Pinterest

Ny sary etsy ambony dia mampiseho ny fomba fametrahana loharano manokana Pinterest amin'ny kluster Kubernetes:

  1. Mifandray amin'ny cluster Kubernetes amin'ny alàlan'ny CLI sy ny interface interface ny mpamorona.
  2. Ny fitaovan'ny CLI/UI dia maka ny fisie YAML fichier workflow sy ny fananana fananganana hafa (ID version mitovy) avy amin'ny Artifactory ary avy eo dia alefa any amin'ny Service Submission Service. Ity dingana ity dia miantoka fa ny dikan-teny famokarana ihany no alefa any amin'ny cluster.
  3. JSS dia vavahadin'ny sehatra isan-karazany, anisan'izany ny Kubernetes. Eto dia voamarina ny mpampiasa, avoaka ny quota ary voazaha amin'ny ampahany ny fanamafisana ny CRD.
  4. Rehefa avy nanamarina ny CRD amin'ny lafiny JSS dia alefa any amin'ny k8s platform API ny fampahalalana.
  5. Ny mpanara-maso ny CRD dia manara-maso ny hetsika amin'ny loharanon'ny mpampiasa rehetra. Manova ny CR ho loharano k8s teratany izy io, manampy ireo maody ilaina, mametraka ny fari-piainan'ny tontolo iainana mifanaraka amin'izany, ary manao asa fanohanana hafa mba hahazoana antoka fa manana fanohanana fotodrafitrasa ampy ny fampiharana mpampiasa container.
  6. Mampita ny angon-drakitra voaray amin'ny Kubernetes API avy eo ny mpanara-maso CRD mba ho azon'ny mpandrindra ny fandaharam-potoana ary apetraka amin'ny famokarana.

fanamarihana: Natao ho an'ireo mpampiasa voalohany amin'ny sehatra k8s vaovao ity fizotry ny asa mialoha ny famoahana ity. Eo am-panadiovana ity dingana ity izahay amin'izao fotoana izao mba hampidirana tanteraka amin'ny CI/CD vaovao. Midika izany fa tsy afaka milaza aminao izay rehetra mifandraika amin'ny Kubernetes izahay. Tsy andrinay ny hizara ny traikefanay sy ny fandrosoan'ny ekipa amin'io lalana io amin'ny lahatsoratra bilaogy manaraka, “Manangana sehatra CI/CD ho an'ny Pinterest.”

Karazana loharanon-karena manokana

Mifototra amin'ny filan'ny Pinterest manokana, namolavola ireto CRD manaraka ireto izahay mba hifanaraka amin'ny fizotran'ny asa samihafa:

  • PinterestService dia serivisy tsy misy fanjakana izay efa niasa hatry ny ela. Maro amin'ireo rafitra fototra eto amintsika no mifototra amin'ny andiana tolotra toy izany.
  • PinterestJobSet dia manao modely amin'ny asa andiany feno. Ny toe-javatra mahazatra ao amin'ny Pinterest dia ny fisian'ny asa maro mitantana fitoeran-javatra mitovy, na inona na inona dingana mitovy amin'izany.
  • PinterestCronJob dia ampiasaina betsaka miaraka amin'ny entana kely tsindraindray. Ity dia fonosana ho an'ny asa cron teratany miaraka amin'ny rafitra fanohanana Pinterest izay tompon'andraikitra amin'ny fiarovana, fifamoivoizana, diary ary metrika.
  • PinterestDaemon dia ahitana Daemons fotodrafitrasa. Mitombo hatrany ity fianakaviana ity rehefa manampy fanohanana bebe kokoa amin'ny vondronay izahay.
  • PinterestTrainingJob dia miitatra amin'ny fizotran'ny Tensorflow sy Pytorch, manome ny haavon'ny fanohanan'ny fotoana fiasana mitovy amin'ny CRD hafa rehetra. Satria mampiasa mavitrika Tensorflow sy rafitra fianarana milina hafa i Pinterest, dia nanana antony hananganana CRD mitokana manodidina azy ireo izahay.

Miasa ao amin'ny PinterestStatefulSet ihany koa izahay, izay hamboarina tsy ho ela ho an'ny trano fanatobiana angon-drakitra sy rafitra ara-panjakana hafa.

Fanohanana ny fotoana fandehanana

Rehefa mandeha amin'ny Kubernetes ny pod fampiharana iray, dia mahazo taratasy fanamarinana ho azy izy io. Ity taratasy fanamarinana ity dia ampiasaina hidirana amin'ny fitehirizana miafina na hifandraisana amin'ny serivisy hafa amin'ny alàlan'ny mTLS. Mandritra izany fotoana izany, ny Container Init Configurator sy Daemon dia hisintona ny fiankinan-doha ilaina rehetra alohan'ny hampandehanana ny fampiharana containerized. Rehefa vonona ny zava-drehetra, dia hanoratra ny adiresy IP an'ny mody miaraka amin'ny Zookeeper anay ny sidecar sy Daemon mba hahafahan'ny mpanjifa mahita izany. Hahomby izany rehetra izany satria efa namboarina talohan'ny nanombohan'ny fampiharana ny maody tambajotra.

Ireo etsy ambony ireo dia ohatra mahazatra amin'ny fanohanan'ny fotoana fiasana ho an'ny enta-mavesatra. Ny karazana enta-mavesatra hafa dia mety mitaky fanohanana hafa kely, fa izy rehetra dia tonga amin'ny endrika sidecars pod-level, daemons level-node na milina virtoaly. Izahay dia miantoka fa izany rehetra izany dia apetraka ao anatin'ny fotodrafitrasa fitantanana ary mifanaraka amin'ny fampiharana, izay mampihena be ny enta-mavesatra amin'ny lafiny ara-teknika sy ny fanohanan'ny mpanjifa.

Fitsapana sy QA

Nanangana fantsom-panadinana faran'ny farany izahay teo ambonin'ny fotodrafitrasa andrana Kubernetes efa misy. Ireo fitsapana ireo dia mihatra amin'ny cluster rehetra. Nandalo fanavaozana maro ny fantsona anay talohan'ny nahatongavany ho isan'ny vondron'ny vokatra.

Ho fanampin'ny rafitra fitsapana, manana rafitra fanaraha-maso sy fanairana izay manara-maso tsy tapaka ny satan'ny singa rafitra, ny fanjifana loharano ary ny tondro manan-danja hafa, mampahafantatra antsika raha tsy ilaina ny fitsabahan'ny olombelona.

safidy

Nijery safidy hafa ho an'ny loharano mahazatra izahay, toy ny fanaraha-maso ny fidirana amin'ny mutation sy ny rafitra môdely. Na izany aza, izy rehetra dia tonga miaraka amin'ny fanamby lehibe amin'ny fampandehanana, ka nifidy ny lalana CRD izahay.

Ny fanaraha-maso ny fidirana amin'ny mutational dia nampiasaina hampidirana sidecars, fari-piainan'ny tontolo iainana, ary fanohanana hafa amin'ny fandehanana. Na izany aza, niatrika olana isan-karazany izy io, toy ny fatoran'ny loharanon-karena sy ny fitantanana ny tsingerin'ny fiainana, izay tsy misy olana toy izany ao amin'ny CRD.

Fanamarihana: Ny rafitra maodely toy ny sarin'ny Helm dia ampiasaina betsaka amin'ny fampandehanana rindranasa mitovy amin'izany. Na izany aza, ny rindranasa momba ny asantsika dia tena samihafa ka tsy azo fehezina amin'ny alàlan'ny môdely. Mandritra ny fandefasana mitohy dia hisy lesoka be loatra rehefa mampiasa môdely.

Asa ho avy

Miatrika enta-mavesatra mifangaro amin'ny cluster rehetra izahay amin'izao fotoana izao. Mba hanohanana ireo dingana amin'ny karazana sy habe samihafa dia miasa amin'ireto sehatra manaraka ireto izahay:

  • Ny fitambarana kluster iray dia mizara fampiharana lehibe amin'ny kluster isan-karazany ho an'ny scalability sy ny fahamarinan-toerana.
  • Miantoka ny fahamarinan'ny cluster, ny scalability ary ny fahitana mba hamoronana fifandraisana amin'ny fampiharana sy SLA.
  • Mitantana ny loharanon-karena sy ny quota mba tsy hifandona ny fampiharana, ary ny halehiben'ny cluster dia fehezinay.
  • Sehatra CI/CD vaovao hanohanana sy hametrahana rindranasa amin'ny Kubernetes.

Source: www.habr.com

Add a comment