Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU

Khale ka 2016 re le Buffer e fetiselitsoe ho Kubernetes, 'me joale li-node tse ka bang 60 (ho AWS) le li-container tse 1500 li sebetsa sehlopheng sa rona sa k8s se laoloang ke kops. Leha ho le joalo, re ile ra fallela ho microservices ka teko le phoso, mme le ka mor'a lilemo tse 'maloa tsa ho sebetsa le k8s re ntse re tobana le mathata a macha. Ka poso ena re tla bua ka mefokolo ea processor: hore na ke hobane'ng ha re ne re nahana hore ke mekhoa e metle le hore na ke hobane'ng ha ba ile ba qetella ba se ntle hakaalo.

Meeli ea processor le throttling

Joalo ka basebelisi ba bang ba bangata ba Kubernetes, Google e khothaletsa haholo ho beha meeli ea CPU. Ntle le maemo a joalo, lijana ka node li ka nka matla ohle a processor, e leng se bakang lits'ebetso tsa bohlokoa tsa Kubernetes (mohlala. kubelet) e tla emisa ho araba likopo. Kahoo, ho beha meeli ea CPU ke tsela e ntle ea ho sireletsa li-node tsa hau.

Meeli ea processor e beha setshelo ho nako e telele ea CPU eo e ka e sebelisang bakeng sa nako e itseng (ea kamehla ke 100ms), 'me setshelo se ke ke sa feta moeli ona. Ho Kubernetes bakeng sa throttling setshelo le ho e thibela ho feta moeli, ho sebelisoa sesebelisoa se khethehileng Karolo ea CFS, empa meeli ena ea maiketsetso ea CPU e qetella e lematsa ts'ebetso le ho eketsa nako ea karabelo ea lijana tsa hau.

Ho ka etsahala'ng haeba re sa behe meeli ea processor?

Ka bomalimabe, rōna ka borōna re ile ra tlameha ho tobana le bothata bona. Node ka 'ngoe e na le ts'ebetso e ikarabellang bakeng sa ho laola lijana kubelet, ’me a khaotsa ho arabela likōpo. Node, ha sena se etsahala, se tla kena mmusong NotReady, 'me lijana tse tsoang ho eona li tla fetisetsoa sebakeng se seng ebe li baka mathata a tšoanang ho li-node tse ncha. Ha se boemo bo loketseng, ho bua hanyane.

Pontšo ea bothata ba ho thothomela le ho arabela

Metric ea bohlokoa bakeng sa ho latedisa setshelo ke trottling, e bonts'a hore na sets'oants'o sa hau se kentsoe ka makhetlo a makae. Re hlokometse ka thahasello boteng ba ho thothomela ka har'a lijana tse ling, ho sa tsotelehe hore na moroalo oa processor o fetelletse kapa che. Mohlala, ha re shebeng e 'ngoe ea li-API tsa rona tsa mantlha:

Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU

Joalokaha u ka bona ka tlase, re behile moeli oa ho 800m (0.8 kapa 80% ea mantlha), le litekanyetso tse phahameng ka ho fetisisa tse fihlellehang 200m (20% ea mantlha). Ho ne ho ka bonahala eka pele re fokotsa ts'ebeletso re ntse re e-na le matla a mangata a processor, leha ho le joalo ...

Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU
E kanna eaba u hlokometse hore leha mojaro oa processor o le ka tlase ho meeli e boletsoeng - haholo ka tlase - ho tsitsipana ho ntse ho etsahala.

Ha re tobane le sena, kapele re ile ra fumana lisebelisoa tse 'maloa (bothata ho github, nehelano ka zadano, poso ho omio) mabapi le ho theoha ha ts'ebetso le nako ea ho arabela litšebeletso ka lebaka la ho thothomela.

Ke hobane'ng ha re bona ho sisinyeha ha CPU e tlaase? Phetolelo e khuts'oane ke ena: "ho na le kokoanyana kernel ea Linux e bakang ho ts'oaroa ho sa hlokahaleng ha lijana tse nang le meeli e boletsoeng ea processor." Haeba u thahasella mofuta oa bothata, u ka bala tlhahiso (видео и mongolo dikgetho) ka Dave Chiluk.

Ho tlosa lithibelo tsa CPU (ka tlhokomeliso e feteletseng)

Kamora lipuisano tse telele, re nkile qeto ea ho tlosa lithibelo tsa processor lits'ebeletso tsohle tse amang ts'ebetso ea bohlokoa ho basebelisi ba rona ka kotloloho kapa ka tsela e sa tobang.

Qeto e ne e se bonolo hobane re ananela haholo botsitso ba sehlopha sa rona. Nakong e fetileng, re se re lekile ho se tsitse ha sehlopha sa rona, 'me joale litšebeletso li ile tsa ja lisebelisoa tse ngata' me tsa fokotsa mosebetsi oa node eohle ea tsona. Joale ntho e ’ngoe le e ’ngoe e ne e batla e fapane: re ne re e-na le kutloisiso e hlakileng ea seo re neng re se lebeletse ho lihlopha tsa rōna, hammoho le leano le letle la ho kenya tšebetsong liphetoho tse reriloeng.

Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU
Lingoliloeng tsa khoebo ka taba e hatellang.

U ka sireletsa li-node tsa hau joang ha lithibelo li tlosoa?

Ho arola litšebeletso tse "sa thibeloang":

Nakong e fetileng, re se re bone li-node tse ling li kena boemong notReady, haholo-holo ka lebaka la litšebeletso tse jang lisebelisoa tse ngata haholo.

Re ile ra etsa qeto ea ho beha litšebeletso tse joalo ka li-node tse arohaneng ("labeled") e le hore li se ke tsa kena-kenana le litšebeletso "tse amanang". Ka lebaka leo, ka ho tšoaea li-node tse ling le ho eketsa parameter ea mamello ho litšebeletso tse "sa amaneng", re fihletse taolo e kholo holim'a sehlopha, 'me ho ile ha e-ba bonolo ho rona ho khetholla mathata ka li-node. Ho etsa ts'ebetso e ts'oanang le uena, u ka itloaetsa litokomane.

Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU

Ho abela processor e nepahetseng le kopo ea memori:

Tšabo ea rona e kholo e ne e le hore ts'ebetso e tla ja lisebelisoa tse ngata haholo mme node e tla emisa ho arabela likopo. Kaha joale (ka lebaka la Datadog) re khona ho beha leihlo lits'ebeletso tsohle tsa sehlopha sa rona ka ho hlaka, ke ile ka hlahlobisisa likhoeli tse 'maloa tsa ts'ebetso ea tseo re neng re rerile ho li khetha e le "tse sa amaneng". Ke beha feela boholo ba tšebeliso ea CPU ka moeli oa 20%, 'me kahoo ke abeloa sebaka sebakeng sa node haeba k8s e leka ho abela litšebeletso tse ling sebakeng seo.

Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU

Joalo ka ha u bona ho graph, mojaro o moholo ho processor o fihlile 242m CPU cores (0.242 processor cores). Bakeng sa kopo ea processor, ho lekane ho nka palo e kholo hanyane ho feta boleng bona. Ka kopo elelloa hore kaha lits'ebeletso li bohareng ba mosebelisi, boleng ba maemo a holimo bo tsamaisana le sephethephethe.

Etsa se tšoanang ka ts'ebeliso ea memori le lipotso, 'me voila - le se le hlophisehile! Bakeng sa tšireletseho e kholoanyane, o ka eketsa pod autoscaling e otlolohileng. Kahoo, nako le nako ha mojaro oa lisebelisoa o phahame, autoscaling e tla hlahisa li-pods tse ncha, 'me kubernetes e tla li abela li-node tse nang le sebaka sa mahala. Haeba ho se na sebaka se setseng sehlopheng ka boeona, u ka ipehela tlhokomeliso kapa u lokise ho eketsoa ha li-node tse ncha ka autoscaling ea bona.

Har'a li-minus, ke habohlokoa ho hlokomela hore re lahlehetsoe ke "boima ba setshelo", ke. palo ea lijana tse mathang sebakeng se le seng. Re ka boela ra ba le "likhatholoho" tse ngata ka sephethephethe se tlaase, hape ho na le monyetla oa hore u fihlele mojaro o phahameng oa processor, empa li-node tsa autoscaling li lokela ho thusa ka ho qetela.

Liphetho

Ke thabetse ho phatlalatsa liphetho tsena tse ntle tse tsoang litekong libekeng tse 'maloa tse fetileng; re se re bone lintlafatso tse kholo karabelong ea lits'ebeletso tsohle tse fetotsoeng:

Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU

Re fumane liphetho tse ntle ka ho fetisisa leqepheng la lehae la rona (buffer.com), ke moo tšebeletso e ileng ea potlakisa ho kena makhetlo a mashome a mabeli a metso e 'meli!

Kubernetes: Potlakisa lits'ebeletso tsa hau ka ho tlosa meeli ea CPU

Na Linux kernel bug e tsitsitse?

Ho joalo Phoso e se e lokisitsoe mme tokiso e kentsoe kernel kabo ea mofuta oa 4.19 le ho feta.

Leha ho le joalo, ha u bala mathata a kubernetes ho github bakeng sa la bobeli la September 2020 re ntse re kopana le ho buuoa ka merero e meng ea Linux e nang le bothata bo tšoanang. Ke lumela hore likhatiso tse ling tsa Linux li ntse li na le kokoanyana ena 'me li ntse li sebetsa ho e lokisa.

Haeba mofuta oa hau oa kabo o le tlase ho 4.19, ke khothaletsa ho ntlafatsa ho ea morao-rao, empa ho sa tsotellehe boemo leha e le bofe u lokela ho leka ho tlosa lithibelo tsa processor 'me u bone hore na throttling e ntse e tsoela pele. Ka tlase o ka bona lenane le sa fellang la lits'ebeletso tsa taolo ea Kubernetes le liphaello tsa Linux:

  • Debian: lokisa e kopantsoe le mofuta oa morao-rao oa kabo, buster, 'me e shebahala e le ncha (Phato 2020). Liphetolelo tse ling tse fetileng le tsona li ka lokisoa.
  • Ubuntu: lokisa e kopantsoe le mofuta oa morao-rao Ubuntu Focal Fossa 20.04
  • EKS e se e na le tokiso ka December 2019. Haeba mofuta oa hau o le tlase ho feta ona, o lokela ho nchafatsa AMI.
  • kops: Ho tloha ka Phuptjane 2020 у kops 1.18+ Setšoantšo se ka sehloohong sa moamoheli e tla ba Ubuntu 20.04. Haeba mofuta oa hau oa kops o tsofetse, o kanna oa tlameha ho emela ho lokisoa. Rona ka borona re emetse joale.
  • GKE (Google Cloud): Lokisa ho kopanngoa ka Pherekhong 2020, leha ho le joalo ho na le mathata ka throttling li ntse li bonoa.

Seo u lokelang ho se etsa haeba tokiso e lokisa bothata ba ho thothomela?

Ha ke na bonnete ba hore bothata bo rarollotsoe ka botlalo. Ha re fihla mofuta oa kernel ka tokiso, ke tla leka sehlopha ebe ke ntlafatsa poso. Haeba ho na le motho ea seng a nchafalitse, nka thabela ho bala liphetho tsa hau.

fihlela qeto e

  • Haeba o sebetsa le lijana tsa Docker tlasa Linux (ho sa tsotelehe Kubernetes, Mesos, Swarm kapa tse ling), lijana tsa hau li ka lahleheloa ke ts'ebetso ka lebaka la ho thothomela;
  • Leka ho ntlafatsa mofuta oa morao-rao oa kabo ea hau ka tšepo ea hore bothata bo se bo lokisitsoe;
  • Ho tlosa meeli ea processor ho tla rarolla bothata, empa ena ke mokhoa o kotsi o lokelang ho sebelisoa ka hloko e feteletseng (ho molemo ho qala ho ntlafatsa kernel le ho bapisa liphetho);
  • Haeba u tlositse meeli ea CPU, hlokomela ka hloko ts'ebeliso ea hau ea CPU le mohopolo 'me u netefatse hore lisebelisoa tsa hau tsa CPU li feta ts'ebeliso ea hau;
  • Khetho e sireletsehileng e ka ba ho li-pods tsa autoscale ho etsa li-pods tse ncha haeba ho na le thepa e phahameng ea thepa, e le hore kubernetes e ba abele li-node tsa mahala.

Ke ts'epa hore poso ena e tla u thusa ho ntlafatsa ts'ebetso ea lits'ebetso tsa lits'ebetso tsa hau.

PES ke mongoli o lumellana le babali le bahlalosi (ka Senyesemane).


Source: www.habr.com

Eketsa ka tlhaloso