Dealbhan deiseil airson k8s

Tha an sgeulachd seo mu dheidhinn mar a bhios sinn a’ cleachdadh shoithichean ann an àrainneachd cinneasachaidh, gu sònraichte Kubernetes. Tha an artaigil gu sònraichte airson a bhith a’ cruinneachadh metrics agus logaichean bho shoithichean, a bharrachd air a bhith a’ togail ìomhaighean.

Dealbhan deiseil airson k8s

Tha sinn bhon chompanaidh fintech Exness, a bhios a’ leasachadh sheirbheisean airson malairt air-loidhne agus bathar fintech airson B2B agus B2C. Tha mòran sgiobaidhean eadar-dhealaichte aig an R&D againn, tha 100+ neach-obrach aig an roinn leasachaidh.

Bidh sinn a 'riochdachadh an sgioba a tha an urra ris an àrd-ùrlar airson ar luchd-leasachaidh còd a chruinneachadh agus a ruith. Gu sònraichte, tha sinn cunntachail airson a bhith a’ cruinneachadh, a’ stòradh agus ag aithris air meatrach, logaichean, agus tachartasan bho thagraidhean. Tha sinn an-dràsta ag obrachadh timcheall air trì mìle inneal Docker ann an àrainneachd cinneasachaidh, a’ cumail suas ar stòradh dàta mòr 50 TB, agus a’ toirt seachad fuasglaidhean ailtireil a tha air an togail timcheall ar bun-structair: Kubernetes, Rancher, agus diofar sholaraichean sgòthan poblach. 

Ar brosnachadh

Dè tha a’ losgadh? Chan urrainn dha duine freagairt. Càite bheil an cagailt? Tha e doirbh a thuigsinn. Cuin a chaidh e na theine? Gheibh thu a-mach, ach chan ann sa bhad. 

Dealbhan deiseil airson k8s

Carson a tha cuid de shoithichean nan seasamh fhad ‘s a tha cuid eile air tuiteam? Dè an soitheach a bu choireach? Às deidh na h-uile, tha taobh a-muigh nan soithichean mar an ceudna, ach tha a Neo fhèin aig gach fear.

Dealbhan deiseil airson k8s

Tha an luchd-leasachaidh againn nan daoine comasach. Bidh iad a’ dèanamh deagh sheirbheisean a bheir prothaid don chompanaidh. Ach tha fàilligidhean ann nuair a thèid soithichean le tagraidhean air seacharan. Bidh aon ghobhar ag ithe cus CPU, bidh fear eile ag ithe an lìonra, bidh an treas cuid ag ithe gnìomhachd I / O, agus tha an ceathramh fear gu tur mì-chinnteach dè a nì e le socaidean. Tha e uile a 'tuiteam agus tha an long a' dol fodha. 

Riochdairean

Gus tuigse fhaighinn air na tha a’ tachairt a-staigh, chuir sinn romhainn riochdairean a chuir gu dìreach ann an soithichean.

Dealbhan deiseil airson k8s

Tha na riochdairean sin a’ cur stad air prògraman a chumas soithichean ann an leithid de staid nach bris iad a chèile. Tha riochdairean àbhaisteach, agus tha seo a’ ceadachadh dòigh-obrach àbhaisteach a thaobh seirbheiseachadh shoithichean. 

Anns a’ chùis againn, feumaidh riochdairean logaichean a thoirt seachad ann an cruth àbhaisteach, air an tagadh agus air an smeòrach. Bu chòir dhaibh cuideachd meatrach àbhaisteach a thoirt dhuinn a ghabhas leudachadh bho shealladh tagradh gnìomhachais.

Bidh riochdairean cuideachd a’ ciallachadh goireasan airson obrachadh agus cumail suas a dh’ obraicheas ann an diofar shiostaman orcastra a bheir taic do dhiofar ìomhaighean (Debian, Alpine, Centos, msaa).

Mu dheireadh, feumaidh riochdairean taic a thoirt do CI / CD sìmplidh a tha a ’toirt a-steach faidhlichean Docker. Rud eile, tuitidh an soitheach às a chèile, oir tòisichidh soithichean air an lìbhrigeadh air rèilichean “cam”.

Tog pròiseas agus inneal ìomhaigh targaid

Gus a h-uile càil a chumail àbhaisteach agus furasta a riaghladh, feumar leantainn air seòrsa de phròiseas togail àbhaisteach. Mar sin, chuir sinn romhainn soithichean a chruinneachadh le soithichean - is e seo ath-chuairteachadh.

Dealbhan deiseil airson k8s

An seo tha na soithichean air an riochdachadh le geàrr-chunntasan cruaidh. Aig an aon àm, cho-dhùin iad innealan cuairteachaidh a chuir annta gus “nach eil beatha coltach ri sùbhan-craoibh." Carson a chaidh seo a dhèanamh, mìnichidh sinn gu h-ìosal.
 
Is e an toradh seo inneal togail - inneal dreach sònraichte a bheir iomradh air dreachan cuairteachaidh sònraichte agus dreachan sgriobt sònraichte.

Ciamar a chleachdas sinn e? Tha Docker Hub againn anns a bheil soitheach. Bidh sinn ga sgàthan taobh a-staigh ar siostam gus faighinn cuidhteas eisimeileachd bhon taobh a-muigh. Mar thoradh air an sin, tha soitheach air a chomharrachadh le buidhe. Bidh sinn a’ cruthachadh teamplaid gus na sgaoilidhean agus na sgriobtaichean uile a dh’ fheumas sinn a chuir a-steach don ghobhar. Às deidh sin, cruinnichidh sinn ìomhaigh deiseil airson a chleachdadh: chuir luchd-leasachaidh còd agus cuid de na eisimeileachd sònraichte aca fhèin ann. 

Dè tha math mun dòigh-obrach seo? 

  • An toiseach, smachd dreach slàn air innealan togail - togail container, dreachan sgriobt agus cuairteachaidh. 
  • San dàrna h-àite, tha sinn air cunbhalachadh a choileanadh: bidh sinn a’ cruthachadh teamplaidean, ìomhaigh eadar-mheadhanach agus deiseil airson a chleachdadh san aon dòigh. 
  • San treas àite, bheir soithichean dhuinn comas giùlain. An-diugh bidh sinn a’ cleachdadh Gitlab, agus a-màireach gluaisidh sinn gu TeamCity no Jenkins agus bidh e comasach dhuinn na soithichean againn a ruith san aon dòigh. 
  • An ceathramh, a 'lùghdachadh eisimeileachd. Cha b’ e co-thuiteamas a bh’ ann gun do chuir sinn innealan cuairteachaidh anns a’ ghobhar, oir leigidh seo leinn an luchdachadh sìos bhon eadar-lìn a h-uile turas. 
  • Sa chòigeamh àite, tha an astar togail air a dhol suas - tha làthaireachd lethbhric ionadail de dhealbhan a’ toirt cothrom dhut ùine a chaitheamh air luchdachadh sìos, leis gu bheil ìomhaigh ionadail ann. 

Ann am faclan eile, tha sinn air pròiseas co-chruinneachaidh fo smachd agus sùbailte a choileanadh. Cleachdaidh sinn na h-aon innealan airson soithichean làn-dhreach sam bith a thogail. 

Mar a tha ar modh togail ag obair

Dealbhan deiseil airson k8s

Tha an co-chruinneachadh air a chuir air bhog le aon àithne, tha am pròiseas air a chuir gu bàs san ìomhaigh (air a chomharrachadh ann an dearg). Tha faidhle Docker aig an leasaiche (air a chomharrachadh ann am buidhe), bidh sinn ga thoirt seachad, a’ cur luachan an àite caochladairean. Agus air an t-slighe cuiridh sinn cinn-cinn is bonn-coise ris - is iad sin na riochdairean againn. 

Bidh bann-cinn a’ cur sgaoilidhean bho na h-ìomhaighean co-fhreagarrach. Agus bidh footer a ’stàladh ar seirbheisean a-staigh, a’ rèiteachadh foillseachadh eallach obrach, logadh agus riochdairean eile, a ’dol an àite àite inntrigidh, msaa. 

Dealbhan deiseil airson k8s

Bha sinn a’ smaoineachadh airson ùine mhòr am bu chòir dhuinn neach-stiùiridh a chuir a-steach. Mu dheireadh, cho-dhùin sinn gu robh feum againn air. Thagh sinn S6. Bidh an neach-stiùiridh a’ toirt seachad stiùireadh container: a’ leigeil leat ceangal ris ma thuiteas am prìomh phròiseas agus a’ toirt seachad stiùireadh làimhe air a’ ghobhar gun a bhith ga ath-chruthachadh. Tha logaichean agus metrics nam pròiseasan a tha a’ ruith taobh a-staigh an t-soithich. Feumaidh iad cuideachd a bhith fo smachd dòigh air choireigin, agus bidh sinn a’ dèanamh seo le cuideachadh bho neach-stiùiridh. Mu dheireadh, tha an S6 a’ gabhail cùram de chumail-taighe, giollachd chomharran agus gnìomhan eile.

Leis gu bheil sinn a’ cleachdadh diofar shiostaman orchestration, às deidh dhuinn togail is ruith, feumaidh an soitheach tuigsinn dè an àrainneachd anns a bheil e agus a bhith ag obair a rèir an t-suidheachaidh. Mar eisimpleir:
Leigidh seo leinn aon ìomhaigh a thogail agus a ruith ann an diofar shiostaman orchestration, agus thèid a chuir air bhog a’ toirt aire do mhion-fhiosrachadh an t-siostam orchestration seo.

 Dealbhan deiseil airson k8s

Airson an aon ghobhar gheibh sinn craobhan pròiseas eadar-dhealaichte ann an Docker agus Kubernetes:

Dealbhan deiseil airson k8s

Tha an uallach pàighidh air a chuir gu bàs fo stiùireadh S6. Thoir aire don neach-cruinneachaidh agus tachartasan - is iad sin na riochdairean againn le uallach airson logaichean agus meatrach. Chan eil iad aig Kubernetes, ach tha Docker. Carson? 

Ma choimheadas sinn air sònrachadh an “pod” (an-seo - Kubernetes pod), chì sinn gu bheil an soitheach tachartasan air a chuir gu bàs ann am pod, aig a bheil inneal cruinneachaidh air leth a bhios a ’coileanadh a’ ghnìomh a bhith a ’tional meatrach agus logaichean. Is urrainn dhuinn comasan Kubernetes a chleachdadh: soithichean a ruith ann an aon pod, ann an aon phròiseas agus / no àite lìonra. Dìreach thoir a-steach na riochdairean agad agus dèan cuid de dhleastanasan. Agus ma thèid an aon shoitheach a chuir air bhog ann an Docker, gheibh e na h-aon chomasan ri toradh, is e sin, bidh e comasach dha logaichean agus metrics a lìbhrigeadh, leis gun tèid na riochdairean a chuir air bhog air an taobh a-staigh. 

Metrics agus clàran

Is e obair iom-fhillte a th’ ann a bhith a’ lìbhrigeadh metrics agus logaichean. Tha grunn thaobhan den cho-dhùnadh aice.
Tha am bun-structar air a chruthachadh airson an uallach pàighidh a choileanadh, agus chan ann airson lìbhrigeadh mòr de chlàran. Is e sin, feumar am pròiseas seo a choileanadh le glè bheag de riatanasan stòrais soithichean. Bidh sinn a’ feuchainn ri ar luchd-leasachaidh a chuideachadh: “Faigh inneal Docker Hub, ruith e, agus is urrainn dhuinn na logaichean a lìbhrigeadh.” 

Is e an dàrna taobh a bhith a’ cuingealachadh meud nan logaichean. Ma tha àrdachadh ann an àireamh nan logaichean a’ tachairt ann an grunn shoithichean (bidh an tagradh a’ toirt a-mach lorg stac ann an lùb), bidh an luchd air an CPU, na seanailean conaltraidh agus an siostam giullachd log a’ dol am meud, agus bheir seo buaidh air gnìomhachd an aoigh mar a soithichean slàn agus eile air an òstair, agus uaireannan bidh seo a’ leantainn gu “tuiteam” den òstair. 

Is e an treas taobh gu feumar taic a thoirt do uimhir de dhòighean cruinneachaidh meatrach a-mach às a’ bhogsa. Bho bhith a 'leughadh fhaidhlichean agus a' bhòtadh Prometheus-deireadh gu bhith a 'cleachdadh protocols sònraichte airson tagradh.

Agus is e an taobh mu dheireadh caitheamh ghoireasan a lughdachadh.

Thagh sinn fuasgladh Go stòr fosgailte ris an canar Telegraf. Is e ceanglaiche uile-choitcheann a tha seo a bheir taic do bharrachd air 140 seòrsa de shianalan cuir a-steach (plugins cuir a-steach) agus 30 seòrsa de shianalan toraidh (plugins toraidh). Tha sinn air a chrìochnachadh agus a-nis innsidh sinn dhut mar a chleachdas sinn e le bhith a’ cleachdadh Kubernetes mar eisimpleir. 

Dealbhan deiseil airson k8s

Canaidh sinn gu bheil leasaiche a’ cleachdadh eallach obrach agus gheibh Kubernetes iarrtas airson pod a chruthachadh. Aig an ìre seo, thèid soitheach leis an t-ainm Collector a chruthachadh gu fèin-ghluasadach airson gach pod (bidh sinn a’ cleachdadh webhook mutation). Is e an neach-cruinneachaidh an neach-ionaid againn. Aig an toiseach, bidh an soitheach seo ga rèiteachadh fhèin gus obrachadh le Prometheus agus an siostam cruinneachadh logaichean.

  • Gus seo a dhèanamh, bidh e a’ cleachdadh notaichean pod, agus a rèir an t-susbaint a th’ ann, bidh e a’ cruthachadh, can, puing crìochnachaidh Prometheus; 
  • Stèidhichte air sònrachadh pod agus suidheachaidhean sònraichte de shoithichean, bidh e a’ co-dhùnadh ciamar a lìbhrigeas e logaichean.

Bidh sinn a’ tional logaichean tro API Docker: feumaidh luchd-leasachaidh dìreach an cur ann an stdout no stderr, agus rèitichidh Collector e. Bidh logaichean air an cruinneachadh ann am pìosan le beagan dàil gus casg a chuir air cus luchd-aoigheachd. 

Bithear a’ cruinneachadh metrics thairis air amannan eallach obrach (pròiseasan) ann an soithichean. Tha a h-uile dad air a tagadh: namespace, fo, agus mar sin air adhart, agus an uairsin air a thionndadh gu cruth Prometheus - agus bidh e ri fhaighinn airson a chruinneachadh (ach a-mhàin logaichean). Bidh sinn cuideachd a’ cur logaichean, meatrach agus tachartasan gu Kafka agus tuilleadh:

  • Tha logaichean rim faighinn ann an Graylog (airson mion-sgrùdadh lèirsinneach);
  • Thèid logaichean, meatrach, tachartasan a chuir gu Clickhouse airson stòradh fad-ùine.

Bidh a h-uile dad ag obair dìreach mar an ceudna ann an AWS, dìreach bidh sinn a’ dol an àite Graylog le Kafka le Cloudwatch. Bidh sinn a’ cur na logaichean an sin, agus bidh a h-uile càil a’ tionndadh a-mach gu math goireasach: tha e soilleir sa bhad dè an cruinneachadh agus an soitheach dham buin iad. Tha an aon rud fìor airson Google Stackdriver. Is e sin, tha an sgeama againn ag obair an dà chuid san togalach le Kafka agus san sgòth. 

Mura h-eil Kubernetes againn le pods, tha an sgeama beagan nas iom-fhillte, ach bidh e ag obair air na h-aon phrionnsapalan.

Dealbhan deiseil airson k8s

Tha na h-aon phròiseasan air an cur gu bàs taobh a-staigh an t-soithich, tha iad air an òrdachadh le bhith a’ cleachdadh S6. Tha na h-aon phròiseasan a 'ruith taobh a-staigh an aon ghobhar.

Mar thoradh air,

Tha sinn air fuasgladh iomlan a chruthachadh airson a bhith a’ togail agus a’ cur air bhog ìomhaighean, le roghainnean airson a bhith a’ cruinneachadh agus a’ lìbhrigeadh logaichean agus meatrach:

  • Leasaich sinn dòigh-obrach àbhaisteach airson dealbhan a chur ri chèile, agus stèidhichte air sin leasaich sinn teamplaidean CI;
  • Is e riochdairean cruinneachadh dàta na leudachain Telegraf againn. Rinn sinn deuchainn math orra ann an riochdachadh;
  • Bidh sinn a’ cleachdadh webhook mutation gus soithichean a chuir an gnìomh le riochdairean ann am pods; 
  • Amalaichte a-steach do eag-shiostam Kubernetes / Rancher;
  • Is urrainn dhuinn na h-aon shoithichean a chuir an gnìomh ann an diofar shiostaman orcastra agus an toradh a tha sinn an dùil fhaighinn;
  • Cruthaich rèiteachadh riaghlaidh container gu tur fiùghantach. 

Co-ùghdar: Ilya Prudnikov

Source: www.habr.com

Cuir beachd ann