Onyonyo dị njikere mmepụta maka k8s

Akụkọ a bụ maka otu anyị si eji arịa na gburugburu ebe a na-emepụta ihe, karịsịa Kubernetes. A na-etinye edemede ahụ maka ịnakọta metrik na ndekọ site na arịa, yana ihe oyiyi ụlọ.

Onyonyo dị njikere mmepụta maka k8s

Anyị sitere na ụlọ ọrụ fintech Exness, nke na-emepụta ọrụ maka ịzụ ahịa n'ịntanetị na ngwaahịa fintech maka B2B na B2C. R&D anyị nwere ọtụtụ otu dị iche iche, ngalaba mmepe nwere ndị ọrụ 100+.

Anyị na-anọchite anya otu ndị na-ahụ maka ikpo okwu maka ndị mmepe anyị ịnakọta ma mee koodu. Karịsịa, anyị na-ahụ maka ịnakọta, chekwaa na ịkọ metrics, logs na mmemme sitere na ngwa. Anyị na-arụ ọrụ ugbu a ihe dị ka puku arịa Docker atọ na gburugburu ebe a na-emepụta ihe, na-edobe nchekwa data 50 TB anyị, ma na-enye ihe ngwọta nke arụpụtara gburugburu akụrụngwa anyị: Kubernetes, Rancher, na ndị na-eweta igwe ojii dị iche iche. 

Ihe mkpali anyị

Kedu ihe na-ere ọkụ? Ọ dịghị onye nwere ike ịza. Ebee ka ọkụ ọkụ dị? O siri ike nghọta. Kedu mgbe ọkụ gbara? Ị nwere ike ịchọpụta, ma ọ bụghị ozugbo. 

Onyonyo dị njikere mmepụta maka k8s

Gịnị kpatara ihe ụfọdụ ji guzoro ebe ndị ọzọ daa? Kedu akpa ọ bụ ụta? E kwuwerị, n'èzí nke arịa ndị ahụ bụ otu, ma n'ime nke ọ bụla nwere Neo nke ya.

Onyonyo dị njikere mmepụta maka k8s

Ndị mmepe anyị bụ ụmụ okorobịa tozuru oke. Ha na-arụ ọrụ dị mma na-eweta uru na ụlọ ọrụ ahụ. Mana enwere ọdịda mgbe igbe nwere ngwa na-agahie ụzọ. Otu akpa na-eri CPU nke ukwuu, onye ọzọ na-eri netwọkụ, nke atọ na-eri ọrụ I/O, nke anọ amabeghị nke ọma ihe ọ na-eji sọks eme. Ihe niile daa ma ụgbọ mmiri ahụ imikpu. 

Ndị nnọchi anya

Iji ghọta ihe na-eme n'ime, anyị kpebiri itinye ndị ọrụ ozugbo na arịa.

Onyonyo dị njikere mmepụta maka k8s

Ndị ọrụ ndị a na-egbochi mmemme na-edobe arịa n'ọnọdụ nke na ha anaghị agbaji ibe ha. A na-ahazi ndị nnọchi anya, nke a na-enye ohere maka usoro ahaziri ahazi maka ijikwa arịa. 

N'ọnọdụ anyị, ndị nnọchi anya ga-enye akwụkwọ ndekọ aha n'ụdị ọkọlọtọ, akara na throttled. Ha kwesịkwara inye anyị metrik ahaziri ahazi nke nwere ike ịpụta site na ngwa azụmahịa.

Agents pụtakwara akụrụngwa maka ịrụ ọrụ na mmezi nke nwere ike ịrụ ọrụ na sistemụ orchestration dị iche iche na-akwado onyonyo dị iche iche (Debian, Alpine, Centos, wdg).

N'ikpeazụ, ndị ọrụ ga-akwado CI/CD dị mfe nke gụnyere faịlụ Docker. Ma ọ bụghị ya, ụgbọ mmiri ahụ ga-adaba, n'ihi na a ga-amalite ibunye arịa n'okporo ụzọ "gbagọrọ agbagọ".

Mee usoro na iche ihe oyiyi ngwaọrụ

Iji dobe ihe niile ahaziri ahazi na ijikwa, ọ dị mkpa ka a gbasoo ụdị ụfọdụ usoro iwu ụlọ. Ya mere, anyị kpebiri ịnakọta arịa site na arịa - nke a bụ nlọghachi azụ.

Onyonyo dị njikere mmepụta maka k8s

N'ebe a, a na-anọchi anya arịa ndị ahụ site na nkọwa siri ike. N'otu oge ahụ, ha kpebiri itinye ngwa nkesa n'ime ha ka "ndụ ghara iyi ka raspberries." Ihe mere e ji mee nke a, anyị ga-akọwa n'okpuru ebe a.
 
Ihe si na ya pụta bụ ngwá ọrụ nrụpụta—akpa ụdịdị nke na-ezo aka na ụdị nkesa akọwapụtara na ụdị edemede akọwapụtara.

Kedu ka anyị si eji ya? Anyị nwere Docker Hub nke nwere akpa. Anyị na-enyo enyo ya n'ime usoro anyị iji kpochapụ ịdabere na mpụga. Nsonaazụ bụ akpa akara edo edo. Anyị na-emepụta template iji wụnye nkesa na edemede niile anyị chọrọ n'ime akpa. Mgbe nke ahụ gasịrị, anyị na-achịkọta ihe oyiyi dị njikere iji: ndị mmepe na-etinye koodu na ụfọdụ ihe ndabere ha pụrụ iche na ya. 

Kedu ihe dị mma gbasara ụzọ a? 

  • Nke mbụ, njikwa ụdị zuru oke nke ngwaọrụ nrụpụta - wuo akpa, edemede na ụdị nkesa. 
  • Nke abuo, anyị enwetala ọkọlọtọ: anyị na-emepụta ndebiri, ihe oyiyi etiti na njikere iji mee ihe n'otu ụzọ ahụ. 
  • Nke atọ, arịa na-enye anyị ibugharị. Taa, anyị na-eji Gitlab, echi anyị ga-agbanwe na TeamCity ma ọ bụ Jenkins na anyị ga-enwe ike na-agba ọsọ anyị akpa n'otu ụzọ ahụ. 
  • Nke anọ, ibelata ndabere. Ọ bụghị ihe ndaba na anyị na-etinye ngwa nkesa n'ime akpa ahụ, n'ihi na nke a na-enye anyị ohere izere nbudata ha na Ịntanetị oge ọ bụla. 
  • Nke ise, ọsọ ọsọ abawanyela - ọnụnọ nke ihe oyiyi mpaghara na-enye gị ohere izere igbu oge na nbudata, ebe ọ bụ na e nwere ihe oyiyi mpaghara. 

N'ikwu ya n'ụzọ ọzọ, anyị enwetala usoro mgbakọ na-achịkwa ma na-agbanwe agbanwe. Anyị na-eji otu ngwaọrụ iji wuo arịa ọ bụla nwere nsụgharị zuru oke. 

Ka usoro iwu ụlọ anyị si arụ ọrụ

Onyonyo dị njikere mmepụta maka k8s

A na-eji otu iwu malite mgbakọ ahụ, a na-eme usoro ahụ na onyinyo ahụ (pụtara na-acha uhie uhie). Onye nrụpụta nwere faịlụ Docker (nke pụtara na edo edo), anyị na-enye ya, jiri ụkpụrụ dochie mgbanwe mgbanwe. Ma n'ụzọ anyị na-agbakwunye nkụnye eji isi mee na footers - ndị a bụ ndị nnọchi anya anyị. 

nkụnye eji isi mee na-agbakwụnye nkesa site na onyonyo kwekọrọ. Na n'okpuru na-etinye ọrụ anyị n'ime, na-ahazi mmalite nke ibu ọrụ, osisi na ndị ọrụ ndị ọzọ, dochie ebe ntinye, wdg. 

Onyonyo dị njikere mmepụta maka k8s

Anyị chere ogologo oge ma a ga-etinye onye nlekọta. N'ikpeazụ, anyị kpebiri na anyị chọrọ ya. Anyị họọrọ S6. Onye nlekọta na-enye njikwa akpa: na-enye gị ohere ijikọ na ya ma ọ bụrụ na usoro bụ isi na-akụda ma na-enye njikwa akwụkwọ ntuziaka nke akpa na-enweghị imegharị ya. Ndekọ na metrik bụ usoro na-agba n'ime akpa. Ọ dịkwa mkpa ka a na-achịkwa ha n'ụzọ ụfọdụ, anyị na-eme nke a site n'enyemaka nke onye nlekọta. N'ikpeazụ, S6 na-ahụ maka nlekọta ụlọ, nhazi mgbaàmà na ọrụ ndị ọzọ.

Ebe ọ bụ na anyị na-eji usoro orchestration dị iche iche, mgbe arụchara ma na-agba ọsọ, akpa ahụ aghaghị ịghọta ihe gburugburu ebe obibi dị na ya ma mee ihe dịka ọnọdụ ahụ si dị. Ọmụmaatụ:
Nke a na-enye anyị ohere ịmepụta otu ihe oyiyi ma na-agba ọsọ na usoro nhazi dị iche iche, a ga-amalitekwa ya na-eburu n'uche nkọwa nke usoro nhazi a.

 Onyonyo dị njikere mmepụta maka k8s

Maka otu akpa ahụ anyị na-enweta osisi nhazi dị iche iche na Docker na Kubernetes:

Onyonyo dị njikere mmepụta maka k8s

A na-arụ ọrụ ịkwụ ụgwọ n'okpuru nlekọta nke S6. Lezienụ anya na ndị nchịkọta na mmemme - ndị a bụ ndị ọrụ anyị na-ahụ maka ndekọ ndekọ na metrik. Kubernetes enweghị ha, mana Docker nwere. Gịnị kpatara? 

Ọ bụrụ na anyị eleba anya na nkọwapụta nke "pod" (nke a - Kubernetes pod), anyị ga-ahụ na a na-egbu ihe omume ahụ na pod, nke nwere ihe dị iche iche nke nchịkọta nke na-arụ ọrụ nke ịnakọta metrics na logs. Anyị nwere ike iji ike nke Kubernetes: na-agba ọsọ akpa na otu pọd, na otu usoro na / ma ọ bụ netwọk ohere. N'ezie ewebata ndị nnọchi anya gị wee rụọ ụfọdụ ọrụ. Ma ọ bụrụ na ewepụta otu akpa ahụ na Docker, ọ ga-enweta otu ikike niile dị ka mmepụta, ya bụ, ọ ga-enwe ike ibuga ndekọ na metrik, ebe ọ bụ na a ga-ewepụta ndị nnọchi anya n'ime. 

Metrics na ndekọ

Inweta metrik na ndekọ bụ ọrụ dị mgbagwoju anya. E nwere akụkụ dị iche iche nke mkpebi ya.
A na-emepụta akụrụngwa maka mmezu nke ụgwọ ọrụ, ọ bụghị maka ịnyefe ndekọ ọnụ ọgụgụ buru ibu. Ya bụ, a ga-emerịrị usoro a n'iji obere akụrụngwa akụrụngwa chọrọ. Anyị na-agba mbọ inyere ndị mmepe anyị aka: "Nweta akpa Docker Hub, mee ya, ma anyị nwere ike ibunye ndekọ." 

Akụkụ nke abụọ na-amachi oke ndekọ. Ọ bụrụ na mmụba na olu ndekọ na-eme n'ọtụtụ arịa (ngwa ahụ na-ewepụta nchịkọta nchịkọta na akaghị aka), ibu dị na CPU, ọwa nkwukọrịta, na usoro nhazi log na-abawanye, nke a na-emetụta ọrụ nke onye ọbịa dị ka a. dum na arịa ndị ọzọ na onye ọbịa, mgbe ahụ, mgbe ụfọdụ nke a na-eduga na "ọdịda" nke onye ọbịa. 

Akụkụ nke atọ bụ na ọ dị mkpa ịkwado ọtụtụ usoro nchịkọta metric dị ka o kwere mee site na igbe ahụ. Site n'ịgụ faịlụ na ntuli aka Prometheus-endpoint ruo na iji ngwa kpọmkwem protocol.

Na akụkụ ikpeazụ bụ ibelata oriri akụrụngwa.

Anyị họọrọ ihe ngwọta Go mepere emepe akpọrọ Telegraf. Nke a bụ njikọ zuru ụwa ọnụ nke na-akwado ihe karịrị 140 ụdị ọwa ntinye ( plugins ntinye ) na ụdị 30 nke ọwa mmepụta ( plugins mmepụta ). Anyị emechaala ya ma ugbu a anyị ga-agwa gị otu anyị si eji Kubernetes mee ihe dịka ọmụmaatụ. 

Onyonyo dị njikere mmepụta maka k8s

Ka anyị kwuo na onye nrụpụta na-ebuga ibu ọrụ yana Kubernetes na-anata arịrịọ imepụta pọd. N'ebe a, a na-emepụta akpa a na-akpọ Collector na-akpaghị aka maka pod ọ bụla (anyị na-eji mutation webhook). Onye nchịkọta bụ onye nnọchi anya anyị. Na mbido, akpa a na-ahazi onwe ya ka ọ rụọ ọrụ na Prometheus na sistemụ nchịkọta ndekọ.

  • Iji mee nke a, ọ na-eji nkọwapụta pod, ma dabere na ọdịnaya ya, na-emepụta, sịnụ, njedebe njedebe Prometheus; 
  • Dabere na nkọwapụta pọd na ntọala akpa akọwapụtara, ọ na-ekpebi otu esi ebufe ndekọ.

Anyị na-anakọta ndekọ site na Docker API: ndị mmepe kwesịrị itinye ha na stdout ma ọ bụ stderr, na mkpokọta ga-edozi ya. A na-anakọta ndekọ na obere oge iji gbochie ibufe onye ọbịa nwere ike. 

A na-anakọta metrics n'ofe oge ọrụ (usoro) n'ime akpa. A na-akpado ihe niile: aha aha, n'okpuru, na ihe ndị ọzọ, wee gbanwee na usoro Prometheus - wee dịrị maka nchịkọta (ma e wezụga maka ndekọ). Anyị na-ezigakwa ndekọ, metrik na mmemme na Kafka na n'ihu:

  • Ihe ndekọ dị na Graylog (maka nyocha anya);
  • A na-eziga ndekọ, metrik, mmemme na Clickhouse maka nchekwa ogologo oge.

Ihe niile na-arụ ọrụ kpọmkwem na AWS, naanị anyị na-eji Cloudwatch dochie Graylog na Kafka. Anyị na-eziga ndekọ n'ebe ahụ, ihe niile na-adaba adaba: ọ na-apụta ozugbo nke ụyọkọ na akpa ha nwere. Otu ihe ahụ dịkwa maka Google Stackdriver. Nke ahụ bụ, atụmatụ anyị na-arụ ọrụ ma na Kafka na igwe ojii. 

Ọ bụrụ na anyị enweghị Kubernetes na pods, atụmatụ ahụ dị ntakịrị mgbagwoju anya, ma ọ na-arụ ọrụ n'otu ụkpụrụ ahụ.

Onyonyo dị njikere mmepụta maka k8s

A na-eme otu usoro ahụ n'ime akpa ahụ, a na-ahazi ha site na iji S6. Otu usoro niile na-agba n'ime otu akpa.

N'ihi ya,

Anyị ekepụtala ngwọta zuru oke maka iwulite na iwepụta onyonyo, yana nhọrọ maka ịnakọta na ibuga ndekọ na metrik:

  • Anyị mepụtara usoro ahaziri ahazi maka ikpokọta onyonyo, dabere na ya anyị mepụtara ndebiri CI;
  • Ndị ọrụ nchịkọta data bụ ndọtị Telegraf anyị. Anyị nwalere ha nke ọma na mmepụta;
  • Anyị na-eji mutation webhook mejuputa arịa nwere ndị nnọchite na pọd; 
  • Ejikọtara ya na gburugburu Kubernetes/Rancher;
  • Anyị nwere ike igbu otu arịa dị iche iche na usoro orchestration dị iche iche wee nweta nsonaazụ anyị tụrụ anya ya;
  • Mepụtara nhazi njikwa akpa dị ike kpamkpam. 

Onye na-ede akwụkwọ: Ilya Prudnikov

isi: www.habr.com

Tinye a comment