Fausia o se kubernetes platform i luga o Pinterest

I le aluga o tausaga, Pinterest's 300 miliona tagata faʻaoga na latou fatuina sili atu ma le 200 piliona pine i luga o le silia ma le 4 piliona laupapa. Ina ia tautuaina lenei autau o tagata faʻaoga ma le tele o mea e aofia ai, ua fausia e le faitotoa le faitau afe o auaunaga, e amata mai i microservices e mafai ona faʻatautaia e ni nai PPU, i monoliths tetele e taʻavale i luga o se vaʻa atoa o masini masini. Ona oo mai lea o le taimi na paʻu ai mata o le kamupani i k8s. Aisea na foliga lelei ai le "cube" ile Pinterest? O le a e aʻoaʻoina e uiga i lenei mea mai la matou faaliliuga o se tala lata mai mai blog Pinterest inisinia.

Fausia o se kubernetes platform i luga o Pinterest

O lea la, e faitau selau miliona tagata faʻaoga ma le faitau selau piliona o pine. Ina ia tautuaina lenei autau o tagata faʻaoga ma le tele o faʻamaumauga, ua matou atinaʻeina le faitau afe o auaunaga, e amata mai i microservices e mafai ona faʻatautaia e ni nai PPU, i monoliths tetele o loʻo taʻavale i luga o vaʻa atoa o masini masini. E le gata i lea, o loʻo i ai a matou faʻatulagaga eseese e ono manaʻomia ai foi le PPU, manatua, poʻo le I/O avanoa.

I le tausia o lenei faleoloa o meafaigaluega, o le au atinaʻe e feagai ma le tele o luitau:

  • E leai se auala tutusa mo inisinia e faʻatautaia ai se siosiomaga gaosiga. 'Au'aunaga e leai ni atunu'u, 'au'aunaga fa'atulafonoina ma galuega fa'atino o lo'o galue malosi e fa'avae i luga o fa'aputuga tekonolosi eseese. O lenei mea na mafua ai le fausiaina o se aʻoaʻoga atoa mo inisinia, ma faʻalavelave faʻalavelave ai le galuega a le matou au atinaʻe.
  • O tagata atiaʻe faʻatasi ma a latou lava vaʻa o masini masini e faia se avega tele i luga o pulega i totonu. O le i'uga, o gaioiga faigofie e pei o le fa'afouina o le OS po'o le AMI e alu vaiaso ma masina. O lenei mea e mafua ai le faʻateleina o galuega i tulaga e foliga mai o aso uma.
  • Fa'afaigata i le fa'atupuina o meafaigāluega fa'atonuga fa'alelalolagi i luga o fofo o lo'o iai. O le tulaga e sili atu ona faigata i le mea moni o le sailia o tagata e ona masini masini e le faigofie. O lona uiga, matou te le iloa pe mafai ona aveese mai ma le saogalemu lenei gafatia e faʻaogaina i isi vaega o tatou atinaʻe.

O faiga fa'aputu o se auala e tu'ufa'atasia ai le puleaina o galuega. Latou te tatalaina le faitotoʻa i le faʻateleina o le atinaʻeina o le saoasaoa ma faʻafaigofie le puleaina o atinaʻe, talu ai o punaoa uma o loʻo aʻafia i le poloketi o loʻo pulea e se tasi faʻalapotopotoga faʻapitoa.

Fausia o se kubernetes platform i luga o Pinterest

Ata 1: Atina'e fa'amuamua (fa'atuatuaina, fa'atupuina le gaosiga, ma le lelei).

Na maua e le Cloud Management Platform i Pinterest K8s i le 2017. E oʻo atu i le afa muamua o le 2017, ua matou faʻamauina le tele o matou gaosiga gafatia, e aofia ai le API ma a matou 'upega tafaʻilagi uma. Mulimuli ane, na matou faia se iloiloga maeʻaeʻa o faiga eseese mo le faʻatulagaina o fofo o pusa, fausiaina o fuifui ma galulue faʻatasi ma i latou. I le fa'ai'uga o le 2017, na matou filifili e fa'aoga Kubernetes. Sa fai lava si fetuutuunai ma lagolagoina lautele i totonu o le alalafaga atiaʻe.

E oo mai i le taimi nei, ua matou fausia a matou lava mea faigaluega faʻapipiʻi e faʻavae i luga o Kops ma faʻafeiloaʻi vaega tetele o loʻo i ai nei e pei o upega tafaʻilagi, saogalemu, metrics, logging, faʻasinomaga pulega, ma fefaʻatauaiga i Kubernetes. Sa matou fa'atinoina fo'i se faiga fa'ata'ita'iga o galuega mo a matou puna'oa, o le lavelave o lo'o natia mai i tagata atia'e. O le taimi nei o loʻo matou taulaʻi i le faʻamautinoaina o le mautu o le fuifui, faʻateleina ma faʻafesoʻotaʻi tagata fou.

Kubernetes: Le auala Pinterest

O le amataina o Kubernetes i le fua o Pinterest o se tulaga e fiafia i ai a tatou inisinia na sau ma le tele o luitau.

I le avea ai o se kamupani tele, ua matou faʻatupeina tele i meafaigaluega tetele. O fa'ata'ita'iga e aofia ai meafaigaluega fa'akomepiuta e fa'atautaia ai le fa'agaioiina o tusi pasi ma le tufatufaina atu o autu, vaega o le fa'atonutonuina o feoaiga, faiga e su'e ai auaunaga, vaega va'aia, ma vaega o lo'o tu'uina atu i ogalaau ma fua. O nei mea uma na aoina mo se mafuaʻaga: na matou uia le ala masani o le faʻataʻitaʻiga ma mea sese, ma o le mea lea na matou manaʻo ai e tuʻufaʻatasia nei meafaigaluega uma i totonu o atinaʻe fou i Kubernetes nai lo le toe faʻafouina o le uili tuai i luga o se tulaga fou. O lenei faiga lautele na faafaigofieina ai le femalagaiga, talu ai o loʻo i ai uma le lagolago talosaga ma e le manaʻomia ona faia mai le sasa.

I le isi itu, o faʻataʻitaʻiga faʻataʻitaʻiga o uta i Kubernetes lava ia (e pei o faʻataʻitaʻiga, galuega, ma seti Daemon) e le lava mo la tatou poloketi. O nei faʻafitauli faʻaoga o ni pa puipui tetele i le siitia atu i Kubernetes. Mo se fa'ata'ita'iga, ua matou fa'alogo i le au atina'e o auaunaga o lo'o faitio e uiga i le misi po'o le le sa'o o fa'aoga saini. Na matou fetaiaʻi foʻi ma le faʻaogaina sese o masini faʻataʻitaʻi, ina ua faia le faitau selau o kopi ma le faʻamatalaga tutusa ma le galuega, lea na iʻu ai i faʻalavelave faʻalavelave faʻafefe.

Sa faigata tele fo'i le fa'atumauina o fa'aliliuga eseese i le fuifui e tasi. Va'ai faalemafaufau i le lavelave o le lagolago a tagata fa'atau pe afai e te mana'omia le galue i le taimi e tasi i le tele o fa'aliliuga o le si'osi'omaga taimi ta'avale e tasi, ma o latou fa'afitauli uma, bugs ma fa'afouga.

Pinterest Meatotino a Tagata Fa'aoga ma Pule

Ina ia fa'afaigofie mo a matou inisinia ona fa'atinoina Kubernetes, ma fa'afaigofie ma fa'avavevave a matou atina'e, ua matou fausia a matou lava fa'amatalaga aganu'u aganu'u (CRDs).

O lo'o tu'uina atu e CRD galuega fa'atino nei:

  1. Tu'ufa'atasia 'ese'ese 'ese'ese a le Kubernetes puna'oa ina ia galulue fa'atasi ai ma galuega. Mo se faʻataʻitaʻiga, o le PinterestService punaoa e aofia ai se faʻapipiʻiina, se auaunaga e saini ai, ma se faʻafanua faʻatulagaina. O lenei mea e mafai ai e le au atinaʻe ona le popole i le setiina o DNS.
  2. Fa'atino lagolago talosaga mana'omia. E manaʻomia e le tagata faʻaoga ona taulaʻi naʻo le faʻamatalaga o pusa e tusa ai ma a latou faʻamatalaga pisinisi, aʻo faʻaaogaina e le CRD controller mea uma e manaʻomia init containers, fesuiaiga o le siosiomaga ma faʻamatalaga pod. O lenei mea e maua ai se tulaga tulaga ese o le mafanafana mo tagata atiae.
  3. E fa'afoeina fo'i e le 'au fa'atonu a le CRD le fa'asologa o le olaga o puna'oa fa'ale-aganu'u ma fa'aleleia atili le avanoa e fa'asa'o. E aofia ai le faʻaleleia o faʻamatalaga manaʻomia ma faʻamatalaga moni, faʻafouina le tulaga o le CRD ma tausia ogalaau o mea na tutupu, ma isi mea. A aunoa ma le CRD, o le a faʻamalosia le au atinaʻe e faʻatautaia le tele o punaoa, lea e naʻo le faʻateleina o le faʻalavelave.

O se fa'ata'ita'iga lea o se PinterestService ma se punaoa fa'alotoifale e pulea e le matou pule:

Fausia o se kubernetes platform i luga o Pinterest

E pei ona mafai ona e vaʻai i luga, e lagolago ai se pusa masani tatou te manaʻomia le tuʻufaʻatasia o se atigipusa init ma nisi faʻaopoopoga e maua ai le saogalemu, vaʻaia, ma fefaʻatauaiga o fesoʻotaʻiga. E le gata i lea, na matou fatuina faʻataʻitaʻiga faʻafanua faʻatulagaina ma faʻatino le lagolago mo faʻataʻitaʻiga PVC mo galuega faʻaputuga, faʻapea foʻi ma le siakiina o le tele o fesuiaiga o le siosiomaga e siaki ai le faʻamatalaga, faʻaogaina o punaoa, ma le aoina o lapisi.

E faigata ona mafaufauina o le a mananaʻo le au atinaʻe e tusi nei faila faʻapipiʻi i lima e aunoa ma le lagolago a le CRD, seʻi vagana ai le faʻaleleia atili ma le faʻapipiʻiina o faʻasalalauga.

Fa'atonuga galuega fa'atino

Fausia o se kubernetes platform i luga o Pinterest

O le ata o loʻo i luga o loʻo faʻaalia ai pe faʻafefea ona faʻapipiʻi se punaoa masani a Pinterest i se vaega Kubernetes:

  1. E fegalegaleai tagata atiaʻe ma le matou Kubernetes cluster e ala i le CLI ma le faʻaoga faʻaoga.
  2. O meafaigaluega a le CLI/UI e maua mai ai faila YAML faila ma isi mea fau fale (tulaga tutusa ID) mai Artifactory ona tuʻuina atu lea i le Auaunaga Tuuina atu o Galuega. Ole la'asaga lea e fa'amautinoa ai e na'o fa'asologa o gaosiga e tu'uina atu ile fuifui.
  3. O le JSS o se faitotoa mo tulaga eseese, e aofia ai Kubernetes. O iinei o loʻo faʻamaonia ai le tagata faʻaoga, tuʻuina atu tupe faʻaalu ma le faʻatulagaina o la matou CRD o loʻo siaki vaega.
  4. A maeʻa le siakiina o le CRD i le itu JSS, o loʻo tuʻuina atu faʻamatalaga i le K8s platform API.
  5. E mata'ituina e le matou fa'atonu CRD mea tutupu i puna'oa uma a tagata fa'aoga. Na te fa'aliliuina CRs i puna'oa moni k8s, fa'aopoopo mea e mana'omia, fa'atulaga suiga talafeagai o le si'osi'omaga, ma fa'atino isi galuega lagolago e fa'amautinoa ai o lo'o i ai i totonu o lo'o fa'apipi'iina mea e fa'aoga ai mea fa'aoga e lava le lagolago fa'apitoa.
  6. Ona pasi atu lea e le pule o le CRD faʻamatalaga na maua i le Kubernetes API ina ia mafai ona faʻatautaia e le faʻatulagaina ma tuʻu i le gaosiga.

mataʻi: O lenei faʻasologa o galuega aʻo leʻi tuʻuina atu o le faʻapipiʻiina na faia mo le au faʻaoga muamua o le k8s platform fou. O lo'o matou i ai nei i le fa'agasologa o le fa'amamaina o lenei faiga ina ia tu'ufa'atasia atoatoa ma le matou CI/CD fou. O lona uiga e le mafai ona matou taʻuina atu ia te oe mea uma e fesoʻotaʻi ma Kubernetes. Matou te tulimatai atu e faʻasoa atu lo matou poto masani ma le alualu i luma o le 'au i lenei itu i la matou isi blog post, "Fausiaina o se CI/CD platform mo Pinterest."

Ituaiga o punaoa faapitoa

Fa'avae i luga o mana'oga fa'apitoa a Pinterest, ua matou atia'e CRD nei e fa'afetaui i fa'asologa o galuega eseese:

  • PinterestService o 'au'aunaga e leai ni setete o lo'o fa'agaoioia mo se taimi umi. Ole tele oa tatou faiga fa'avae e fa'avae ile seti o ia auaunaga.
  • PinterestJobSet fa'ata'ita'i galuega ta'amilosaga atoa. O se fa'ata'ita'iga masani i luga o Pinterest o le tele o galuega o lo'o fa'agasolo i pusa tutusa, tusa lava po'o a isi faiga fa'apena.
  • PinterestCronJob o lo'o fa'aogaina lautele fa'atasi ma nai uta fa'avaitaimi. Ole afifi lea mo galuega fa'ale-aganu'u ma Pinterest lagolago masini e nafa ma le saogalemu, feoaiga, ogalaau ma metrics.
  • PinterestDaemon e aofia ai atinaʻe Daemons. O loʻo faʻaauau pea le tuputupu aʻe o lenei aiga a o matou faʻaopoopoina le lagolago i a matou fuifui.
  • PinterestTrainingJob e fa'alautele atu i faiga o Tensorflow ma Pytorch, e maua ai le tulaga tutusa o le lagolago taimi e pei o isi CRDs uma. Talu ai o Pinterest o loʻo faʻaaogaina ma le malosi Tensorflow ma isi masini aʻoaʻoga, sa i ai le mafuaʻaga e fausia ai se isi CRD faʻataʻamilo ia i latou.

O loʻo matou galulue foʻi i le PinterestStatefulSet, lea e le o toe mamao ona faʻafetaui mo fale teu oloa faʻamaumauga ma isi faiga faʻavae.

Lagolago taimi ta'avale

A fa'agaoioia se talosaga pod i Kubernetes, e otometi lava ona maua se tusi pasi e fa'ailoa ai o ia. O lenei tusi faamaonia e faʻaaogaina e maua ai le teuina faalilolilo pe fesoʻotaʻi ma isi auʻaunaga e ala i le mTLS. I le taimi nei, o le Container Init Configurator ma Daemon o le a faʻapipiʻiina uma faʻalagolagoga manaʻomia aʻo leʻi faʻaogaina le talosaga faʻapipiʻi. A sauni mea uma, o le taʻavale taʻavale ma Daemon o le a lesitala le tuatusi IP o le module i le matou Zookeeper ina ia mafai e tagata faʻatau ona maua. O nei mea uma o le a aoga ona o le fesoʻotaʻiga module na faʻapipiʻiina aʻo leʻi faʻalauiloaina le talosaga.

O lo'o ta'ua i luga o fa'ata'ita'iga masani ia o le taimi fa'atino lagolago mo galuega mamafa. O isi ituaiga o galuega atonu e manaʻomia ai se lagolago laʻititi, ae o loʻo oʻo mai uma i foliga o taʻavale taʻavale, node-level poʻo Daemons masini masini. Matou te faʻamautinoa o loʻo faʻapipiʻiina nei mea uma i totonu o atinaʻe pulega ma o loʻo tumau i luga o talosaga, lea e matua faʻaitiitia ai le avega i tulaga o galuega faʻapitoa ma le lagolago a tagata faʻatau.

Su'ega ma QA

Na matou fausia se paipa su'ega pito i luga ole pito i luga ole atina'e ole su'ega Kubernetes. O nei su'ega e fa'atatau i a tatou fuifui uma. O la matou paipa na faia i le tele o toe iloiloga aʻo leʻi avea ma se vaega o le fuifui oloa.

I le faʻaopoopoga i faiga faʻataʻitaʻiga, o loʻo i ai a matou mataʻituina ma mataala faiga e mataʻituina pea le tulaga o vaega o le polokalama, faʻaogaina o punaoa ma isi faʻailoga taua, e logoina i matou pe a manaʻomia le fesoasoani a tagata.

Suiga

Na matou va'ava'ai i nisi o mea e sui ai aganu'u aganu'u, e pei o le fa'aogaina o suiga ma faiga fa'ata'ita'iga. Ae ui i lea, latou te omai uma lava ma ni luitau taua, o lea na matou filifilia ai le auala CRD.

Na fa'aaogaina se fa'atonuga fa'afeiloa'iga e fa'alauiloa ai ta'avale, suiga o le si'osi'omaga, ma isi lagolago ta'avale. Ae ui i lea, sa feagai ma faʻafitauli eseese, e pei o le fusia o punaoa ma le puleaina o le olaga, lea e le tulaʻi mai ai ia faʻafitauli i le CRD.

Manatua: O faiga fa'ata'ita'i e pei o siata Helm e fa'aoga lautele e fa'atino ai talosaga fa'atasi ma fa'apena. Peita'i, e 'ese'ese tele a matou talosaga mo galuega e le mafai ona fa'atautaia e fa'aoga ai fa'ata'ita'iga. E fa'apea fo'i i le fa'aauauina o le fa'atinoina o le a tele naua mea sese pe a fa'aaoga mamanu.

Galuega o loma

O lo'o matou feagai nei ma se uta fefiloi i a matou fuifui uma. Ina ia lagolagoina ia faiga o ituaiga eseese ma lapopoa, matou te galulue i vaega nei:

  • O se fa'aputuga o fuifu'i fa'asalalauina fa'aoga tetele i fuifui 'ese'ese mo le fa'alauteleina ma le mautu.
  • Faʻamautinoa le mautu o fuifui, faʻalauteleina ma le vaʻaia e fausia ai fesoʻotaʻiga faʻaoga ma SLA.
  • Puleaina o punaoa ma quota ina ia le fete'ena'i talosaga ma le tasi ma le isi, ma o le fua o le fuifui e pulea i la tatou vaega.
  • O se tulaga fou CI/CD mo le lagolagoina ma le fa'aogaina o talosaga ile Kubernetes.

puna: www.habr.com

Faaopoopo i ai se faamatalaga