Te hanga i te papaaa kubernetes i runga i Pinterest

I roto i nga tau, 300 miriona nga kaiwhakamahi Pinterest kua hanga neke atu i te 200 piriona pine ki runga ake i te 4 piriona papa. Hei mahi i tenei ope o nga kaiwhakamahi me te papa ihirangi nui, kua whakawhanakehia e te tomokanga nga mano o nga ratonga, mai i nga ratonga miihini ka taea te whakahaere e etahi PTM, ki nga monoliths nui e rere ana i runga i te katoa o nga miihini mariko. Na ka tae mai te wa ka hinga te titiro a te kamupene ki runga i nga k8s. He aha te ahua pai o te "cube" ki Pinterest? Ka ako koe mo tenei mai i ta maatau whakamaoritanga o tetahi tuhinga tata mai blog Pinterest Hangarau.

Te hanga i te papaaa kubernetes i runga i Pinterest

Na, rau miriona o nga kaiwhakamahi me nga rau piriona pine. Hei mahi i tenei ope o nga kaiwhakamahi me te turanga ihirangi nui, kua whakawhanakehia e matou nga mano o nga ratonga, mai i nga ratonga miihini ka taea te whakahaere e etahi PTM, ki nga monolith nui e rere ana i runga i nga waka katoa o nga miihini mariko. I tua atu, he maha nga momo anga e hiahia ana pea ki te PTM, te mahara, te uru I/O ranei.

I roto i te pupuri i tenei whare kararehe o nga taputapu, he maha nga wero e pa ana ki te roopu whanaketanga:

  • Kaore he huarahi rite mo nga miihini ki te whakahaere i tetahi taiao whakaputa. Ko nga ratonga kore whenua, nga ratonga Stateful me nga kaupapa kei te whanake kaha kei runga i nga taapae hangarau rereke. Na tenei i hanga he akoranga whakangungu katoa mo nga miihini, me te tino whakararu i nga mahi a to taatau roopu hangahanga.
  • Ko nga kaiwhakawhanake me o raatau ake miihini mariko ka hanga he taumahatanga nui ki nga kaiwhakahaere o roto. Ko te mutunga, ko nga mahi ngawari penei i te whakahou i te OS me te AMI ka roa nga wiki me nga marama. Ma tenei ka piki ake nga mahi i roto i nga ahuatanga o ia ra.
  • He uaua ki te hanga taputapu whakahaere hanganga o te ao ki runga ake i nga otinga o naianei. Ko te ahuatanga he uaua ake na te mea ko te rapu i nga rangatira o nga miihini mariko ehara i te mea ngawari. Arā, kaore matou i te mohio mena ka taea te tango i tenei kaha ki te whakahaere i etahi atu waahanga o a maatau hanganga.

Ko nga punaha whakahaere ipu he huarahi ki te whakakotahi i te whakahaere kawenga mahi. Ka whakatuwherahia e ratou te kuaha ki te whakapiki ake i te tere whanaketanga me te ngawari ki te whakahaere i nga hanganga, na te mea ko nga rauemi katoa e uru ana ki roto i te kaupapa e whakahaerehia ana e te punaha kotahi.

Te hanga i te papaaa kubernetes i runga i Pinterest

Whakaahua 1: Nga kaupapa matua (te pono, te hua o te kaiwhakawhanake, me te pai).

I kitea e te roopu Cloud Management Platform i Pinterest nga K8 i te tau 2017. I te haurua tuatahi o te tau 2017, kua tuhia e matou te nuinga o o matou kaha whakangao, tae atu ki te API me o maatau paetukutuku katoa. Muri iho, i whakahaerehia e matou he tino aromatawai mo nga momo punaha mo te whakarite otinga ipu, te hanga tautau me te mahi tahi. I te mutunga o te tau 2017, i whakatau matou ki te whakamahi Kubernetes. He tino ngawari me te tautoko whanui i roto i te hapori kaiwhakawhanake.

I tenei wa, kua hanga e matou a matou ake taputapu huinga huinga i runga i nga Kops me te heke i nga waahanga hanganga o naianei penei i te whatunga, te haumarutanga, te ine, te takiuru, te whakahaere tuakiri, me te hokohoko ki Kubernetes. I whakatinanahia ano e matou he punaha whakatauira taumaha mo a maatau rauemi, ko te uaua o enei mea ka huna mai i nga kaihanga. Inaianei kei te aro nui matou ki te whakarite i te pumau o te kahui, te whakanui me te hono i nga kaihoko hou.

Kubernetes: Te Ara Pinterest

Ko te tiimata me te Kubernetes i te tauine o Pinterest hei turanga e paingia ana e o maatau miihini he maha nga wero.

I te mea he kamupene nui, kua whakapau kaha matou ki nga taputapu hanganga. Ko nga tauira ko nga taputapu haumaru e whakahaere ana i te tukatuka tiwhikete me te tohatoha matua, nga waahanga whakahaere waka, nga punaha rapu ratonga, nga waahanga tirohanga, me nga waahanga tukunga me te inenga. Ko enei katoa i kohia mo tetahi take: i haere matou i roto i te ara noa o te whakamatautau me te he, na reira i hiahia matou ki te whakauru i enei taputapu katoa ki roto i nga hanganga hou i runga i Kubernetes, kaua ki te whakahou i te wira tawhito i runga i te papaaho hou. Na tenei huarahi i ngawari te heke, na te mea kua noho kee nga tautoko tono katoa, kaore e tika kia hanga mai i te wahanga.

I tetahi atu taha, ko nga tauira matapae uta i roto i a Kubernetes ake (penei i nga whakatakotoranga, nga mahi, me nga huinga Daemon) kaore e ranea mo to maatau kaupapa. Ko enei take whaihua he aukati nui ki te neke ki Kubernetes. Hei tauira, kua rongo matou i nga kaiwhakawhanake ratonga e amuamu ana mo te ngaro, he he ranei nga tautuhinga takiuru. I tupono ano matou ki te whakamahi hee i nga miihini tauira, i te wa i hangaia ai nga rau o nga kape he rite tonu te whakatakotoranga me te mahi, i puta mai he raruraru patuiro moemoea.

He tino uaua hoki ki te pupuri i nga momo putanga rereke i roto i te roopu kotahi. Whakaarohia te uaua o te tautoko a nga kaihoko mena ka hiahia koe ki te mahi i te wa kotahi i roto i nga putanga maha o te taiao wa whakahaere, me o raatau raru katoa, nga hapa me nga whakahou.

Nga Ahuatanga Kaiwhakamahi Pinterest me nga Kaiwhakahaere

Hei whakangwari ake i a maatau miihini ki te whakatinana i nga Kubernetes, me te whakangawari me te tere ake i o maatau hanganga, kua whakawhanakehia e matou a matou ake whakamaramatanga rauemi ritenga (CRDs).

Ka whakaratohia e nga CRD nga mahi e whai ake nei:

  1. Te whakakotahi i nga momo rauemi taketake o Kubernetes kia mahi ai hei kawenga mahi kotahi. Hei tauira, kei roto i te rauemi PinterestService he horahanga, he ratonga takiuru, he mahere whirihoranga. Ma tenei ka taea e nga kaiwhakawhanake kia kaua e manukanuka ki te whakatu DNS.
  2. Whakatinana tautoko tono e tika ana. Me aro noa te kaiwhakamahi ki te whakatakotoranga ipu e ai ki o raatau arorau pakihi, i te wa e whakamahia ana e te kaiwhakahaere CRD nga ipu init katoa e tika ana, nga taurangi taiao me nga whakaritenga pod. He rereke te ahua o te whakamarie mo nga kaihanga.
  3. Ka whakahaerehia e nga kaiwhakahaere CRD te huringa ora o nga rauemi taketake me te whakapai ake i te waatea o te patuiro. Kei roto i tenei ko te whakatikatika i nga whakaritenga e hiahiatia ana me nga korero tuuturu, te whakahou i te mana CRD me te pupuri i nga raarangi huihuinga, me etahi atu. Ki te kore he CRD, ka kaha nga kaiwhakawhanake ki te whakahaere i nga rauemi maha, ka nui ake te tupono o te he.

Anei tetahi tauira o te PinterestService me tetahi rauemi o roto e whakahaerehia ana e to matou kaiwhakahaere:

Te hanga i te papaaa kubernetes i runga i Pinterest

Ka kite koe i runga ake nei, hei tautoko i tetahi ipu ritenga me whakauru he ipu init me etahi atu taapiri hei whakarato i te haumarutanga, te tirohanga, me te hokohoko whatunga. I tua atu, i hangaia e matou nga tauira mahere whirihoranga me te whakatinana i te tautoko mo nga tauira PVC mo nga mahi puranga, me te aroturuki i nga taurangi taiao maha ki te whai i te tuakiri, te kohi rauemi, me te kohinga paru.

He uaua ki te whakaaro ka hiahia nga kaiwhakawhanake ki te tuhi i enei konae whirihoranga ma te ringaringa me te kore tautoko CRD, waihoki te pupuri me te patuiro i nga whirihoranga.

Rerengamahi tuku tono

Te hanga i te papaaa kubernetes i runga i Pinterest

Ko te ahua i runga ake nei e whakaatu ana me pehea te tuku i tetahi rauemi ritenga Pinterest ki te roopu Kubernetes:

  1. Ka taunekeneke nga kaiwhakawhanake me a maatau roopu Kubernetes ma te CLI me te atanga kaiwhakamahi.
  2. Ka tikina e nga taputapu CLI/UI nga konae YAML whirihoranga rerengamahi me etahi atu taonga hanga (tautuhinga putanga rite) mai i Artifactory ka tukuna atu ki te Ratonga Tuku Mahi. Ko tenei mahi ka whakarite ko nga putanga whakaputa anake ka tukuna ki te roopu.
  3. He kuaha a JSS mo nga momo papaaho, tae atu ki nga Kubernetes. I konei ka whakamotuhēhēhia te kaiwhakamahi, ka tukuna he roherohenga me te whirihoranga o to tatou CRD kua tirohia tetahi waahanga.
  4. I muri i te tirotiro i te CRD i te taha JSS, ka tukuna nga korero ki te API papaarangi k8s.
  5. Ka aro turukihia e ta maatau kaiwhakahaere CRD nga kaupapa i runga i nga rauemi kaiwhakamahi katoa. Ka huri i nga CR ki nga rauemi k8s taketake, ka taapirihia nga waahanga e tika ana, ka tautuhi i nga taurangi taiao e tika ana, me te mahi i etahi atu mahi tautoko kia pai ai nga tono a nga kaiwhakamahi kua whakauruhia ki roto i te ipu.
  6. Ka tukuna e te kaiwhakahaere CRD nga raraunga kua riro ki te API Kubernetes kia taea ai te tukatuka e te kaiwhakariterite me te whakauru ki roto i nga mahi.

parau: Ko tenei mahinga mahi i mua i te tukunga o te tukunga i hangaia mo nga kaiwhakamahi tuatahi o te papanga k8s hou. I tenei wa kei te mahi taatau ki te whakamahine i tenei mahi kia tino whakauru ki a maatau CI/CD hou. Ko te tikanga kaore e taea e matou te korero ki a koe nga mea katoa e pa ana ki a Kubernetes. Kei te tumanako matou ki te whakapuaki i o maatau wheako me te ahunga whakamua o te roopu ki tenei huarahi i roto i ta maatau panui blog e whai ake nei, "Te hanga i tetahi papaaarangi CI/CD mo Pinterest."

Nga momo rauemi motuhake

I runga i nga hiahia motuhake o Pinterest, kua whakawhanakehia e matou nga CRD e whai ake nei kia pai ai nga rerengamahi rereke:

  • PinterestService he ratonga kore whenua kua roa e mahi ana. Ko te nuinga o a maatau punaha matua kei runga i te huinga o aua ratonga.
  • Ka whakatauira a PinterestJobSet i nga mahi puranga huringa katoa. Ko tetahi ahuatanga noa i runga i Pinterest ko te maha o nga mahi e whakahaere ana i nga ipu kotahi i roto i te whakarara, ahakoa he aha etahi atu tukanga rite.
  • PinterestCronJob e whakamahia nuitia ana me nga kawenga iti ia wa. He takai tenei mo nga mahi cron Maori me nga taputapu tautoko Pinterest e whai kawenga ana mo te haumarutanga, te waka, nga raarangi me nga inenga.
  • PinterestDaemon kei roto nga Daemons hanganga. Kei te tipu haere tonu te whanau nei i a matou e taapiri ake ana i te tautoko ki o matou kohinga.
  • Ka toro atu a PinterestTrainingJob ki nga tukanga Tensorflow me te Pytorch, e whakarato ana i te taumata o te tautoko wa whakahaere ki era atu CRD katoa. I te mea e kaha kaha ana a Pinterest ki te whakamahi i a Tensorflow me etahi atu punaha ako miihini, he take to maatau ki te hanga CRD motuhake mo ratou.

Kei te mahi ano matou i runga i te PinterestStatefulSet, ka tata nei ka urutau mo nga whare putunga raraunga me etahi atu punaha mana.

Tautoko wā whakahaere

I te wa e rere ana te pod tono i runga i nga Kubernetes, ka whiwhi aunoa i te tiwhikete hei tohu i a ia ano. Ka whakamahia tenei tiwhikete ki te uru ki te rokiroki huna, ki te korero ranei ki etahi atu ratonga ma te mTLS. I tenei wa, ka tangohia e te Container Init Configurator me Daemon nga mea e tika ana i mua i te whakahaere i te tono whakauru. Ka rite nga mea katoa, ka rehitatia e te waka taha waka me te Daemon te wahitau IP o te kōwae me to tatou Zookeeper kia kitea e nga kaihoko. Ka mahi katoa na te mea i whirihorahia te kōwae whatunga i mua i te whakarewatanga o te tono.

Ko nga mea i runga ake nei he tauira angamaheni o te tautoko wa whakahaere mo nga taumahatanga mahi. Ko etahi atu momo kawenga mahi ka hiahiatia he tautoko rereke, engari ka puta katoa mai i te ahua o nga kaitarai taumata-pod, taumata-node, Daemons taumata miihini mariko ranei. Ka whakarite maatau ka tukuna enei mea katoa ki roto i nga hanganga whakahaere me te rite tonu ki nga tono, ka tino whakaitihia te taumahatanga mo nga mahi hangarau me te tautoko a nga kaihoko.

Te whakamatautau me te QA

I hangaia e matou he paipa whakamatautau mutunga-ki-mutunga ki runga ake o nga hanganga whakamatautau Kubernetes. Ko enei whakamatautau ka pa ki o maatau kohinga katoa. He maha nga whakarereketanga o ta maatau paipa i mua i te whakaurunga ki te roopu hua.

I tua atu i nga punaha whakamatautau, kei a maatau nga punaha tirotiro me te mataara e aro turuki tonu ana i te mana o nga waahanga o te punaha, te kohi rauemi me etahi atu tohu nui, me te whakamohio mai ki te wa e tika ana te wawaotanga a te tangata.

Ko etahi atu

I titiro matou ki etahi momo rereke ki nga rauemi ritenga, penei i nga kaiwhakahaere urunga whakarereke me nga punaha tauira. Heoi, ka tae katoa mai me nga wero whakahaere nui, no reira i whiriwhiria e matou te huarahi CRD.

I whakamahia he kaiwhakahaere urunga whakarereke hei whakauru i nga motuka taha, taurangi taiao, me etahi atu tautoko wa mahi. Heoi, he maha nga raru i pa ki a ia, penei i te herenga rawa me te whakahaere huringa ora, kaore e puta mai nga raru penei i te CRD.

Tuhipoka: Ko nga punaha tauira penei i nga mahere Helm e whakamahia whanuitia ana ki te whakahaere i nga tono me nga whirihoranga rite. Heoi, he tino rerekee a maatau tono mahi hei whakahaere ma te whakamahi tauira. I te wa e tukuna tonutia ana ka nui rawa nga hapa ina whakamahi tauira.

Mahi e haere ake nei

I tenei wa kei te whakahaerea e matou he kawenga whakauru puta noa i o maatau kohinga katoa. Hei tautoko i enei momo momo me te rahi, ka mahi matou i nga waahanga e whai ake nei:

  • He kohinga o nga tautau ka tohatoha i nga tono nui puta noa i nga huinga rereke mo te tauine me te pumau.
  • Te whakarite i te pumau o te tautau, te tauine me te tirohanga ki te hanga hononga tono me nga SLA.
  • Te whakahaere i nga rauemi me nga roherohenga kia kore ai nga tono e taupatupatu tetahi ki tetahi, a ko te tauine o te roopu kei te whakahaere i a maatau.
  • He turanga CI/CD hou mo te tautoko me te tuku tono ki runga i nga Kubernetes.

Source: will.com

Tāpiri i te kōrero