Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Pale ena e mabapi le kamoo re sebelisang lijana sebakeng sa tlhahiso, haholo-holo Kubernetes. Sengoliloeng se ikemiselitse ho bokella metrics le logs ho tsoa lijaneng, hammoho le ho aha litšoantšo.

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Re tsoa k'hamphaning ea fintech Exness, e hlahisang litšebeletso tsa khoebo ea inthaneteng le lihlahisoa tsa fintech bakeng sa B2B le B2C. R&D ea rona e na le lihlopha tse ngata tse fapaneng, lefapha la nts'etsopele le na le basebetsi ba 100+.

Re emela sehlopha se ikarabellang bakeng sa sethala sa hore baetsi ba rona ba bokelle le ho tsamaisa khoutu. Haholo-holo, re na le boikarabello ba ho bokella, ho boloka le ho tlaleha metrics, logs, le liketsahalo ho tsoa lits'ebetsong. Hajoale re sebetsa lijana tsa Docker tse ka bang likete tse tharo sebakeng sa tlhahiso, re boloka polokelo ea rona ea data e kholo ea 50 TB, 'me re fana ka litharollo tsa meralo tse hahiloeng ho potoloha meaho ea rona: Kubernetes, Rancher, le bafani ba fapaneng ba maru ba sechaba. 

Tšusumetso ea rona

Ho tuka ke eng? Ha ho motho ea ka arabang. Leifo le hokae? Ho thata ho utloisisa. E chesitse neng? U ka tseba, empa eseng hang-hang. 

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Ke hobane'ng ha linkho tse ling li eme ha tse ling li oele? Ke setshelo sefe se neng se le molato? Etsoe bokantle ba lijana bo tšoana, empa ka hare se seng le se seng se na le Neo ea sona.

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Bahlahisi ba rona ke bahlankana ba nang le bokhoni. Ba etsa litšebeletso tse ntle tse tlisang phaello ho khampani. Empa ho na le liphoso ha lijana tse nang le lits'ebetso li kheloha. Setshelo se le seng se ja CPU e ngata haholo, se seng se ja marang-rang, karolo ea boraro e sebelisa ts'ebetso ea I / O, 'me ea bone ha e hlake hantle hore na e etsa eng ka li-sockets. E oa kaofela 'me sekepe sea teba. 

Baemeli

E le ho utloisisa se etsahalang ka hare, re ile ra etsa qeto ea ho beha baemeli ka ho toba ka har'a lik'hontheinara.

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Mahlahana ana ke a thibelang mananeo a bolokang linkho li le boemong ba hore li se ke tsa robeha. Li-agents li lekane, 'me sena se lumella mokhoa o tloaelehileng oa ho sebeletsa lijana. 

Tabeng ea rona, baemeli ba tlameha ho fana ka lits'oants'o ka mokhoa o tloaelehileng, o tšoailoe le ho thothomela. Hape ba lokela ho re fa metrics e tloaelehileng e ka atolosoang ho latela pono ea kopo ea khoebo.

Baemeli ba boetse ba bolela lisebelisoa tsa ts'ebetso le tlhokomelo tse ka sebetsang lits'ebetsong tse fapaneng tsa 'mino tse tšehetsang litšoantšo tse fapaneng (Debian, Alpine, Centos, joalo-joalo).

Qetellong, baemeli ba tlameha ho ts'ehetsa CI / CD e bonolo e kenyelletsang lifaele tsa Docker. Ho seng joalo, sekepe se tla oa, hobane lijana li tla qala ho tsamaisoa ka litselana tse "khopameng".

Haha ts'ebetso le sesebelisoa sa setšoantšo sa sepheo

Ho boloka ntho e 'ngoe le e' ngoe e le maemong 'me e laoleha, mofuta o itseng oa mokhoa oa ho haha ​​o hloka ho lateloa. Ka hona, re nkile qeto ea ho bokella lijana ka lijana - sena ke ho khutla.

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Mona lijana li emeloa ke lintlha tse tiileng. Ka nako e tšoanang, ba ile ba etsa qeto ea ho kenya lisebelisoa ka har’a tsona e le hore “bophelo bo se ke ba tšoana le raspberries.” Ke hobane'ng ha sena se entsoe, re tla hlalosa ka tlase.
 
Sephetho ke sesebelisoa sa ho aha — sets'oants'o se ikhethileng se supang mefuta e ikhethileng ea kabo le mefuta e ikhethileng ea mongolo.

Re e sebelisa joang? Re na le Docker Hub e nang le setshelo. Re e bonahatsa ka hare ho tsamaiso ea rona ho tlosa ho itšetleha ka ntle. Sephetho ke setshelo se tšoailoeng ka mosehla. Re theha template ho kenya liphaello tsohle le mangolo ao re a hlokang ka har'a setshelo. Ka mor'a moo, re bokella setšoantšo se seng se loketse ho sebelisoa: bahlahisi ba kenya khoutu le tse ling tsa bona tse khethehileng tse itšetlehileng ka eona. 

Ke eng e ntle ka mokhoa ona? 

  • Taba ea pele, taolo e felletseng ea lisebelisoa tsa ho aha - ho aha setshelo, liphetolelo tsa mongolo le kabo. 
  • Taba ea bobeli, re fihletse maemo a maemo: re theha litempele, setšoantšo sa mahareng le se seng se loketse ho sebelisoa ka tsela e ts'oanang. 
  • Ea boraro, linkho li re fa matla. Kajeno re sebelisa Gitlab, mme hosane re tla fetohela ho TeamCity kapa Jenkins mme re tla khona ho tsamaisa lijana tsa rona ka tsela e ts'oanang. 
  • Ea bone, ho fokotsa ho itšetleha. E ne e se ka tsietsi hore ebe re kenya lisebelisoa tsa kabo ka har'a setshelo, hobane sena se re thusa ho qoba ho li jarolla Marang-rang nako le nako. 
  • Ntlha ea bohlano, lebelo la ho haha ​​le eketsehile - ho ba teng ha likopi tsa sebaka sa litšoantšo ho u lumella ho qoba ho senya nako ka ho kopitsa, kaha ho na le setšoantšo sa sebaka seo. 

Ka mantsoe a mang, re fihletse mokhoa oa ho kopanya o laoloang le o feto-fetohang. Re sebelisa lisebelisoa tse tšoanang ho haha ​​​​lits'oants'o life kapa life tse fetoletsoeng ka botlalo. 

Mokhoa oa rona oa ho haha ​​o sebetsa joang

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Kopano e qalisoa ka taelo e le 'ngoe, ts'ebetso e etsoa setšoantšong (e totobalitsoe ka bofubelu). Moqapi o na le faele ea Docker (e totobalitsoeng ka mosehla), rea e fana, re nkela mefuta e fapaneng ka boleng. 'Me re ntse re eketsa lihlooho le li-footer - tsena ke baemeli ba rona. 

Sehlooho se eketsa likhatiso ho tsoa litšoantšong tse tsamaellanang. 'Me footer e kenya lits'ebeletso tsa rona ka hare, e lokisa ho qala mosebetsi, ho rema lifate le lisebelisoa tse ling, ho nkela sebaka sa ho kena, joalo-joalo. 

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Re ile ra nahana ka nako e telele hore na re ka kenya mookameli. Qetellong, re ile ra etsa qeto ea hore rea mo hloka. Re khetha S6. Mookameli o fana ka tsamaiso ea setshelo: e u lumella hore u hokahane le eona haeba ts'ebetso e kholo e senyeha 'me e fana ka tsamaiso ea matsoho ea setshelo ntle le ho e tsosolosa. Li-log le metrics ke mekhoa e sebetsang ka har'a setshelo. Li boetse li hloka ho laoloa ka tsela e itseng, 'me re etsa sena ka thuso ea mookameli. Qetellong, S6 e hlokomela tlhokomelo ea ntlo, ts'ebetso ea matšoao le mesebetsi e meng.

Kaha re sebelisa mekhoa e fapaneng ea liletsa, ka mor'a ho haha ​​​​le ho matha, setshelo se tlameha ho utloisisa hore na se sebakeng sefe mme se sebetse ho latela maemo. Ka mohlala:
Sena se re lumella ho haha ​​setšoantšo se le seng le ho se tsamaisa ka mekhoa e fapaneng ea liletsa tsa 'mino,' me se tla thakholoa ho ela hloko lintlha tse tobileng tsa tsamaiso ena ea liletsa.

 Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Bakeng sa setshelo se le seng re fumana lifate tse fapaneng tsa ts'ebetso ho Docker le Kubernetes:

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Lekhetho le etsoa tlas'a tlhokomelo ea S6. Ela hloko ba bokellang le liketsahalo - bana ke baemeli ba rona ba ikarabellang bakeng sa li-log le metrics. Kubernetes ha a na tsona, empa Docker o na le tsona. Hobaneng? 

Haeba re sheba tlhaloso ea "pod" (ka mor'a mona - Kubernetes pod), re tla bona hore setshelo sa liketsahalo se phethiloe ka pod, e nang le sejana se arohaneng sa mokelli se etsang mosebetsi oa ho bokella metrics le logs. Re ka sebelisa bokhoni ba Kubernetes: ho tsamaisa lijana ka har'a pod e le 'ngoe, ka mokhoa o le mong le / kapa sebaka sa marang-rang. Ha e le hantle tsebisa baemeli ba hau 'me u etse mesebetsi e itseng. 'Me haeba setshelo se le seng se hlahisoa ho Docker, se tla fumana bokhoni bohle bo tšoanang le ba tlhahiso, ke hore, se tla khona ho fana ka lits'oants'o le metrics, kaha baemeli ba tla hlahisoa ka hare. 

Metrics le logs

Ho fana ka metrics le logs ke mosebetsi o boima. Ho na le lintlha tse 'maloa qetong ea hae.
Mehaho ea motheo e entsoe bakeng sa ho phethahatsa mojaro oa moputso, eseng bakeng sa ho fana ka li-logs ka bongata. Ke hore, ts'ebetso ena e tlameha ho etsoa ka litlhoko tse fokolang tsa lisebelisoa tsa setshelo. Re ikitlaelletsa ho thusa bahlahisi ba rona: "Fumana setshelo sa Docker Hub, se tsamaise, 'me re ka tsamaisa lits'oants'o." 

Ntlha ea bobeli ke ho fokotsa boholo ba li-log. Haeba ho eketseha ha palo ea lits'oants'o ho etsahala ka har'a lijana tse 'maloa (ts'ebeliso e hlahisa lethathamo la li-loop), mojaro ho CPU, liteishene tsa puisano, le sistimi ea ts'ebetso ea log e eketseha,' me sena se ama ts'ebetso ea moamoheli joalo ka lijana tse feletseng le tse ling ho moeti, joale ka linako tse ling sena se lebisa ho "ho oa" ha moeti. 

Ntlha ea boraro ke hore hoa hlokahala ho ts'ehetsa mekhoa e mengata ea ho bokella metrics ka hohle kamoo ho ka khonehang ka ntle ho lebokose. Ho tloha ho bala lifaele le ho khetha Prometheus-endpoint ho ea ho sebelisa liprothokholo tse ikhethileng tsa ts'ebeliso.

'Me karolo ea ho qetela ke ho fokotsa tšebeliso ea lisebelisoa.

Re khethile tharollo ea mohloli o bulehileng o bitsoang Telegraf. Sena ke sehokedi sa bokahohle se tshehetsang mefuta e fetang 140 ya dikanale tsa ho kenya (input plugins) le mefuta e 30 ya dikanale tsa tlhahiso (output plugins). Re e phethetse 'me joale re tla u bolella hore na re e sebelisa joang re sebelisa Kubernetes e le mohlala. 

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Ha re re moqapi o sebelisa mojaro oa mosebetsi mme Kubernetes o fumana kopo ea ho theha pod. Mothating ona, setshelo se bitsoang Collector se etsoa ka bohona bakeng sa pod ka 'ngoe (re sebelisa mutation webhook). 'Mokelli ke moemeli oa rona. Qalong, setshelo sena se itlhophisetsa ho sebetsa le Prometheus le sistimi ea pokello ea log.

  • Ho etsa sena, e sebelisa litlhaloso tsa pod, 'me ho itšetlehile ka litaba tsa eona, e theha, e re, ntlha ea ho qetela ea Prometheus; 
  • E ipapisitse le litlhaloso tsa pod le litlhophiso tse ikhethileng tsa setshelo, e etsa qeto ea ho tsamaisa li-log.

Re bokella lits'oants'o ka Docker API: bahlahisi ba hloka feela ho li kenya stdout kapa stderr, 'me Collector o tla e hlophisa. Li-log li bokelloa ka likotoana ka tieho e itseng ho thibela moroalo o mongata haholo. 

Metrics e bokelloa maemong a boima ba mosebetsi (mekhoa) ka lijaneng. Ntho e 'ngoe le e' ngoe e tšoailoe: sebaka sa mabitso, ka tlase, joalo-joalo, ebe se fetoloa ho sebopeho sa Prometheus - 'me se fumaneha bakeng sa ho bokelloa (ntle le li-logs). Re boetse re romella li-log, metrics le liketsahalo Kafka le ho feta:

  • Li-log li fumaneha ka Graylog (bakeng sa tlhahlobo ea pono);
  • Li-log, metrics, liketsahalo li romelloa ho Clickhouse bakeng sa polokelo ea nako e telele.

Ntho e ngoe le e ngoe e sebetsa ka mokhoa o ts'oanang ho AWS, ke rona feela re nkang Graylog ka Kafka ka Cloudwatch. Re romela lifate moo, 'me ntho e' ngoe le e 'ngoe e fetoha e bonolo haholo: hang-hang ho hlakile hore na ke sehlopha sefe le setshelo sa tsona. Ho joalo le ka Google Stackdriver. Ke hore, morero oa rona o sebetsa ka bobeli le Kafka le marung. 

Haeba re se na Kubernetes e nang le li-pods, morero ona o thata haholoanyane, empa o sebetsa ka melao-motheo e tšoanang.

Litšoantšo tse lokiselitsoeng tlhahiso bakeng sa k8s

Mekhoa e ts'oanang e etsoa ka har'a setshelo, e hlophisitsoe ho sebelisoa S6. Mekhoa eohle e ts'oanang e ntse e sebetsa ka har'a sets'oants'o se le seng.

Ka lebaka leo,

Re thehile tharollo e felletseng ea ho aha le ho qala litšoantšo, ka likhetho tsa ho bokella le ho tsamaisa lits'oants'o le metrics:

  • Re ile ra hlahisa mokhoa o tloaelehileng oa ho bokella litšoantšo, 'me ho itšetlehile ka oona re ile ra hlahisa li-template tsa CI;
  • Baemeli ba pokello ea lintlha ke li-extensions tsa rona tsa Telegraf. Re li lekile hantle tlhahisong;
  • Re sebelisa mutation webhook ho kenya ts'ebetsong lijana tse nang le baemeli ba li-pods; 
  • E kopantsoe le tikoloho ea Kubernetes/Rancher;
  • Re ka sebelisa lijana tse tšoanang lits'ebetsong tse fapaneng tsa orchestration mme ra fumana sephetho seo re se lebelletseng;
  • E thehile tlhophiso e matla ea taolo ea setshelo. 

Mongoli-'moho: Ilya Prudnikov

Source: www.habr.com

Eketsa ka tlhaloso