A’ cruthachadh àrd-ùrlar kubernetes air Pinterest

Thairis air na bliadhnaichean, tha 300 millean neach-cleachdaidh Pinterest air còrr air 200 billean prìneachan a chruthachadh air còrr air 4 billean bùird. Gus seirbheis a thoirt don arm seo de luchd-cleachdaidh agus bunait susbaint mòr, tha am portal air mìltean de sheirbheisean a leasachadh, bho meanbh-sheirbheisean a dh’ fhaodar a làimhseachadh le beagan CPUs, gu monoliths mòra a bhios a ’ruith air cabhlach iomlan de dh’ innealan brìgheil. Agus an uairsin thàinig an t-àm nuair a thuit sùil na companaidh air k8s. Carson a bha an “ciùb” a’ coimhead math air Pinterest? Ionnsaichidh tu mu dheidhinn seo bhon eadar-theangachadh againn de artaigil o chionn ghoirid bho blog Pinterest innleadaireachd.

A’ cruthachadh àrd-ùrlar kubernetes air Pinterest

Mar sin, ceudan de mhilleanan de luchd-cleachdaidh agus ceudan de bhilleanan de phrìneachan. Gus seirbheis a thoirt don arm seo de luchd-cleachdaidh agus bunait susbaint mòr, tha sinn air mìltean de sheirbheisean a leasachadh, bho meanbh-sheirbheisean a dh’ fhaodar a làimhseachadh le beagan CPUs, gu monoliths mòra a bhios a ’ruith air cabhlaichean slàn de dh’ innealan brìgheil. A bharrachd air an sin, tha grunn fhrèamaichean againn a dh’ fhaodadh a bhith feumach air ruigsinneachd CPU, cuimhne, no I/O.

Ann a bhith a’ cumail suas an sù innealan seo, tha grunn dhùbhlain mu choinneamh an sgioba leasachaidh:

  • Chan eil dòigh èideadh ann airson innleadairean àrainneachd cinneasachaidh a ruith. Tha seirbheisean gun stàit, seirbheisean stàiteil agus pròiseactan fo leasachadh gnìomhach stèidhichte air stacan teicneòlais gu tur eadar-dhealaichte. Mar thoradh air an sin chaidh cùrsa trèanaidh iomlan a chruthachadh dha innleadairean, agus tha e cuideachd a’ dèanamh obair ar sgioba bun-structair gu mòr.
  • Bidh luchd-leasachaidh leis a’ chabhlach aca fhèin de dh’ innealan brìgheil a’ cruthachadh eallach mòr air luchd-rianachd a-staigh. Mar thoradh air an sin, bheir gnìomhan sìmplidh leithid ùrachadh an OS no AMI seachdainean agus mìosan. Bidh seo a’ leantainn gu barrachd eallach obrach ann an suidheachaidhean a tha coltach gu tur làitheil.
  • Duilgheadasan ann a bhith a’ cruthachadh innealan riaghlaidh bun-structair cruinneil a bharrachd air na fuasglaidhean a th’ ann mar-thà. Tha an suidheachadh nas iom-fhillte leis nach eil e furasta luchd-seilbh innealan brìgheil a lorg. Is e sin, chan eil fios againn an gabh an comas seo a thoirt a-mach gu sàbhailte gus obrachadh ann am pàirtean eile den bhun-structar againn.

Tha siostaman orchestration container mar dhòigh air riaghladh eallach obrach aonachadh. Bidh iad a’ fosgladh an dorais gu astar leasachaidh nas àirde agus a’ sìmpleachadh riaghladh bun-structair, leis gu bheil na goireasan uile a tha an lùib a’ phròiseict air an riaghladh le aon shiostam meadhanaichte.

A’ cruthachadh àrd-ùrlar kubernetes air Pinterest

Figear 1: Prìomhachasan bun-structair (earbsachd, cinneasachd leasaiche, agus èifeachdas).

Lorg sgioba Cloud Management Platform aig Pinterest K8n ann an 2017. Ron chiad leth de 2017, bha sinn air a’ mhòr-chuid de na comasan riochdachaidh againn a chlàradh, a’ toirt a-steach an API agus na frithealaichean lìn againn gu lèir. Às deidh sin, rinn sinn measadh mionaideach air diofar shiostaman airson fuasglaidhean soithichean a chuir air dòigh, togail chlàran agus obrachadh còmhla riutha. Faisg air deireadh 2017, chuir sinn romhainn Kubernetes a chleachdadh. Bha e gu math sùbailte agus taic farsaing anns a’ choimhearsnachd leasaiche.

Gu ruige seo, tha sinn air na h-innealan bròg cnuasachaidh againn fhèin a thogail stèidhichte air Kops agus air imrich a dhèanamh air na pàirtean bun-structair a th ’ann mar lìonrachadh, tèarainteachd, meatrach, logadh, riaghladh dearbh-aithne, agus trafaic gu Kubernetes. Chuir sinn cuideachd siostam modaladh eallach obrach an gnìomh airson ar goireas, agus tha an iom-fhillteachd sin falaichte bho luchd-leasachaidh. A-nis tha sinn a’ cuimseachadh air dèanamh cinnteach à seasmhachd a’ bhuidheann, ga sgèileadh agus a’ ceangal teachdaichean ùra.

Kubernetes: An t-slighe Pinterest

Thàinig mòran dhùbhlain le bhith a’ tòiseachadh le Kubernetes aig sgèile Pinterest mar àrd-ùrlar air am bu toil leis na h-innleadairean againn.

Mar chompanaidh mòr, tha sinn air tasgadh mòr a dhèanamh ann an innealan bun-structair. Tha eisimpleirean a’ toirt a-steach innealan tèarainteachd a bhios a’ làimhseachadh theisteanasan agus prìomh sgaoileadh, co-phàirtean smachd trafaic, siostaman lorg seirbheis, co-phàirtean faicsinneachd, agus co-phàirtean lìbhrigidh log is meatrach. Chaidh seo uile a chruinneachadh airson adhbhar: chaidh sinn tron ​​​​t-slighe àbhaisteach de dheuchainn agus mearachd, agus mar sin bha sinn airson an uidheamachd seo gu lèir fhilleadh a-steach don bhun-structar ùr air Kubernetes an àite a bhith ag ath-nuadhachadh an t-seann chuibhle air àrd-ùrlar ùr. Gu h-iomlan, rinn an dòigh-obrach seo sìmplidh air an imrich, leis gu bheil a h-uile taic tagraidh ann mu thràth agus chan fheumar a chruthachadh bhon fhìor thoiseach.

Air an làimh eile, chan eil na modalan ro-innse luchdan ann an Kubernetes fhèin (leithid cleachdadh, obraichean, agus seataichean Daemon) gu leòr airson ar pròiseact. Tha na cùisean cleachdaidh seo nan cnapan-starra mòra air gluasad gu Kubernetes. Mar eisimpleir, tha sinn air luchd-leasachaidh seirbheis a chluinntinn a’ gearain mu shuidheachaidhean logadh a-steach a tha a dhìth no ceàrr. Thachair sinn cuideachd ri cleachdadh ceàrr de einnseanan teamplaid, nuair a chaidh na ceudan de leth-bhreacan a chruthachadh leis an aon shònrachadh agus gnìomh, a lean gu duilgheadasan deasbaid trom-laighe.

Bha e cuideachd gu math duilich diofar dhreachan a chumail anns an aon bhuidheann. Smaoinich air iom-fhillteachd taic teachdaiche ma dh’ fheumas tu a bhith ag obair aig an aon àm ann an grunn dhreachan den aon àrainneachd ruith-ùine, leis na duilgheadasan, na mialan agus na h-ùrachaidhean aca uile.

Feartan luchd-cleachdaidh Pinterest agus luchd-riaghlaidh

Gus a dhèanamh nas fhasa dha na h-innleadairean againn Kubernetes a chuir an gnìomh, agus gus ar bun-structar a dhèanamh nas sìmplidhe agus a luathachadh, tha sinn air na mìneachaidhean ghoireasan àbhaisteach againn fhèin (CRDn) a leasachadh.

Tha CRD a’ toirt seachad na feartan a leanas:

  1. A’ cothlamadh diofar ghoireasan dùthchasach Kubernetes gus am bi iad ag obair mar aon eallach obrach. Mar eisimpleir, tha goireas PinterestService a’ toirt a-steach cleachdadh, seirbheis logadh a-steach, agus mapa rèiteachaidh. Leigidh seo le luchd-leasachaidh gun a bhith draghail mu bhith a’ stèidheachadh DNS.
  2. Cuir an gnìomh taic tagraidh riatanach. Feumaidh an neach-cleachdaidh fòcas a-mhàin air sònrachadh an t-soithich a rèir an loidsig gnìomhachais aca, fhad ‘s a bhios an rianadair CRD a’ cur an gnìomh a h-uile inneal init riatanach, caochladairean àrainneachd agus mion-chomharrachadh pod. Tha seo a’ toirt ìre gu tur eadar-dhealaichte de chomhfhurtachd dha luchd-leasachaidh.
  3. Bidh luchd-riaghlaidh CRD cuideachd a’ riaghladh cuairt-beatha ghoireasan dùthchasach agus a’ leasachadh ruigsinneachd deasbaid. Tha seo a’ toirt a-steach a bhith a’ rèiteachadh mion-chomharrachadh miannaichte agus fìor, ag ùrachadh inbhe CRD agus a’ cumail suas logaichean tachartais, agus barrachd. Às aonais CRD, dh'fheumadh luchd-leasachaidh iomadh goireas a riaghladh, rud a dh'àrdaicheadh ​​​​dìreach an coltas gum biodh mearachd ann.

Seo eisimpleir de PinterestService agus goireas a-staigh a tha air a riaghladh leis an rianadair againn:

A’ cruthachadh àrd-ùrlar kubernetes air Pinterest

Mar a chì thu gu h-àrd, gus taic a thoirt do shoitheach àbhaisteach feumaidh sinn inneal init agus grunn tuilleadan a thoirt a-steach gus tèarainteachd, faicsinneachd agus trafaic lìonraidh a thoirt seachad. A bharrachd air an sin, chruthaich sinn teamplaidean mapa rèiteachaidh agus chuir sinn an gnìomh taic airson teamplaidean PVC airson obraichean baidse, a bharrachd air a bhith a’ cumail sùil air grunn chaochladairean àrainneachd gus sùil a chumail air dearbh-aithne, caitheamh ghoireasan, agus cruinneachadh sgudail.

Tha e duilich a shamhlachadh gum biodh luchd-leasachaidh airson na faidhlichean rèiteachaidh sin a sgrìobhadh le làimh às aonais taic CRD, gun luaidh air na rèiteachaidhean a chumail suas agus a dheasbad.

Sruth-obrach cleachdadh cleachdadh

A’ cruthachadh àrd-ùrlar kubernetes air Pinterest

Tha an ìomhaigh gu h-àrd a’ sealltainn mar a chuireas tu goireas gnàthaichte Pinterest gu buidheann Kubernetes:

  1. Bidh luchd-leasachaidh ag eadar-obrachadh leis a’ bhuidheann Kubernetes againn tron ​​​​CLI agus eadar-aghaidh cleachdaiche.
  2. Bidh na h-innealan CLI / UI a’ faighinn air ais na faidhlichean rèiteachaidh sruth-obrach YAML agus togalaichean togail eile (an aon ID dreach) bho Artifactory agus an uairsin gan cur a-steach don t-Seirbheis Tagraidh Obrach. Bidh an ceum seo a’ dèanamh cinnteach nach tèid ach dreachan toraidh a lìbhrigeadh don bhuidheann.
  3. JSS является шлюзом для различных платформ, включая Kubernetes. Тут происходит аутентификация пользователя, выдача квот и частичная проверка конфигурации нашего CRD.
  4. Às deidh sgrùdadh a dhèanamh air an CRD air taobh JSS, thèid am fiosrachadh a chuir chun àrd-ùrlar k8s API.
  5. Bidh an rianadair CRD againn a’ cumail sùil air tachartasan air goireasan luchd-cleachdaidh gu lèir. Bidh e ag atharrachadh CRn gu goireasan dùthchasach k8s, a’ cur ris na modalan riatanach, a’ suidheachadh nan caochladairean àrainneachd iomchaidh, agus a’ dèanamh obair taic eile gus dèanamh cinnteach gu bheil taic bun-structair gu leòr aig tagraidhean luchd-cleachdaidh.
  6. Bidh an rianadair CRD an uairsin a ’toirt seachad an dàta a fhuaireadh gu Kubernetes API gus an urrainn don chlàr-ama a phròiseasadh agus a chuir gu cinneasachadh.

thuirt: Chaidh an sruth-obrach ro-sgaoilidh seo den chleachdadh a chruthachadh airson a’ chiad luchd-cleachdaidh air an àrd-ùrlar k8s ùr. Tha sinn an-dràsta ag ùrachadh a’ phròiseis seo gus làn amalachadh leis an CI/CD ùr againn. Tha seo a’ ciallachadh nach urrainn dhuinn a h-uile dad co-cheangailte ri Kubernetes innse dhut. Tha sinn a’ coimhead air adhart ri bhith a’ roinn ar n-eòlas agus adhartas na sgioba a thaobh seo anns an ath phost bhlog againn, “A’ togail àrd-ùrlar CI/CD airson Pinterest.”

Seòrsaichean de ghoireasan sònraichte

Stèidhichte air feumalachdan sònraichte Pinterest, tha sinn air na CRDn a leanas a leasachadh gus freagairt air diofar shruth-obrach:

  • Tha PinterestService nan seirbheisean gun stàit a tha air a bhith a’ ruith airson ùine mhòr. Tha mòran de na prìomh shiostaman againn stèidhichte air seata de sheirbheisean mar sin.
  • Bidh PinterestJobSet a’ modaladh obraichean batch làn chearcall. Is e suidheachadh cumanta air Pinterest gu bheil grunn obraichean a’ ruith na h-aon shoithichean aig an aon àm, ge bith dè na pròiseasan eile a tha coltach riutha.
  • Tha PinterestCronJob air a chleachdadh gu farsaing ann an co-bhonn ri luchdan beaga bho àm gu àm. Is e pasgan a tha seo airson obair cron dùthchasach le uidheamachdan taic Pinterest air a bheil uallach airson tèarainteachd, trafaic, logaichean agus meatrach.
  • Tha PinterestDaemon a’ toirt a-steach daemons bun-structair. Tha an teaghlach seo a’ sìor fhàs agus sinn a’ cur barrachd taic ris na cruinneachaidhean againn.
  • Tha PinterestTrainingJob a’ leudachadh gu pròiseasan Tensorflow agus Pytorch, a’ toirt seachad an aon ìre de thaic runtime ris a h-uile CRD eile. Leis gu bheil Pinterest gu gnìomhach a’ cleachdadh Tensorflow agus siostaman ionnsachaidh innealan eile, bha adhbhar againn CRD air leth a thogail timcheall orra.

Tha sinn cuideachd ag obair air PinterestStatefulSet, a thèid atharrachadh a dh’ aithghearr airson taighean-bathair dàta agus siostaman stàiteil eile.

Taic runtime

Nuair a ruitheas pod tagraidh air Kubernetes, gheibh e teisteanas gu fèin-ghluasadach gus e fhèin aithneachadh. Tha an teisteanas seo air a chleachdadh gus faighinn gu stòradh dìomhair no gus conaltradh le seirbheisean eile tro mTLS. Aig an aon àm, luchdaichidh an Container Init Configurator agus Daemon a h-uile eisimeileachd riatanach sìos mus ruith iad an tagradh container. Nuair a bhios a h-uile càil deiseil, clàraichidh an càr-taobh trafaic agus an Daemon seòladh IP a’ mhodal leis an Zookeeper againn gus am faigh teachdaichean a-mach e. Obraichidh seo uile leis gun deach am modal lìonra a rèiteachadh mus deach an tagradh a chuir air bhog.

Tha na tha gu h-àrd nan eisimpleirean àbhaisteach de thaic runtime airson eallach obrach. Dh’ fhaodadh gum bi feum aig seòrsachan eallach obrach eile air taic beagan eadar-dhealaichte, ach tha iad uile a’ tighinn ann an cruth sidecars ìre pod, ìre nód no daemons ìre inneal mas-fhìor. Bidh sinn a’ dèanamh cinnteach gu bheil seo uile air a chleachdadh taobh a-staigh a’ bhun-structair riaghlaidh agus gu bheil e cunbhalach thar thagraidhean, a lughdaicheas gu mòr an eallach a thaobh obair theicnigeach agus taic teachdaiche.

Deuchainn agus QA

Thog sinn loidhne-phìoban deuchainn deireadh-gu-deireadh a bharrachd air a’ bhun-structar deuchainn Kubernetes a th’ ann mar-thà. Tha na deuchainnean sin a’ buntainn ris a h-uile buidheann againn. Chaidh an loidhne-phìoban againn tro iomadh ath-sgrùdadh mus tàinig e gu bhith na phàirt den bhuidheann toraidh.

A bharrachd air siostaman deuchainn, tha siostaman sgrùdaidh is rabhaidh againn a bhios gu cunbhalach a’ cumail sùil air inbhe co-phàirtean siostam, caitheamh ghoireasan agus comharran cudromach eile, a’ toirt fios dhuinn dìreach nuair a tha feum air eadar-theachd daonna.

Roghainnean eile

Choimhead sinn air cuid de roghainnean eile seach goireasan àbhaisteach, leithid riaghladairean ruigsinneachd mutation agus siostaman teamplaid. Ach, tha dùbhlain obrachaidh mòra orra uile, agus mar sin thagh sinn an t-slighe CRD.

Chaidh rianadair inntrigidh mutational a chleachdadh gus sidecars, caochladairean àrainneachd, agus taic ùine ruith eile a thoirt a-steach. Ach, bha grunn dhuilgheadasan ann, leithid ceangal ghoireasan agus riaghladh cuairt-beatha, far nach èirich duilgheadasan mar sin ann an CRD.

Note: Tha siostaman teamplaid leithid clàran Helm cuideachd air an cleachdadh gu farsaing gus tagraidhean a ruith le rèiteachaidhean coltach ris. Ach, tha na tagraidhean obrach againn ro eadar-mheasgte airson a bhith air an riaghladh le teamplaidean. Cuideachd rè cleachdadh leantainneach bidh cus mhearachdan ann nuair a bhios tu a’ cleachdadh theamplaidean.

Obair ri thighinn

Tha sinn an-dràsta a’ dèiligeadh ri eallach measgaichte thar ar buidhnean gu lèir. Gus taic a thoirt do leithid de phròiseasan de dhiofar sheòrsaichean is mheudan, bidh sinn ag obair anns na raointean a leanas:

  • Bidh cruinneachadh de chruinneachaidhean a’ sgaoileadh thagraidhean mòra thairis air diofar chlàran airson scalability agus seasmhachd.
  • A’ dèanamh cinnteach à seasmhachd chnuas, scalability agus faicsinneachd gus ceanglaichean tagraidh agus SLAn a chruthachadh.
  • A’ riaghladh ghoireasan agus chuotathan gus nach bi tagraidhean a’ dol an aghaidh a chèile, agus tha smachd aig ìre a’ chnuas air ar pàirt.
  • Àrd-ùrlar CI / CD ùr airson taic agus cleachdadh thagraidhean air Kubernetes.

Source: www.habr.com

Cuir beachd ann