Tsim lub kubernetes platform ntawm Pinterest

Tau ntau xyoo, Pinterest's 300 lab cov neeg siv tau tsim ntau dua 200 billion tus pins ntawm ntau dua 4 billion boards. Txhawm rau ua haujlwm pab tub rog ntawm cov neeg siv thiab cov ntsiab lus loj, lub portal tau tsim ntau txhiab qhov kev pabcuam, xws li microservices uas tuaj yeem ua haujlwm los ntawm ob peb CPUs, mus rau cov monoliths loj heev uas khiav ntawm tag nrho cov nkoj ntawm lub tshuab virtual. Thiab ces lub sij hawm tuaj thaum lub tuam txhab lub qhov muag poob rau k8s. Vim li cas "lub voos xwmfab" zoo li zoo ntawm Pinterest? Koj yuav kawm txog qhov no los ntawm peb cov kev txhais lus ntawm ib tsab xov xwm tsis ntev los no los ntawm blog Pinterest engeneering.

Tsim lub kubernetes platform ntawm Pinterest

Yog li, ntau pua lab tus neeg siv thiab ntau pua lab tus pins. Txhawm rau ua haujlwm pab tub rog ntawm cov neeg siv thiab cov ntsiab lus loj, peb tau tsim ntau txhiab qhov kev pabcuam, xws li microservices uas tuaj yeem ua haujlwm los ntawm ob peb CPUs, mus rau cov monoliths loj uas khiav ntawm tag nrho cov nkoj ntawm lub tshuab virtual. Tsis tas li ntawd, peb muaj ntau lub moj khaum uas tej zaum yuav xav tau CPU, nco, lossis I / O nkag.

Hauv kev tswj xyuas cov cuab yeej zoo no, pab pawg txhim kho ntsib ntau yam teeb meem:

  • Tsis muaj ib txoj hauv kev zoo rau cov engineers los khiav qhov chaw tsim khoom. Cov kev pabcuam tsis muaj lub xeev, cov kev pabcuam hauv lub xeev thiab cov haujlwm nyob rau hauv kev txhim kho tseem ceeb yog raws li cov txheej txheem thev naus laus zis sib txawv. Qhov no tau ua rau tsim kom muaj kev cob qhia tag nrho rau cov engineers, thiab tseem cuam tshuam rau kev ua haujlwm ntawm peb pab pawg tsim kho.
  • Cov neeg tsim khoom nrog lawv tus kheej lub nkoj ntawm lub tshuab virtual tsim lub nra hnyav rau cov thawj coj sab hauv. Yog li ntawd, cov haujlwm yooj yim xws li hloov kho OS lossis AMI siv sijhawm ntau lub lis piam thiab hli. Qhov no ua rau muaj kev ua haujlwm ntau ntxiv hauv qhov zoo li txhua hnub.
  • Kev nyuaj hauv kev tsim cov cuab yeej tswj hwm kev tsim kho thoob ntiaj teb nyob rau sab saum toj ntawm cov kev daws teeb meem uas twb muaj lawm. Qhov xwm txheej yog qhov nyuaj ntxiv los ntawm qhov tseeb tias nrhiav cov tswv ntawm cov tshuab virtual tsis yooj yim. Qhov ntawd yog, peb tsis paub tias lub peev xwm no puas tuaj yeem raug rho tawm kom nyab xeeb los ua haujlwm hauv lwm qhov ntawm peb cov txheej txheem.

Container orchestration systems yog ib txoj hauv kev los koom ua ke kev tswj hwm kev ua haujlwm. Lawv qhib qhov rooj kom nce kev loj hlob sai thiab yooj yim rau kev tswj hwm vaj tse, vim tias txhua qhov kev koom tes hauv qhov project yog tswj hwm los ntawm ib lub hauv paus system.

Tsim lub kubernetes platform ntawm Pinterest

Daim duab 1: Infrastructure tseem ceeb (kev ntseeg siab, tsim khoom tsim tau, thiab kev ua tau zoo).

Pab pawg Cloud Management Platform ntawm Pinterest pom K8s hauv 2017. Los ntawm thawj ib nrab ntawm 2017, peb tau sau tseg feem ntau ntawm peb cov peev txheej tsim khoom, suav nrog API thiab tag nrho peb cov web servers. Tom qab ntawd, peb tau ua qhov kev ntsuam xyuas tag nrho ntawm ntau lub tshuab rau orchestrating thawv daws, tsim pawg thiab ua haujlwm nrog lawv. Txog rau thaum xaus ntawm 2017, peb txiav txim siab siv Kubernetes. Nws tau hloov pauv tau yooj yim thiab tau txais kev txhawb nqa dav dav hauv cov neeg tsim khoom hauv zej zog.

Txog rau tam sim no, peb tau tsim peb tus kheej cov cuab yeej khau raj raws li Kops thiab tau hloov pauv cov txheej txheem uas twb muaj lawm xws li kev sib tham, kev ruaj ntseg, kev ntsuas, kev txiav, kev tswj tus kheej, thiab kev khiav mus rau Kubernetes. Peb kuj tau siv cov qauv kev ua haujlwm rau peb cov peev txheej, qhov nyuaj uas tau muab zais los ntawm cov neeg tsim khoom. Tam sim no peb tau tsom mus rau kev ua kom ruaj khov ntawm pawg, ntsuas nws thiab txuas cov neeg siv khoom tshiab.

Kubernetes: Txoj Kev Pinterest

Pib nrog Kubernetes ntawm qhov ntsuas ntawm Pinterest raws li lub platform uas peb cov engineers yuav nyiam tuaj nrog ntau qhov kev sib tw.

Raws li lub tuam txhab loj, peb tau nqis peev ntau hauv cov cuab yeej tsim kho vaj tse. Piv txwv suav nrog cov cuab yeej kev ruaj ntseg uas tswj xyuas daim ntawv pov thawj thiab kev faib khoom tseem ceeb, cov khoom siv tswj kev khiav tsheb, cov kev pabcuam nrhiav pom, cov khoom pom pom, thiab cov cav thiab cov khoom xa tawm. Tag nrho cov no tau sau vim yog vim li cas: peb tau dhau los ntawm txoj hauv kev ib txwm muaj ntawm kev sim thiab ua yuam kev, thiab yog li ntawd peb xav muab tag nrho cov cuab yeej no rau hauv cov txheej txheem tshiab ntawm Kubernetes es tsis txhob rov tsim dua lub log qub ntawm lub platform tshiab. Txoj kev no tag nrho ua kom yooj yim rau kev tsiv teb tsaws, txij li tag nrho cov ntawv thov kev txhawb nqa twb muaj lawm thiab tsis tas yuav tsim los ntawm kos.

Ntawm qhov tod tes, lub load forecasting qauv hauv Kubernetes nws tus kheej (xws li kev xa tawm, kev ua haujlwm, thiab Daemon teeb) tsis txaus rau peb qhov project. Cov teeb meem kev siv tau no yog teeb meem loj heev rau kev tsiv mus rau Kubernetes. Piv txwv li, peb tau hnov ​​​​cov kev pabcuam tsim tawm tsis txaus siab txog qhov ploj lossis tsis raug nkag mus. Peb kuj tau ntsib kev siv tsis raug ntawm cov qauv siv cav, thaum ntau pua daim ntawv luam tau tsim nrog tib lub ntsiab lus thiab kev ua haujlwm, uas ua rau muaj kev npau suav phem debugging teeb meem.

Nws kuj yog ib qho nyuaj heev los tswj cov ntawv sib txawv hauv tib pawg. Xav txog qhov nyuaj ntawm kev txhawb nqa cov neeg siv khoom yog tias koj xav tau ua haujlwm ib txhij hauv ntau lub versions ntawm tib lub sijhawm ib puag ncig, nrog rau tag nrho lawv cov teeb meem, kab thiab hloov tshiab.

Pinterest Cov Neeg Siv Khoom thiab Tswj

Txhawm rau ua kom yooj yim rau peb cov engineers los siv Kubernetes, thiab ua kom yooj yim thiab ua kom peb cov txheej txheem yooj yim, peb tau tsim peb tus kheej cov kev cai txhais (CRDs).

CRDs muab cov haujlwm hauv qab no:

  1. Kev sib koom ua ke sib txawv cov peev txheej Kubernetes kom lawv ua haujlwm ua haujlwm ib leeg. Piv txwv li, PinterestService cov peev txheej suav nrog kev xa tawm, kev pabcuam nkag mus, thiab daim ntawv qhia kev teeb tsa. Qhov no tso cai rau cov neeg tsim khoom tsis txhob txhawj xeeb txog kev teeb tsa DNS.
  2. Siv cov kev pab txhawb nqa tsim nyog. Tus neeg siv yuav tsum tau tsom mus rau lub thawv tshwj xeeb raws li lawv cov kev lag luam logic, thaum CRD maub los siv tag nrho cov khoom tsim nyog init ntim, ib puag ncig hloov pauv thiab pod specifications. Qhov no muab cov theem sib txawv ntawm kev nplij siab rau cov neeg tsim khoom.
  3. CRD cov tswj hwm tseem tswj hwm lub neej ntawm cov peev txheej ib txwm muaj thiab txhim kho kev debug muaj. Qhov no suav nrog kev sib tham qhov xav tau thiab qhov tseeb tshwj xeeb, hloov kho CRD raws li txoj cai thiab tswj xyuas cov xwm txheej, thiab lwm yam. Yog tsis muaj CRD, cov neeg tsim khoom yuav raug yuam kom tswj hwm ntau yam kev pabcuam, uas tsuas yog ua rau muaj qhov yuam kev.

Nov yog ib qho piv txwv ntawm PinterestService thiab cov peev txheej sab hauv uas yog tswj hwm los ntawm peb tus maub los:

Tsim lub kubernetes platform ntawm Pinterest

Raws li koj tuaj yeem pom saum toj no, txhawm rau txhawb nqa lub thawv ntim kev cai peb yuav tsum tau ua ke ib lub thawv init thiab ob peb add-ons los muab kev ruaj ntseg, pom kev, thiab kev sib txuas hauv network. Tsis tas li ntawd, peb tau tsim daim ntawv qhia kev teeb tsa thiab siv kev txhawb nqa rau PVC cov qauv rau kev ua haujlwm batch, nrog rau kev taug qab ntawm ntau qhov chaw ib puag ncig los taug qab tus kheej, kev siv peev txheej, thiab kev khaws khib nyiab.

Nws yog ib qho nyuaj rau xav txog tias cov neeg tsim khoom yuav xav sau cov ntaub ntawv teeb tsa los ntawm tes yam tsis muaj CRD kev txhawb nqa, cia nyob ib leeg ntxiv tswj thiab kho qhov teeb meem.

Daim ntawv thov deployment workflow

Tsim lub kubernetes platform ntawm Pinterest

Cov duab saum toj no qhia tau hais tias yuav ua li cas siv Pinterest cov peev txheej kev cai rau Kubernetes pawg:

  1. Cov neeg tsim khoom cuam tshuam nrog peb cov Kubernetes pawg los ntawm CLI thiab cov neeg siv interface.
  2. Cov cuab yeej CLI / UI khaws cov ntaub ntawv teeb tsa ua haujlwm YAML thiab lwm yam tsim khoom (tib yam version ID) los ntawm Artifactory thiab tom qab ntawd xa lawv mus rau Txoj Haujlwm Xa Txoj Haujlwm. Cov kauj ruam no ua kom ntseeg tau tias tsuas yog cov khoom tsim tawm raug xa mus rau pawg.
  3. JSS yog lub rooj vag rau ntau lub platform, suav nrog Kubernetes. Ntawm no tus neeg siv tau txais kev lees paub, quotas raug muab tawm thiab kev teeb tsa ntawm peb CRD raug kuaj xyuas ib nrab.
  4. Tom qab kuaj xyuas CRD ntawm JSS sab, cov ntaub ntawv raug xa mus rau k8s platform API.
  5. Peb CRD maub los saib xyuas cov xwm txheej ntawm txhua tus neeg siv khoom siv. Nws hloov CRs rau hauv haiv neeg k8s cov peev txheej, ntxiv cov qauv tsim nyog, teeb tsa qhov chaw tsim nyog hloov pauv, thiab ua lwm yam kev txhawb nqa kom ntseeg tau tias cov neeg siv cov ntawv ntim khoom muaj kev txhawb nqa txaus.
  6. CRD maub los tom qab ntawd hla cov ntaub ntawv tau txais mus rau Kubernetes API kom nws tuaj yeem ua tiav los ntawm tus teem sijhawm thiab muab tso rau hauv kev tsim khoom.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Qhov kev ua haujlwm ua ntej tso tawm ntawm kev xa tawm tau tsim rau thawj cov neeg siv ntawm lub platform tshiab k8s. Peb tam sim no nyob rau hauv tus txheej txheem ntawm refining cov txheej txheem no kom tag nrho nrog peb CI/CD tshiab. Qhov no txhais tau tias peb tsis tuaj yeem qhia koj txhua yam ntsig txog Kubernetes. Peb tos ntsoov rau kev sib qhia peb cov kev paub dhau los thiab pab pawg kev nce qib hauv cov lus qhia no hauv peb cov ntawv blog tom ntej, "Tsim CI / CD platform rau Pinterest."

Hom kev pab tshwj xeeb

Raws li Pinterest cov kev xav tau tshwj xeeb, peb tau tsim CRDs hauv qab no kom haum rau cov haujlwm sib txawv:

  • PinterestService yog cov kev pabcuam tsis muaj xeev uas tau ua haujlwm ntev. Ntau ntawm peb cov txheej txheem tseem ceeb yog ua raws li cov kev pabcuam zoo li no.
  • PinterestJobSet qauv ua haujlwm puv lub voj voog batch. Ib qho xwm txheej tshwm sim ntawm Pinterest yog tias ntau txoj haujlwm khiav tib lub ntim rau tib lub sijhawm, tsis hais txog lwm cov txheej txheem zoo sib xws.
  • PinterestCronJob tau siv dav ua ke nrog cov khoom thauj me me. Qhov no yog wrapper rau haiv neeg cron ua hauj lwm nrog Pinterest txhawb mechanisms uas yog lub luag hauj lwm rau kev ruaj ntseg, tsheb, cav thiab metrics.
  • PinterestDaemon suav nrog Infrastructure Daemon. Tsev neeg no tseem loj hlob ntxiv thaum peb ntxiv kev txhawb nqa ntxiv rau peb pawg.
  • PinterestTrainingJob txuas mus rau Tensorflow thiab Pytorg cov txheej txheem, muab tib theem ntawm kev txhawb nqa lub sijhawm ua haujlwm zoo li tag nrho lwm yam CRDs. Txij li thaum Pinterest nquag siv Tensorflow thiab lwm lub tshuab kev kawm, peb muaj laj thawj tsim kom muaj CRD cais nyob ib puag ncig lawv.

Peb kuj tseem ua haujlwm ntawm PinterestStatefulSet, uas yuav sai sai no rau cov ntaub ntawv khaws cia thiab lwm lub xeev.

Kev them nyiaj yug Runtime

Thaum ib daim ntawv thov pod khiav ntawm Kubernetes, nws tau txais daim ntawv pov thawj los txheeb xyuas nws tus kheej. Daim ntawv pov thawj no yog siv los nkag mus rau qhov chaw khaws cia lossis sib txuas lus nrog lwm cov kev pabcuam ntawm mTLS. Lub caij no, Container Init Configurator thiab Daemon yuav rub tawm tag nrho cov kev vam khom tsim nyog ua ntej khiav daim ntawv thov ntim khoom. Thaum txhua yam npaj txhij, cov tsheb khiav tsheb thiab Daemon yuav tso npe rau lub module tus IP chaw nyob nrog peb Zookeeper kom cov neeg tuaj yeem nrhiav tau. Tag nrho cov no yuav ua haujlwm vim tias lub network module tau teeb tsa ua ntej daim ntawv thov raug tso tawm.

Cov saum toj no yog cov piv txwv ntawm runtime txhawb nqa rau kev ua haujlwm. Lwm hom kev ua haujlwm yuav xav tau kev txhawb nqa me ntsis, tab sis lawv txhua tus tuaj hauv daim ntawv ntawm pod-level sidecars, node-level lossis virtual machine-level Daemons. Peb xyuas kom meej tias tag nrho cov no tau muab tso rau hauv kev tswj hwm kev tswj hwm thiab ua kom zoo ib yam ntawm cov ntawv thov, uas thaum kawg txo qis lub nra ntawm kev ua haujlwm thiab kev txhawb nqa cov neeg siv khoom.

Kev xeem thiab QA

Peb tau tsim qhov kawg-rau-kawg xeem kav nyob rau sab saum toj ntawm Kubernetes xeem infrastructure. Cov kev xeem no siv tau rau txhua qhov ntawm peb pawg. Peb cov kav dej tau dhau los ntawm ntau qhov kev hloov kho ua ntej nws tau los ua ib feem ntawm pawg khoom.

Ntxiv nrog rau kev sim tshuab, peb muaj kev saib xyuas thiab ceeb toom cov kab ke uas niaj hnub saib xyuas cov xwm txheej ntawm cov khoom siv hauv lub cev, kev siv peev txheej thiab lwm yam tseem ceeb, ceeb toom rau peb tsuas yog thaum muaj kev cuam tshuam tib neeg tsim nyog.

Lwm yam

Peb tau saib qee qhov kev hloov pauv rau cov peev txheej kev cai, xws li kev hloov pauv nkag mus tswj thiab cov qauv qauv. Txawm li cas los xij, lawv txhua tus tuaj nrog cov kev sib tw ua haujlwm tseem ceeb, yog li peb xaiv txoj hauv kev CRD.

Ib tug mutational admission controller tau siv los qhia cov tsheb sib tw, ib puag ncig hloov pauv, thiab lwm yam kev txhawb nqa lub sijhawm. Txawm li cas los xij, nws tau ntsib ntau yam teeb meem, xws li kev sib txuas cov peev txheej thiab kev tswj hwm lub neej, qhov teeb meem tsis tshwm sim hauv CRD.

Nco ntsoov: Template systems xws li Helm charts kuj tau siv dav los khiav cov ntawv thov nrog cov kev teeb tsa zoo sib xws. Txawm li cas los xij, peb cov ntawv thov kev ua haujlwm muaj ntau hom kev tswj hwm siv cov qauv. Tsis tas li thaum kev xa mus tas li yuav muaj ntau qhov yuam kev thaum siv cov qauv.

Kev ua haujlwm tom ntej

Tam sim no peb tab tom cuam tshuam nrog kev sib xyaw ua ke ntawm txhua qhov ntawm peb pawg. Txhawm rau txhawb cov txheej txheem ntawm ntau hom thiab ntau thiab tsawg, peb ua haujlwm hauv cov haujlwm hauv qab no:

  • Ib pawg ntawm pawg faib cov ntawv thov loj thoob plaws pawg sib txawv rau kev ua kom muaj zog thiab ruaj khov.
  • Ua kom muaj kev ruaj ntseg ntawm pawg, scalability thiab visibility los tsim cov ntawv thov txuas thiab SLAs.
  • Kev tswj cov peev txheej thiab cov quotas kom cov ntawv thov tsis sib haum xeeb, thiab qhov ntsuas ntawm pawg tswj hwm ntawm peb feem.
  • Ib lub platform tshiab CI/CD rau kev txhawb nqa thiab xa cov ntawv thov ntawm Kubernetes.

Tau qhov twg los: www.hab.com

Ntxiv ib saib