Ho theha sethala sa kubernetes ho Pinterest

Ho theosa le lilemo, basebelisi ba limilione tse 300 ba Pinterest ba thehile liphaephe tse fetang limilione tse likete tse 200 libotong tse fetang limilione tse likete tse 4. Ho sebeletsa lebotho lena la basebelisi le setsi se seholo sa dikahare, portal e hlahisitse lits'ebeletso tse likete, ho tloha ho li-microservices tse ka sebetsoang ke li-CPU tse 'maloa, ho ea ho li-monoliths tse khōlō tse tsamaeang ka sehlopha sohle sa mechine ea sebele. 'Me nako e ile ea fihla ha mahlo a khampani a oela ho k8s. Ke hobane'ng ha "cube" e shebahala e le ntle ho Pinterest? U tla ithuta ka sena phetolelong ea rona ea sengoloa sa morao-rao ho tsoa ho blog Pinterest engeneering.

Ho theha sethala sa kubernetes ho Pinterest

Kahoo, basebelisi ba limilione tse makholo le lipini tse makholo a libilione. Ho sebeletsa lebotho lena la basebelisi le setsi se seholo sa dikahare, re thehile lits'ebeletso tse likete, ho tloha ho li-microservices tse ka sebetsoang ke li-CPU tse 'maloa, ho ea ho li-monoliths tse khōlō tse tsamaeang ka lihlopha tsohle tsa mechine ea sebele. Ho feta moo, re na le meralo e fapaneng e kanna ea hloka phihlello ea CPU, memori, kapa I/O.

Ho boloka polokelo ea liphoofolo ena ea lisebelisoa, sehlopha sa nts'etsopele se tobane le mathata a 'maloa:

  • Ha ho na mokhoa o ts'oanang oa hore baenjiniere ba tsamaise tikoloho ea tlhahiso. Litšebeletso tse se nang naha, lits'ebeletso tsa mmuso le merero e ntseng e tsoela pele ka mafolofolo li thehiloe mefuteng e fapaneng ea theknoloji. Sena se ile sa lebisa ho thehoeng ha thupelo e felletseng ea lienjineri, hape se thatafatsa mosebetsi oa sehlopha sa rona sa litšebeletso tsa motheo.
  • Bahlahisi ba nang le sehlopha sa bona sa mechine ea sebele ba etsa moroalo o moholo ho batsamaisi ba ka hare. Ka lebaka leo, ts'ebetso e bonolo joalo ka ho nchafatsa OS kapa AMI e nka libeke le likhoeli. Sena se lebisa ho eketseha ha mosebetsi maemong a bonahalang e le a letsatsi le letsatsi.
  • Mathata a ho theha lisebelisoa tsa tsamaiso ea lits'ebetso tsa lefats'e ka holim'a litharollo tse teng. Boemo bona bo rarahane le ho feta ke taba ea hore ho fumana beng ba mechine ea sebele ha ho bonolo. Ke hore ha re tsebe hore na capacity eno e ka ntšoa ka mokhoa o sireletsehileng hore e sebetse libakeng tse ling tsa meaho ea rona.

Sistimi ea 'mino oa li-container ke mokhoa oa ho kopanya taolo ea boima ba mosebetsi. Ba bula monyetla oa ho eketsa lebelo la nts'etsopele le ho nolofatsa tsamaiso ea litšebeletso tsa motheo, kaha lisebelisoa tsohle tse amehang morerong li laoloa ke tsamaiso e le 'ngoe e bohareng.

Ho theha sethala sa kubernetes ho Pinterest

Setšoantšo sa 1: Lintho tse tlang pele ho libopeho tsa motheo (botšepehi, tlhahiso ea bahlahisi, le katleho).

Sehlopha sa Cloud Management Platform se Pinterest se fumane li-K8 ka 2017. Karolong ea pele ea 2017, re ne re ngotse boholo ba bokhoni ba rona ba tlhahiso, ho kenyeletsoa API le li-server tsohle tsa rona tsa webo. Ka mor'a moo, re ile ra etsa tlhahlobo e phethahetseng ea litsamaiso tse fapaneng tsa ho hlophisa tharollo ea lijana, ho haha ​​lihlopha le ho sebetsa le tsona. Ho elella bofelong ba 2017, re nkile qeto ea ho sebelisa Kubernetes. E ne e feto-fetoha le maemo 'me e tšehelitsoe haholo sechabeng sa bahlahisi.

Ho fihlela joale, re iketselitse lisebelisoa tsa rona tsa "cluster boot" tse ipapisitseng le Kops 'me re falletse lisebelisoa tsa motheo tse kang marang-rang, ts'ireletso, metrics, ho rema lifate, taolo ea boitsebiso, le sephethephethe ho ea Kubernetes. Re boetse re kentse ts'ebetsong mokhoa oa ho etsa mohlala oa mosebetsi bakeng sa lisebelisoa tsa rona, tse rarahaneng tse patehileng ho bahlahisi. Hona joale re tsepamisitse maikutlo ho netefatsa botsitso ba sehlopha, ho se phahamisa le ho hokahanya bareki ba bacha.

Kubernetes: Tsela ea Pinterest

Ho qala ka Kubernetes sekala sa Pinterest e le sethala seo baenjiniere ba rona ba ka se ratang ho tlile ka mathata a mangata.

Joalo ka k'hamphani e kholo, re tsetetse haholo lithulusing tsa meaho. Mehlala e kenyelletsa lisebelisoa tsa ts'ireletso tse sebetsanang le ts'ebetso ea setifikeiti le kabo ea mantlha, likarolo tsa taolo ea sephethephethe, lits'ebetso tsa ho sibolla litšebeletso, likarolo tsa ponahalo, le likarolo tsa ho romelloa ha log le metrics. Sena sohle se ile sa bokelloa ka lebaka: re ile ra feta tseleng e tloaelehileng ea teko le phoso, ka hona re ne re batla ho kopanya lisebelisoa tsena tsohle ho meralo e mecha ea Kubernetes ho e-na le ho tsosolosa lebili la khale sethaleng se secha. Mokhoa ona ka kakaretso o nolofalitse ho falla, kaha ts'ehetso eohle ea ts'ebeliso e se e ntse e le teng 'me ha e hloke ho etsoa ho tloha qalong.

Ka lehlakoreng le leng, mefuta ea ho bolela esale pele ea mojaro ho Kubernetes ka boeona (joalo ka lisebelisoa, mesebetsi, le li-Daemon sets) ha e lekane bakeng sa morero oa rona. Litaba tsena tsa ts'ebeliso ke litšitiso tse kholo tsa ho fallela Kubernetes. Mohlala, re utloile baetsi ba litšebeletso ba tletleba ka litlhophiso tse sieo kapa tse fosahetseng tsa ho kena. Hape re ile ra kopana le tšebeliso e fosahetseng ea lienjine tsa li-template, ha likopi tse makholo li ne li etsoa ka litlhaloso le mosebetsi o tšoanang, e leng se ileng sa fella ka mathata a bosiu a ho lokisa liphoso.

Hape ho ne ho le thata haholo ho boloka liphetolelo tse fapaneng sehlopheng se le seng. Ak'u inahanele ho rarahana ha tšehetso ea bareki haeba u hloka ho sebetsa ka nako e le 'ngoe liphetolelong tse ngata tsa sebaka se le seng sa nako ea ho sebetsa, ka mathata ohle a bona, likokoana-hloko le lisebelisoa.

Lits'ebetso tsa Basebelisi ba Pinterest le Balaoli

Ho nolofaletsa lienjiniere tsa rona ho kenya ts'ebetsong Kubernetes, le ho nolofatsa le ho potlakisa lisebelisoa tsa rona tsa motheo, re iketselitse litlhaloso tsa rona tsa lisebelisoa tse tloaelehileng (CRDs).

Li-CRD li fana ka ts'ebetso e latelang:

  1. Ho kopanya lisebelisoa tse fapaneng tsa matsoalloa a Kubernetes e le hore li sebetse e le mosebetsi o le mong. Mohlala, sesebelisoa sa PinterestService se kenyelletsa phepelo, ts'ebeletso ea ho kena, le 'mapa oa litlhophiso. Sena se lumella bahlahisi hore ba se ke ba tšoenyeha ka ho theha DNS.
  2. Kenya ts'ehetso e hlokahalang ea kopo. Mosebelisi o hloka ho shebana feela le sets'oants'o sa sets'oants'o ho latela mohopolo oa khoebo ea bona, ha molaoli oa CRD a sebelisa lisebelisoa tsohle tse hlokahalang tsa init, mefuta e fapaneng ea tikoloho le litlhaloso tsa pod. Sena se fana ka boemo bo fapaneng haholo ba matšeliso bakeng sa bahlahisi.
  3. Balaoli ba CRD ba boetse ba laola bophelo ba lisebelisoa tsa tlhaho le ho ntlafatsa phumaneho ea bothata. Sena se kenyelletsa ho hokahanya lintlha tse lakatsehang le tsa 'nete, ho nchafatsa boemo ba CRD le ho boloka lintlha tsa liketsahalo, le tse ling. Ntle le CRD, bahlahisi ba tla tlameha ho laola lisebelisoa tse ngata, tse neng li tla eketsa monyetla oa phoso.

Mohlala ke ona oa PinterestService le sesebelisoa sa kahare se laoloang ke molaoli oa rona:

Ho theha sethala sa kubernetes ho Pinterest

Joalokaha u ka bona ka holimo, ho tšehetsa setshelo sa moetlo re hloka ho kopanya setshelo sa init le li-add-on tse 'maloa ho fana ka tšireletso, ponahalo le sephethephethe sa marang-rang. Ho feta moo, re thehile litempele tsa limmapa tsa tlhophiso le ts'ehetso ea ts'ehetso bakeng sa litempele tsa PVC bakeng sa mesebetsi ea lihlopha, hammoho le ho sala morao mefuta e mengata ea tikoloho ho latela boitsebiso, tšebeliso ea lisebelisoa le pokello ea lithōle.

Ho thata ho nahana hore bahlahisi ba ka batla ho ngola lifaele tsena tsa tlhophiso ka letsoho ntle le tšehetso ea CRD, re se re sa re letho ka ho boloka le ho lokisa litlhophiso.

Ts'ebetso ea ho tsamaisa kopo

Ho theha sethala sa kubernetes ho Pinterest

Setšoantšo se kaholimo se bonts'a mokhoa oa ho tsamaisa sesebelisoa sa tloaelo sa Pinterest ho sehlopha sa Kubernetes:

  1. Bahlahisi ba sebelisana le sehlopha sa rona sa Kubernetes ka CLI le sebopeho sa mosebelisi.
  2. Lisebelisoa tsa CLI/UI li fumana lifaele tsa YAML tsa phepelo ea mosebetsi le thepa e meng ea kaho (ID ea mofuta o tšoanang) ho tsoa ho Artifactory ebe e li romella ho Ts'ebeletso ea Tlhahiso ea Mosebetsi. Mohato ona o etsa bonnete ba hore ke mefuta ea tlhahiso feela e tlisoang sehlopheng.
  3. JSS ke monyako oa li-platform tse fapaneng, ho kenyeletsoa Kubernetes. Mona mosebelisi o netefalitsoe, li-quotas li fanoe mme tlhophiso ea CRD ea rona e hlahlojoa hanyane.
  4. Ka mor'a ho hlahloba CRD ka lehlakoreng la JSS, boitsebiso bo romelloa ho k8s platform API.
  5. Taolo ea rona ea CRD e beha leihlo liketsahalo ho lisebelisoa tsohle tsa basebelisi. E fetolela li-CR hore e be lisebelisoa tsa khale tsa k8s, e eketsa li-module tse hlokahalang, e beha maemo a fapaneng a tikoloho, 'me e etsa mosebetsi o mong oa tšehetso ho netefatsa hore lits'ebetso tsa basebelisi ba nang le lisebelisoa li na le tšehetso e lekaneng ea litšebeletso.
  6. Mookameli oa CRD o fetisetsa data e fumanoeng ho Kubernetes API e le hore e ka sebetsoa ke mohlophisi le ho kenngoa tlhahiso.

mantsoe: Ts'ebetso ena ea pele ho tokollo ea thomello e etselitsoe basebelisi ba pele ba sethala se secha sa k8s. Hajoale re mothating oa ho ntlafatsa ts'ebetso ena hore e kopane ka botlalo le CI/CD ea rona e ncha. Sena se bolela hore re ke ke ra u bolella tsohle tse amanang le Kubernetes. Re labalabela ho arolelana boiphihlelo ba rona le tsoelopele ea sehlopha ntlheng ena posong ea rona e latelang ea blog, "Ho aha sethala sa CI / CD bakeng sa Pinterest."

Mefuta ea lisebelisoa tse khethehileng

Ho ipapisitsoe le litlhoko tse ikhethileng tsa Pinterest, re thehile li-CRD tse latelang ho lumellana le phallo e fapaneng ea mosebetsi:

  • PinterestService ke litšebeletso tse se nang palo tse 'nileng tsa sebetsa ka nako e telele. Litsamaiso tse ngata tsa rona tsa mantlha li ipapisitse le sehlopha sa litšebeletso tse joalo.
  • PinterestJobSet mefuta ea mesebetsi e felletseng ea batch. Boemo bo tloaelehileng ho Pinterest ke hore mesebetsi e mengata e tsamaisa lijana tse tšoanang ka mokhoa o ts'oanang, ho sa tsotelehe lits'ebetso tse ling tse ts'oanang.
  • PinterestCronJob e sebelisoa haholo hammoho le meroalo e menyenyane ea nakoana. Ena ke sekoaelo bakeng sa mosebetsi oa matsoalloa oa cron o nang le mekhoa ea tšehetso ea Pinterest e ikarabellang bakeng sa ts'ireletso, sephethephethe, li-log le metrics.
  • PinterestDaemon e kenyelletsa li-Daemons tsa meaho. Lelapa lena le tsoela pele ho hola ha re ntse re eketsa tšehetso ho lihlopha tsa rona.
  • PinterestTrainingJob e fetela lits'ebetsong tsa Tensorflow le Pytorch, e fana ka boemo bo ts'oanang ba ts'ehetso ea nako ea ho sebetsa joalo ka li-CRD tse ling kaofela. Kaha Pinterest e sebelisa Tensorflow ka mafolofolo le litsamaiso tse ling tsa ho ithuta tsa mochini, re bile le lebaka la ho theha CRD e arohaneng ho li potoloha.

Re boetse re sebetsa ho PinterestStatefulSet, eo haufinyane e tla fetoloa bakeng sa polokelo ea data le litsamaiso tse ling tsa maemo.

Tšehetso ea nako ea ho sebetsa

Ha sesebelisoa sa pod se sebetsa ho Kubernetes, se fumana setifikeiti sa ho itsebahatsa. Setifikeiti sena se sebelisetsoa ho fihlella polokelo ea lekunutu kapa ho buisana le lits'ebeletso tse ling ka mTLS. Ho sa le joalo, Container Init Configurator le Daemon li tla khoasolla litšepeho tsohle tse hlokahalang pele li sebelisa sesebelisoa se kentsoeng. Ha tsohle li se li lokile, koloi e ka thōko ea sephethephethe le Daemon li tla ngolisa aterese ea IP ea module ho Zookeeper ea rona hore bareki ba e fumane. Sena sohle se tla sebetsa hobane mojule oa marang-rang o ile oa hlophisoa pele kopo e qala.

Tse ka holimo ke mehlala e tloaelehileng ea ts'ehetso ea nako ea ho sebetsa bakeng sa meroalo ea mosebetsi. Mefuta e meng ea meroalo ea mesebetsi e ka hloka tšehetso e fapaneng hanyane, empa kaofela e tla ka sebopeho sa li-sidecars, li-node-level kapa li-Daemons tsa boemo ba mochini. Re etsa bonnete ba hore tsena tsohle li kentsoe ka har'a meralo ea motheo ea tsamaiso 'me li lumellana hohle lits'ebetsong, tseo qetellong li fokotsang moroalo mabapi le mosebetsi oa theknoloji le tšehetso ea bareki.

Tlhahlobo le QA

Re ile ra haha ​​​​peipi ea tlhahlobo ea ho qetela ka holim'a lisebelisoa tsa tlhahlobo tse teng tsa Kubernetes. Liteko tsena li sebetsa ho lihlopha tsohle tsa rona. Lipeipi tsa rona li ile tsa fetoha lintlafatso tse ngata pele e fetoha karolo ea sehlopha sa lihlahisoa.

Ntle le lits'ebetso tsa tlhahlobo, re na le lits'ebetso tsa ho beha leihlo le tlhokomeliso tse lulang li beha leihlo boemo ba likarolo tsa sistimi, tšebeliso ea lisebelisoa le matšoao a mang a bohlokoa, a re tsebisang feela ha ho hlokahala hore motho a kenelle.

Mekhoa e meng

Re ile ra sheba mekhoa e meng ho fapana le lisebelisoa tse tloaelehileng, joalo ka li-mutation access controller le li-template system. Leha ho le joalo, kaofela li tla le mathata a bohlokoa a ts'ebetso, kahoo re khethile tsela ea CRD.

Selaoli sa kamohelo se fetotsoeng se ile sa sebelisoa ho hlahisa li-sidecars, mefuta-futa ea tikoloho, le tšehetso e meng ea nako ea ho sebetsa. Leha ho le joalo, e ile ea tobana le mathata a sa tšoaneng, a kang ho tlama lisebelisoa le tsamaiso ea bophelo, moo mathata a joalo a sa hlahang ho CRD.

Ela hloko: Sistimi ea litempele joalo ka lichate tsa Helm le tsona li sebelisoa haholo ho tsamaisa lits'ebetso ka litlhophiso tse tšoanang. Leha ho le joalo, lits'ebetso tsa rona tsa mosebetsi li fapane haholo hore li ka laoloa ho sebelisoa litempele. Hape nakong ea ts'ebetso e tsoelang pele ho tla ba le liphoso tse ngata haholo ha ho sebelisoa li-templates.

Mosebetsi o tlang

Hajoale re sebetsana le mojaro o kopaneng ho pholletsa le lihlopha tsohle tsa rona. Ho ts'ehetsa lits'ebetso tse joalo tsa mefuta le boholo bo fapaneng, re sebetsa libakeng tse latelang:

  • Pokello ea lihlopha e aba lisebelisoa tse kholo ho pholletsa le lihlopha tse fapaneng bakeng sa scalability le botsitso.
  • Ho netefatsa botsitso ba lihlopha, scalability le ponahalo ho theha khokahanyo ea kopo le li-SLA.
  • Ho laola lisebelisoa le li-quotas hore lits'ebetso li se ke tsa hohlana, 'me boholo ba sehlopha bo laoloa ka lehlakoreng la rona.
  • Sethala se secha sa CI/CD sa ho tšehetsa le ho tsamaisa lits'ebetso ho Kubernetes.

Source: www.habr.com

Eketsa ka tlhaloso