Cov txheej txheem zoo thiab kev saib xyuas cov ntaub ntawv dhau los ua lub hauv paus hauv kev ua haujlwm ntawm pawg loj. Peb tseem tsis tau pom qhov kev daws teeb meem thoob ntiaj teb uas yuav npog 100% ntawm txhua qhov kev saib xyuas xav tau, yog li peb niaj hnub tsim cov kev cai sib txawv hauv ib puag ncig no.
Zabbix. Kev saib xyuas zoo qub, uas yog tsim los saib xyuas tag nrho cov xwm txheej ntawm cov txheej txheem. Nws qhia peb thaum lub node tuag nyob rau hauv cov nqe lus ntawm kev ua, nco, disks, network, thiab hais txog. Tsis muaj dab tsi supernatural, tab sis peb kuj muaj cais DaemonSet ntawm cov neeg sawv cev, nrog kev pab los ntawm cov uas, piv txwv li, peb saib xyuas lub xeev ntawm DNS nyob rau hauv pawg: peb saib rau ruam coredns pods, peb xyuas qhov muaj ntawm sab nraud hosts. Nws yuav zoo li yog vim li cas thab nrog qhov no, tab sis nrog cov tsheb loj loj ntawm cov khoom siv no yog qhov tseem ceeb ntawm kev ua tsis tiav. kuv xa piav, cas kuv tawm tsam nrog DNS kev ua tau zoo hauv pawg.
Prometheus Operator. Ib txheej ntawm cov exporters sib txawv muab cov ntsiab lus loj ntawm tag nrho cov khoom ntawm pawg. Tom ntej no, peb pom tag nrho cov no ntawm cov dashboards loj hauv Grafana, thiab siv alertmanager rau kev ceeb toom.
Lwm yam cuab yeej pab tau rau peb yog lis-ingress. Peb tau sau nws tom qab ob peb zaug peb tau ntsib qhov xwm txheej uas ib pab pawg sib tshooj lwm pab pawg Ingress txoj hauv kev, ua rau 50x yuam kev. Tam sim no ua ntej xa mus rau kev tsim khoom, cov neeg tsim khoom tshawb xyuas tias tsis muaj leej twg yuav cuam tshuam, thiab rau kuv pab neeg no yog ib qho cuab yeej zoo rau kev kuaj thawj zaug ntawm cov teeb meem nrog Ingresses. Nws yog funny uas thaum xub thawj nws tau sau rau admins thiab nws zoo nkaus li "clumsy", tab sis tom qab dev teams poob rau hauv kev hlub nrog lub cuab tam, nws tau hloov ntau heev thiab pib zoo li tsis zoo li "ib tug admin ua lub web ntsej muag rau admins. β Tsis ntev peb yuav tso tseg cov cuab yeej no thiab cov xwm txheej zoo li no yuav raug lees paub txawm tias ua ntej lub raj xa dej tau dov tawm.
Pab neeg muaj peev xwm hauv Cube
Ua ntej peb nkag mus rau hauv cov piv txwv, nws tsim nyog piav qhia seb peb faib cov peev txheej li cas rau microservices.
Kom nkag siab tias pab pawg twg thiab siv lawv li cas peev txheej (processor, nco, SSD hauv zos), peb faib txhua qhov lus txib nws tus kheej npe nyob rau hauv "Cube" thiab txwv nws qhov siab tshaj plaws peev xwm ntawm processor, nco thiab disk, yav tas los tham txog cov kev xav tau ntawm pab pawg. Raws li, ib qho lus txib, feem ntau, yuav tsis thaiv tag nrho pawg rau kev xa tawm, faib ntau txhiab tus cores thiab terabytes ntawm lub cim xeeb. Kev nkag mus rau namespace tau tso cai los ntawm AD (peb siv RBAC). Namespaces thiab lawv cov kev txwv tau ntxiv los ntawm kev thov rub mus rau GIT chaw cia khoom, thiab tom qab ntawd txhua yam tau txiav tawm los ntawm Ansible pipeline.
Kub" thov yog tus naj npawb ntawm guaranteed reserved kev pab rau plhaub taum pauv (ib lossis ntau lub thawv docker) hauv ib pawg. Limit yog qhov siab tshaj plaws uas tsis tau lees paub. Feem ntau koj tuaj yeem pom ntawm daim duab qhia tias qee pab pawg tau teeb tsa nws tus kheej ntau dhau ntawm kev thov rau tag nrho nws cov ntawv thov thiab tsis tuaj yeem xa daim ntawv thov mus rau "Cube", vim tias txhua qhov kev thov nyob rau hauv lawv lub npe chaw twb tau "siv".
Txoj hauv kev kom raug ntawm qhov teeb meem no yog saib qhov kev siv cov peev txheej tiag tiag thiab muab piv nrog cov nyiaj tau thov (Request).
Nyob rau hauv cov screenshots saum toj no koj tuaj yeem pom tias "Thov" CPUs tau phim rau cov xov tooj tiag tiag, thiab Kev txwv tuaj yeem tshaj li cov xov tooj ntawm CPU tiag =)
Tam sim no cia peb saib qee qhov chaw nyob hauv kev nthuav dav (Kuv xaiv namespace kube-system - qhov system namespace rau cov khoom ntawm "Cube" nws tus kheej) thiab pom qhov piv ntawm qhov siv tau siv lub sijhawm thiab nco rau qhov thov:
Nws yog qhov pom tseeb tias ntau lub cim xeeb thiab CPU tau tshwj tseg rau cov kev pabcuam system dua li siv tau tiag tiag. Nyob rau hauv cov ntaub ntawv ntawm kube-system, qhov no yog justified: nws tshwm sim hais tias nginx ingress maub los los yog nodelocaldns ntawm lawv ncov ntaus CPU thiab noj ntau RAM, yog li ntawm no xws li ib tug cia yog justified. Tsis tas li ntawd, peb tsis tuaj yeem tso siab rau cov kab kos rau 3 teev dhau los: nws yog qhov xav pom cov kev ntsuas keeb kwm dhau lub sijhawm loj.
Ib qho system ntawm "cov lus pom zoo" tau tsim. Piv txwv li, ntawm no koj tuaj yeem pom cov peev txheej twg yuav zoo dua los ntawm kev nce qhov "tso cai" (lub siab tso cai bar) kom "throttling" tsis tshwm sim: lub sijhawm thaum cov peev txheej tau siv CPU lossis nco hauv lub sijhawm faib thiab tos kom txog thaum nws yuav "tsis khov":
Thiab ntawm no yog cov pods uas yuav tsum txwv tsis pub lawv qab los noj mov:
rau throttling + Kev saib xyuas cov peev txheej, koj tuaj yeem sau ntau dua ib kab lus, yog li nug cov lus nug hauv cov lus. Hauv ob peb lo lus, kuv tuaj yeem hais tias txoj haujlwm ntawm kev siv cov kev ntsuas no nyuaj heev thiab yuav tsum tau siv sijhawm ntau thiab ntsuas kev ua haujlwm nrog "lub qhov rais" thiab "CTE" Prometheus / VictoriaMetrics (cov ntsiab lus no yog nyob rau hauv quotes, txij li thaum muaj yuav luag. tsis muaj dab tsi zoo li no hauv PromQL, thiab koj yuav tsum faib cov lus nug txaus ntshai rau hauv ntau lub vijtsam ntawm cov ntawv nyeem thiab ua kom lawv zoo).
Raws li qhov tshwm sim, cov neeg tsim khoom muaj cov cuab yeej los saib xyuas lawv lub npe chaw nyob hauv Cube, thiab lawv tuaj yeem xaiv rau lawv tus kheej nyob qhov twg thiab lub sijhawm twg cov ntawv thov tuaj yeem muaj lawv cov peev txheej "txiav," thiab cov servers twg tuaj yeem muab tag nrho CPU txhua hmo.
Cov txheej txheem
Nyob rau hauv lub tuam txhab raws li nws yog tam sim no zam, peb ua raws li DevOps- thiab SRE- tus kws kho mob Thaum lub tuam txhab muaj 1000 microservices, txog 350 tus tsim tawm thiab 15 tus thawj tswj hwm rau tag nrho cov txheej txheem, koj yuav tsum "ua kom zoo nkauj": tom qab tag nrho cov "baswords" no yog qhov yuav tsum tau ceev kom automate txhua yam thiab txhua tus, thiab cov thawj coj yuav tsum tsis txhob muaj lub hauv paus. hauv cov txheej txheem.