A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

Hi uile! Is e m ’ainm Pavel Agaletsky. Bidh mi ag obair mar stiùiriche sgioba ann an sgioba a leasaicheas siostam lìbhrigidh Lamoda. Ann an 2018, bhruidhinn mi aig co-labhairt HighLoad ++, agus an-diugh bu mhath leam tar-sgrìobhadh den aithisg agam a thaisbeanadh.

Tha an cuspair agam coisrigte do eòlas a’ chompanaidh againn ann a bhith a’ cleachdadh shiostaman agus sheirbheisean gu diofar àrainneachdan. A’ tòiseachadh bho na h-amannan ro-eachdraidheil againn, nuair a chuir sinn a-steach a h-uile siostam gu frithealaichean brìgheil àbhaisteach, a’ crìochnachadh leis a ’ghluasad mean air mhean bho Nomad gu cleachdadh ann an Kubernetes. Innsidh mi dhut carson a rinn sinn e agus dè na duilgheadasan a bh’ againn sa phròiseas.

A’ cleachdadh thagraidhean gu VM

Feuch an tòisich sinn leis an fhìrinn gun deach siostaman agus seirbheisean a’ chompanaidh gu lèir a chuir gu frithealaichean brìgheil cunbhalach 3 bliadhna air ais. Gu teicnigeach, chaidh a chuir air dòigh ann an dòigh gus an deach a h-uile còd airson na siostaman againn a stòradh agus a chruinneachadh le bhith a ’cleachdadh innealan cruinneachaidh fèin-ghluasadach, a’ cleachdadh jenkins. A’ cleachdadh Ansible, chaidh a sgaoileadh a-mach bhon t-siostam smachd dreach againn gu frithealaichean brìgheil. A bharrachd air an sin, chaidh gach siostam a bha aig a ’chompanaidh againn a chuir gu co-dhiù 2 frithealaiche: aon dhiubh air a’ cheann, an dàrna fear air an earball. Bha an dà shiostam seo gu tur co-ionann ri chèile anns a h-uile suidheachadh, cumhachd, rèiteachadh, msaa. B’ e an aon eadar-dhealachadh eatorra gun d’ fhuair an ceann trafaic luchd-cleachdaidh, fhad ‘s nach d’ fhuair earball trafaic luchd-cleachdaidh a-riamh.

Carson a chaidh seo a dhèanamh?

Nuair a chuir sinn fiosan ùra den tagradh againn an sàs, bha sinn airson dèanamh cinnteach gun deidheadh ​​​​a sgaoileadh a-mach gun fhiosta, is e sin, gun bhuaidhean follaiseach do luchd-cleachdaidh. Chaidh seo a choileanadh air sgàth 's gun deach an ath fhoillseachadh a chaidh a chur ri chèile a' cleachdadh Ansible a sgaoileadh gu earball. An sin, dh'fhaodadh na daoine a bha an sàs ann an cleachdadh sgrùdadh agus dèanamh cinnteach gu robh a h-uile càil ceart: bha a h-uile meatrach, earrann agus tagradh ag obair; thèid na sgriobtaichean riatanach a chuir air bhog. Is ann dìreach às deidh dhaibh a bhith cinnteach gu robh a h-uile dad ceart gu leòr, chaidh an trafaic atharrachadh. Thòisich e a 'dol chun an fhrithealaiche a bha roimhe earball. Agus bha am fear a bha roimhe seo na cheann fhathast gun trafaic luchd-cleachdaidh, fhad ‘s a bha an dreach roimhe den tagradh againn air.

Mar sin bha e gun samhail dha luchd-cleachdaidh. Leis gu bheil an tionndadh sa bhad, leis gu bheil e dìreach ag atharrachadh an balancer. Faodaidh tu gluasad air ais chun dreach roimhe gu furasta le bhith dìreach ag atharrachadh an cothromachadh air ais. Dh’ fhaodadh sinn cuideachd dearbhadh gu robh an tagradh comasach air cinneasachadh eadhon mus d’ fhuair e trafaic luchd-cleachdaidh, a bha gu math goireasach.

Dè na buannachdan a chunnaic sinn ann an seo uile?

  1. An toiseach, tha e gu leòr tha e dìreach ag obair. Tha a h-uile duine a’ tuigsinn mar a tha sgeama cleachdaidh mar seo ag obair, leis gu bheil a’ mhòr-chuid de dhaoine air a dhol gu frithealaichean brìgheil cunbhalach.
  2. Tha seo gu leòr gu h-earbsach, leis gu bheil an teicneòlas cleachdadh sìmplidh, air a dhearbhadh le mìltean de chompanaidhean. Tha milleanan de luchd-frithealaidh air an cleachdadh san dòigh seo. Tha e doirbh rudeigin a bhriseadh.
  3. Agus mu dheireadh gheibheadh ​​​​sinn cleachdadh atamach. Cleachdaidhean a bhios a’ tachairt aig an aon àm airson luchd-cleachdaidh, gun ìre follaiseach de bhith ag atharrachadh eadar an t-seann dreach agus an dreach ùr.

Ach chunnaic sinn cuideachd grunn easbhaidhean ann an seo uile:

  1. A bharrachd air an àrainneachd cinneasachaidh, an àrainneachd leasachaidh, tha àrainneachdan eile ann. Mar eisimpleir, qa agus preproduction. Aig an àm sin bha mòran luchd-frithealaidh againn agus timcheall air 60 seirbheis. Air an adhbhar seo bha e riatanach airson gach seirbheis, cùm an dreach as ùire air a shon inneal mas-fhìor. A bharrachd air an sin, ma tha thu airson leabharlannan ùrachadh no eisimeileachd ùra a chuir a-steach, feumaidh tu seo a dhèanamh anns a h-uile àrainneachd. Dh'fheumadh tu cuideachd an ùine a shioncronachadh nuair a tha thu gu bhith a 'cleachdadh an ath dhreach ùr den tagradh agad leis an àm nuair a bhios devops a' coileanadh nan roghainnean àrainneachd riatanach. Anns a 'chùis seo, tha e furasta faighinn a-steach do shuidheachadh far am bi an àrainneachd againn rudeigin eadar-dhealaichte anns a h-uile àrainneachd aig an aon àm. Mar eisimpleir, ann an àrainneachd QA bidh cuid de dhreachan de leabharlannan, agus ann an àrainneachd cinneasachaidh bidh feadhainn eadar-dhealaichte ann, a bheir gu duilgheadasan.
  2. Duilgheadas ag ùrachadh eisimeileachd an tagradh agad. Chan eil e an urra riut fhèin, ach air an sgioba eile. Is e sin, bhon sgioba devops a bhios a’ cumail suas na frithealaichean. Feumaidh tu gnìomh iomchaidh a thoirt dhaibh agus tuairisgeul air na tha thu airson a dhèanamh.
  3. Aig an àm sin, bha sinn cuideachd airson na monoliths mòra mòra a bh 'againn a roinn ann an seirbheisean beaga fa leth, oir bha sinn a' tuigsinn gum biodh barrachd is barrachd dhiubh ann. Aig an àm sin, bha barrachd air 100 againn mar-thà. A bharrachd air an sin, chan fheum thu aon chàr, ach co-dhiù dhà. A bharrachd air an seo tha an àrainneachd QA. Bidh seo ag adhbhrachadh dhuilgheadasan agus ga dhèanamh nas duilghe dhut siostaman ùra a thogail agus a ruith. pròiseas iom-fhillte, daor agus fada.

Mar sin, cho-dhùin sinn gum biodh e na b’ fhasa gluasad bho bhith a’ cleachdadh innealan brìgheil àbhaisteach gu bhith a’ cleachdadh ar tagraidhean ann an soitheach docker. Ma tha docker agad, feumaidh tu siostam as urrainn an tagradh a ruith ann am brabhsair, leis nach urrainn dhut dìreach soitheach a thogail. Mar as trice bidh thu airson cunntas a chumail air cia mheud soitheach a thèid a thogail gus an tog iad gu fèin-ghluasadach. Air an adhbhar seo, dh'fheumadh sinn siostam smachd a thaghadh.

Bha sinn a 'smaoineachadh airson ùine mhòr dè am fear a b' urrainn dhuinn a thoirt. Is e an fhìrinn, aig an àm sin, gu robh an stac cleachdaidh seo air frithealaichean brìgheil àbhaisteach rudeigin seann-fhasanta, leis nach robh na dreachan as ùire de shiostaman obrachaidh aca. Aig àm air choreigin, bha eadhon FreeBSD ann, nach robh gu math goireasach airson taic a thoirt dha. Bha sinn a’ tuigsinn gum feumadh sinn imrich gu docker cho luath sa ghabhas. Choimhead na devops againn air an eòlas a th’ aca le diofar fhuasglaidhean agus thagh iad siostam mar Nomad.

Tionndaidh gu Nomad

Tha Nomad na thoradh de HashiCorp. Tha iad ainmeil cuideachd airson na fuasglaidhean eile aca:

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

"Consal" tha e na inneal airson seirbheis a lorg.

"Tarra-chruth" - siostam airson frithealaichean a riaghladh a leigeas leat an rèiteachadh tro rèiteachadh, am bun-structar-mar-a-còd ris an canar.

"Faodar" a’ leigeil leat innealan brìgheil a chuir a-steach gu h-ionadail no san sgòth tro fhaidhlichean rèiteachaidh sònraichte.

Bha coltas gu robh Nomad aig an àm sin mar fhuasgladh gu math sìmplidh a ghabhadh atharrachadh gu sgiobalta gun a bhith ag atharrachadh a’ bhun-structair gu lèir. A bharrachd air an sin, tha e gu math furasta ionnsachadh. Sin as coireach gun do thagh sinn e mar an siostam sìoltachaidh airson ar soitheach.

Dè a dh’ fheumas tu gus an siostam agad a chuir gu Nomad?

  1. An toiseach feumaidh tu dealbh docker an tagradh agad. Feumaidh tu a thogail agus a chuir ann an stòr ìomhaigh docker. Anns a 'chùis againn, is e inneal-fuadain a tha seo - siostam a leigeas leat diofar stuthan de dhiofar seòrsa a phutadh a-steach. Faodaidh e tasglannan, ìomhaighean docker, pasganan PHP sgrìobhaiche, pasganan NPM, agus mar sin air adhart a stòradh.
  2. Cuideachd a dhìth faidhle rèiteachaidh, a dh'innseas do Nomad dè, càite agus dè an ìre a tha thu airson a chleachdadh.

Nuair a bhios sinn a’ bruidhinn mu Nomad, bidh e a’ cleachdadh cànan HCL mar an cruth faidhle fiosrachaidh aige, a tha a’ ciallachadh Cànan rèiteachaidh HashiCorp. Is e seo superset de Yaml a leigeas leat cunntas a thoirt air an t-seirbheis agad ann an teirmean Nomad.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

Leigidh e leat a ràdh cia mheud soitheach a tha thu airson a chuir a-steach, às am bi ìomhaighean a ’dol seachad air diofar pharaimearan dhaibh aig àm cleachdadh. Mar sin, bidh thu a’ biathadh am faidhle seo gu Nomad, agus bidh e a’ cur shoithichean gu cinneasachadh a rèir sin.

Anns a 'chùis againn, thuig sinn nach biodh e glè ghoireasach a bhith a' sgrìobhadh faidhlichean HCL gu tur co-ionann airson gach seirbheis, oir tha tòrr sheirbheisean ann agus uaireannan tha thu airson an ùrachadh. Tha e a 'tachairt gu bheil aon seirbheis air a chleachdadh chan ann ann an aon suidheachadh, ach ann an caochladh fheadhainn eadar-dhealaichte. Mar eisimpleir, tha còrr air 100 suidheachadh ann an cinneasachadh aon de na siostaman a th’ againn ann an cinneasachadh. Bidh iad a 'ruith bho na h-aon ìomhaighean, ach tha iad eadar-dhealaichte ann an roghainnean rèiteachaidh agus faidhlichean rèiteachaidh.

Mar sin, cho-dhùin sinn gum biodh e goireasach dhuinn na faidhlichean rèiteachaidh againn uile a stòradh airson an cleachdadh ann an aon stòr cumanta. San dòigh seo bha iad rim faicinn: bha iad furasta an cumail suas agus chì sinn dè na siostaman a bh’ againn. Ma tha feum air, tha e furasta cuideachd rudeigin ùrachadh no atharrachadh. Chan eil e duilich cuideachd siostam ùr a chuir ris - feumaidh tu dìreach faidhle rèiteachaidh a chruthachadh taobh a-staigh an eòlaire ùr. Taobh a-staigh e tha na faidhlichean a leanas: service.hcl, anns a bheil tuairisgeul air an t-seirbheis againn, agus cuid de fhaidhlichean env a leigeas leis an dearbh sheirbheis seo, a bhith air a chleachdadh ann an cinneasachadh, a rèiteachadh.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

Ach, tha cuid de na siostaman againn air an cleachdadh ann an riochdachadh chan ann ann an aon leth-bhreac, ach ann an grunnan aig an aon àm. Mar sin, cho-dhùin sinn gum biodh e goireasach dhuinn chan e na configs a stòradh anns an fhìor chruth aca, ach an cruth teamplaid aca. Agus thagh sinn gìn 2. Anns a’ chruth seo, bidh sinn a’ stòradh an dà chuid configs na seirbheis fhèin agus na faidhlichean env a tha a dhìth air a shon.

A bharrachd air an sin, tha sinn air sgriobt cleachdaidh a chuir a-steach don stòr a tha cumanta airson a h-uile pròiseact, a leigeas leat do sheirbheis a chuir air bhog agus a chuir a-steach gu cinneasachadh, a-steach don àrainneachd a tha thu ag iarraidh, a-steach don targaid a tha thu ag iarraidh. Anns a ’chùis nuair a thionndaidh sinn an rèiteachadh HCL againn gu teamplaid, an uairsin thòisich am faidhle HCL, a bha roimhe seo na rèiteachadh àbhaisteach Nomad, anns a’ chùis seo a ’coimhead beagan eadar-dhealaichte.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

Is e sin, chuir sinn caochladairean a chaidh a chuir a-steach a chaidh a thoirt bho fhaidhlichean env no stòran eile an àite cuid de chaochladairean config location. A bharrachd air an sin, fhuair sinn an cothrom faidhlichean HCL a chruinneachadh gu dinamach, is e sin, is urrainn dhuinn chan e a-mhàin cuir a-steach caochlaideach àbhaisteach a chleachdadh. Leis gu bheil jinja a’ toirt taic do lùban agus chumhachan, faodaidh tu cuideachd faidhlichean rèiteachaidh a chruthachadh an sin, a bhios ag atharrachadh a rèir càite dìreach a chleachdas tu na tagraidhean agad.

Mar eisimpleir, tha thu airson do sheirbheis a chuir gu ro-riochdachadh agus riochdachadh. Canaidh sinn nach eil thu airson sgriobtaichean cron a ruith ann an ro-riochdachadh, ach dìreach airson an t-seirbheis fhaicinn air raon air leth gus dèanamh cinnteach gu bheil i ag obair. Do dhuine sam bith a bhios a’ cleachdadh na seirbheis, tha am pròiseas a’ coimhead gu math sìmplidh agus follaiseach. Chan eil agad ach am faidhle deploy.sh a chuir an gnìomh, sònraich dè an t-seirbheis a tha thu airson a chleachdadh agus dè an targaid. Mar eisimpleir, tha thu airson siostam sònraichte a chuir a-steach don Ruis, Belarus no Kazakhstan. Gus seo a dhèanamh, dìreach atharraich aon de na paramadairean, agus bidh am faidhle rèiteachaidh ceart agad.

Nuair a tha seirbheis Nomad air a chuir a-steach don bhuidheann agad mu thràth, tha e coltach ri seo.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

An toiseach, feumaidh tu seòrsa de chothromachadh taobh a-muigh, a gheibh a h-uile trafaic luchd-cleachdaidh. Obraichidh e còmhla ris a’ Chonsal agus gheibh e a-mach bhuaithe càite, air dè an nód, aig an t-seòladh IP a tha seirbheis shònraichte suidhichte a fhreagras ri ainm àrainn sònraichte. Tha seirbheisean sa Chonsal a’ tighinn bho Nomad fhèin. Leis gur e toraidhean bhon aon chompanaidh a tha seo, tha iad gu math càirdeach dha chèile. Faodaidh sinn a ràdh gum faod Nomad a-mach às a’ bhogsa a h-uile seirbheis a chaidh a chuir air bhog ann am broinn Consul a chlàradh.

Cho luath ‘s a bhios fios aig an neach-cothromachaidh luchd-aghaidh agad dè an t-seirbheis airson an trafaic a chuir thuige, cuiridh e air adhart e chun ghobhar iomchaidh no grunn shoithichean a tha a rèir an tagraidh agad. Gu nàdarra, tha e riatanach cuideachd smaoineachadh mu shàbhailteachd. Eadhon ged a bhios a h-uile seirbheis a’ ruith air na h-aon innealan brìgheil ann an soithichean, mar as trice feumaidh seo casg a chuir air ruigsinneachd an-asgaidh bho sheirbheis sam bith gu seirbheis sam bith eile. Choilean sinn seo tro sgaradh. Chaidh gach seirbheis a chuir air bhog na lìonra brìgheil fhèin, air an deach riaghailtean slighe agus riaghailtean airson a bhith a’ ceadachadh / a’ diùltadh ruigsinneachd air siostaman agus seirbheisean eile òrdachadh. Dh’ fhaodadh iad a bhith air an suidheachadh an dà chuid taobh a-staigh a’ bhuidheann seo agus a-muigh. Mar eisimpleir, ma tha thu airson casg a chuir air seirbheis bho bhith a’ ceangal ri stòr-dàta sònraichte, faodar seo a dhèanamh tro sgaradh ìre lìonra. Is e sin, eadhon le mearachd, chan urrainn dhut ceangal gun fhiosta bhon àrainneachd deuchainn ris an stòr-dàta toraidh agad.

Dè a chosg an eadar-ghluasad dhuinn a thaobh goireasan daonna?

Thug gluasad na companaidh gu lèir gu Nomad timcheall air 5-6 mìosan. Ghluais sinn air stèidh seirbheis-às-seirbheis, ach aig astar gu math luath. Bha aig gach sgioba ri na soithichean aca fhèin a chruthachadh airson nan seirbheisean.

Tha sinn air gabhail ri leithid de dhòigh-obrach gu bheil uallach air gach sgioba airson ìomhaighean docker de na siostaman aca gu neo-eisimeileach. Bidh DevOps a’ toirt seachad am bun-structar coitcheann a tha riatanach airson a chleachdadh, is e sin, taic don bhuidheann fhèin, taic don t-siostam CI, agus mar sin air adhart. Agus aig an àm sin, bha còrr air 60 siostam againn air an gluasad gu Nomad, a thàinig gu timcheall air 2 mìle soitheach.

Tha Devops an urra ri bun-structar coitcheann a h-uile càil co-cheangailte ri cleachdadh agus frithealaichean. Agus tha uallach air gach sgioba leasachaidh, an uair sin, airson soithichean a chuir an gnìomh airson an t-siostam sònraichte aca, leis gur e an sgioba a tha eòlach air na tha a dhìth orra san fharsaingeachd ann an soitheach sònraichte.

Adhbharan airson Nomad a thrèigsinn

Dè na buannachdan a fhuair sinn le bhith ag atharrachadh gu cleachdadh a’ cleachdadh Nomad agus docker, am measg feadhainn eile?

  1. Мы air suidheachaidhean co-ionann a thoirt seachad airson a h-uile àrainneachd. Ann an leasachadh, tha àrainneachd QA, ro-riochdachadh, cinneasachadh, na h-aon ìomhaighean container air an cleachdadh, leis na h-aon eisimeileachd. Mar sin, cha mhòr nach eil teansa sam bith agad nach e an rud a thig gu crìch ann an cinneasachadh na rinn thu roimhe seo gu h-ionadail no san àrainneachd deuchainn agad.
  2. Lorg sinn cuideachd gu bheil e gu leòr furasta seirbheis ùr a chur ris. Bho shealladh cleachdadh, tha siostaman ùra sam bith air an cur air bhog gu math sìmplidh. Dìreach rachaibh chun stòr a bhios a’ stòradh configs, cuir config eile ris an t-siostam agad an sin, agus tha thu uile deiseil. Faodaidh tu an siostam agad a chuir gu cinneasachadh gun oidhirp a bharrachd bho devops.
  3. a h-uile faidhlichean rèiteachaidh ann an aon ionad-tasgaidh cumanta thionndaidh e a-mach gu bhith fo sgrùdadh. Aig an àm nuair a chleachd sinn na siostaman againn a’ cleachdadh frithealaichean brìgheil, chleachd sinn Ansible, anns an robh na configs san aon stòr. Ach, airson a’ mhòr-chuid de luchd-leasachaidh bha seo beagan na bu duilghe obrachadh leis. An seo tha an àireamh de configs agus còd a dh’ fheumas tu a chuir ris gus an t-seirbheis a chleachdadh air fàs mòran nas lugha. A bharrachd air an sin, tha e gu math furasta dha devops a chàradh no atharrachadh. Ma thachras gluasad, mar eisimpleir, gu dreach ùr de Nomad, faodaidh iad na faidhlichean obrachaidh uile a tha suidhichte san aon àite a ghabhail agus ùrachadh gu mòr.

Ach choinnich sinn cuideachd ri grunn eas-bhuannachdan:

Thionndaidh e a-mach gun robh sinn cha b’ urrainn dhaibh cleachdadh fuaigheil a choileanadh ann an cùis Nomad. Nuair a bhiodh e a’ sgaoileadh shoithichean fo chumhachan eadar-dhealaichte, dh’ fhaodadh e tionndadh a-mach gu bhith a’ ruith, agus bha Nomad ga fhaicinn mar shoitheach deiseil airson trafaic fhaighinn. Thachair seo mus robh cothrom aig an tagradh na bhroinn eadhon a chuir air bhog. Air an adhbhar seo, thòisich an siostam a 'dèanamh 500 mearachdan airson ùine ghoirid, oir thòisich trafaig a' dol gu soitheach nach robh fhathast deiseil airson gabhail ris.

Thachair sinn ri cuid biastagan. Is e am biast as cudromaiche nach bi Nomad a’ làimhseachadh cruinneachadh mòr gu math ma tha mòran shiostaman is shoithichean agad. Nuair a tha thu airson aon de na frithealaichean a tha air a ghabhail a-steach ann am buidheann Nomad a thoirt a-mach airson cumail suas, tha coltachd gu math àrd ann nach bi am buidheann a’ faireachdainn glè mhath agus gun tuit e às a chèile. Faodaidh cuid de shoithichean, mar eisimpleir, tuiteam agus nach èirich - cosgaidh seo tòrr nas fhaide air adhart ma tha na siostaman toraidh agad uile suidhichte ann am buidheann air a stiùireadh le Nomad.

Mar sin chuir sinn romhainn smaoineachadh air càit am bu chòir dhuinn a dhol an ath rud. Aig an àm sin, dh'fhàs sinn tòrr nas mothachail air na bha sinn airson a choileanadh. Is e sin: tha sinn ag iarraidh earbsachd, beagan a bharrachd ghnìomhan na tha Nomad a’ toirt seachad, agus siostam nas aibidh agus nas seasmhaiche.

A thaobh seo, thuit ar roghainn air Kubernetes mar an àrd-ùrlar as mòr-chòrdte airson cruinneachaidhean a chuir air bhog. Gu sònraichte leis gu robh meud agus àireamh nan soithichean againn mòr gu leòr. Airson adhbharan mar sin, bha e coltach gur e Kubernetes an siostam as freagarraiche air am b’ urrainn dhuinn coimhead.

Eadar-ghluasad gu Kubernetes

Innsidh mi beagan dhut mu na bun-bheachdan bunaiteach aig Kubernetes agus mar a tha iad eadar-dhealaichte bho Nomad.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

An toiseach, is e am bun-bheachd as bunaitiche ann an Kubernetes bun-bheachd pod. Pod na bhuidheann de aon no barrachd shoithichean a bhios an-còmhnaidh a’ ruith còmhla. Agus bidh iad an-còmhnaidh ag obair mar gum biodh iad dìreach air aon inneal brìgheil. Tha iad ruigsinneach dha chèile tro IP 127.0.0.1 air diofar phuirt.

Gabhamaid ris gu bheil tagradh PHP agad anns a bheil nginx agus php-fpm - an sgeama clasaigeach. Is coltaiche, bidh thu airson an dà chuid soithichean nginx agus php-fpm a chumail còmhla fad na h-ùine. Leigidh Kubernetes leat seo a choileanadh le bhith gan toirt cunntas orra mar aon pod cumanta. Is e seo dìreach an rud nach b’ urrainn dhuinn fhaighinn le Nomad.

Tha an dàrna bun-bheachd cleachdadh. Is e an fhìrinn gu bheil am pod fhèin na rud neo-sheasmhach; bidh e a’ tòiseachadh agus a’ dol à sealladh. A bheil thu airson na soithichean a bh’ agad roimhe a mharbhadh an toiseach, agus an uairsin dreachan ùra a chuir air bhog sa bhad, no a bheil thu airson an sgaoileadh mean air mhean? Tha e ag innse mar a chleachdas tu na pods agad, dè an àireamh agus mar a nì thu ùrachadh orra.

Tha an treas bun-bheachd seirbheis. Is e an t-seirbheis agad an siostam agad gu dearbh, a gheibh beagan trafaic agus an uairsin ga chuir air adhart gu aon pod no barrachd a fhreagras air an t-seirbheis agad. Is e sin, leigidh e leat a ràdh gum feumar a h-uile trafaic a thig a-steach gu leithid de sheirbheis agus leithid de dh’ ainm a chuir gu na pods sònraichte sin. Agus aig an aon àm tha e a 'toirt dhut cothromachadh trafaig. Is e sin, faodaidh tu dà shlat den tagradh agad a chuir air bhog, agus bidh an trafaic a thig a-steach air a chothromachadh gu cothromach eadar na pods co-cheangailte ris an t-seirbheis seo.

Agus is e an ceathramh bun-bheachd bunaiteach Ingress. Is e seo seirbheis a tha a’ ruith air buidheann de Kubernetes. Bidh e ag obair mar chothromachadh luchdan taobh a-muigh a ghabhas thairis a h-uile iarrtas. A’ cleachdadh an Kubernetes API, faodaidh Ingress dearbhadh càite am bu chòir na h-iarrtasan sin a chuir. A bharrachd air an sin, bidh e a’ dèanamh seo gu math sùbailte. Faodaidh tu a ràdh gu bheil a h-uile iarrtas chun aoigh seo agus URL mar sin air a chuir chun t-seirbheis seo. Agus thèid na h-iarrtasan sin a thig chun aoigh seo agus gu URL eile a chuir gu seirbheis eile.

Is e an rud as fhuaire bho shealladh cuideigin a leasaicheas tagradh gu bheil e comasach dhut a h-uile càil a riaghladh leat fhèin. Le bhith a’ suidheachadh an Ingress config, faodaidh tu a h-uile trafaic a’ tighinn gu leithid agus API mar sin a chuir gu soithichean a chaidh a sgrìobhadh a sgaradh, mar eisimpleir, ann an Go. Ach bu chòir an trafaic seo, a tha a ’tighinn chun aon raon, ach gu URL eile, a chuir gu soithichean sgrìobhte ann am PHP, far a bheil tòrr loidsig ann, ach chan eil iad gu math luath.

Ma nì sinn coimeas eadar na bun-bheachdan sin uile le Nomad, faodaidh sinn a ràdh gu bheil a’ chiad trì bun-bheachdan uile còmhla Seirbheis. Agus chan eil am bun-bheachd mu dheireadh ann an Nomad fhèin. Chleachd sinn cothromachadh taobh a-muigh mar a bha e: dh’ fhaodadh e a bhith haproxy, nginx, nginx +, agus mar sin air adhart. Ann an cùis ciùb, chan fheum thu am bun-bheachd a bharrachd seo a thoirt a-steach air leth. Ach, ma choimheadas tu air Ingress air an taobh a-staigh, tha e an dàrna cuid nginx, haproxy, no traefik, ach seòrsa de thogail a-steach do Kubernetes.

Tha a h-uile bun-bheachd a mhìnich mi, gu dearbh, nan goireasan a tha ann am buidheann Kubernetes. Gus cunntas a thoirt orra anns a’ chiùb, thathas a’ cleachdadh cruth yaml, a tha nas so-leughaidh agus nas eòlaiche na faidhlichean HCL ann an cùis Nomad. Ach gu structarail bidh iad a’ toirt cunntas air an aon rud ann an cùis, mar eisimpleir, pod. Tha iad ag ràdh - tha mi airson a leithid de pods a chuir a-steach an sin, le ìomhaighean mar sin, ann an leithid de mheudan.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

A bharrachd air an sin, thuig sinn nach robh sinn airson gach goireas fa leth a chruthachadh le làimh: cleachdadh, seirbheisean, Ingress, msaa. An àite sin, bha sinn airson cunntas a thoirt air gach aon de na siostaman againn a thaobh Kubernetes aig àm cleachdadh, gus nach fheumadh sinn na goireasan riatanach uile ath-chruthachadh le làimh san òrdugh cheart. Chaidh Helm a thaghadh mar an siostam a leig leinn seo a dhèanamh.

Bun-bheachdan bunaiteach ann an Helm

Tha Helm manaidsear pacaid airson Kubernetes. Tha e glè choltach ri mar a tha manaidsearan pacaid ann an cànanan prògramaidh ag obair. Leigidh iad leat seirbheis a stòradh anns a bheil, mar eisimpleir, cleachdadh nginx, cleachdadh php-fpm, config airson Ingress, configmaps (is e seo eintiteas a leigeas leat env agus paramadairean eile a shuidheachadh airson an t-siostam agad) ann an cruth mar sin- ris an canar clàran. Aig an aon àm Helm a 'ruith air mullach Kubernetes. Is e sin, chan e siostam de sheòrsa air choreigin a tha seo, ach dìreach seirbheis eile a chaidh a chuir air bhog taobh a-staigh a’ chiùb. Bidh thu ag eadar-obrachadh leis tron ​​​​API aige tro àithne tòcan. Is e a ghoireas agus a bhòidhchead, eadhon ged a bhriseas an stiùir no ma bheir thu air falbh e bhon bhuidheann, nach tèid na seirbheisean agad à bith, leis gu bheil an stiùir gu bunaiteach a’ frithealadh gus an siostam a thòiseachadh. Tha Kubernetes fhèin an uairsin an urra ri coileanadh agus staid sheirbheisean.

Thuig sinn sin cuideachd teampull, a bha againn roimhe seo a dhèanamh sinn fhìn le bhith a’ toirt a-steach jinja a-steach do na configs againn, aon de na prìomh fheartan aig stiùir. Tha a h-uile rèiteachadh a chruthaicheas tu airson na siostaman agad air a stòradh ann an stiùir ann an cruth teamplaidean, rud beag coltach ri jinja, ach, gu dearbh, a’ cleachdadh teamplaid a’ chànain Go, anns a bheil an stiùir sgrìobhte, mar Kubernetes.

Bidh Helm a’ cur beagan a bharrachd bhun-bheachdan dhuinn.

Chart - seo tuairisgeul air an t-seirbheis agad. Ann am manaidsearan pacaid eile bhiodh e air ainmeachadh mar phasgan, pasgan no rudeigin coltach ris. An seo canar cairt ris.

luachan na caochladairean a tha thu airson a chleachdadh gus na configs agad a thogail bho theamplaidean.

release. Gach uair a gheibh seirbheis a thèid a chleachdadh le stiùir a’ faighinn dreach mean air mhean den fhoillseachadh. Tha cuimhne aig Helm air na bha an rèiteachadh seirbheis anns an fhoillseachadh roimhe, an sgaoileadh ron sin, agus mar sin air adhart. Mar sin, ma dh’ fheumas tu gluasad air ais, dìreach ruith an àithne gairm air ais, ga chomharrachadh chun dreach fuasglaidh roimhe. Fiù mura h-eil an rèiteachadh co-fhreagarrach anns an ionad-tasgaidh agad ri fhaighinn aig àm an roiligeadh air ais, cuimhnichidh stiùir fhathast dè a bh’ ann agus bheir e air ais an siostam agad chun staid anns an robh e san fhoillseachadh roimhe.

Anns a ’chùis nuair a bhios sinn a’ cleachdadh stiùir, bidh configs cunbhalach airson Kubernetes cuideachd a ’tionndadh gu teamplaidean anns am bi e comasach caochladairean, gnìomhan, agus aithrisean cumhach a chleachdadh. San dòigh seo faodaidh tu do rèiteachadh seirbheis a chruinneachadh a rèir na h-àrainneachd.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

Ann an cleachdadh, chuir sinn romhainn rudan a dhèanamh beagan eadar-dhealaichte na rinn sinn le Nomad. Nam biodh an dà chuid ann an Nomad configs cleachdadh agus n-caochlaidhean a bha a dhìth gus an t-seirbheis againn a chleachdadh air an stòradh ann an aon stòr, an seo chuir sinn romhainn an roinn ann an dà stòr eadar-dhealaichte. Bidh an stòr “cleachdadh” a ’stòradh dìreach n-caochladairean a dh’ fheumar airson an cleachdadh, agus bidh an stòr “stiùir” a’ stòradh configs no clàran.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

Dè thug seo dhuinn?

A dh'aindeoin 's nach eil sinn a' stòradh dàta fìor mhothachail anns na faidhlichean rèiteachaidh fhèin. Mar eisimpleir, faclan-faire gu stòran-dàta. Tha iad air an stòradh mar dhìomhaireachd ann an Kubernetes, ach a dh’ aindeoin sin, tha cuid de rudan ann fhathast nach eil sinn airson cothrom a thoirt don h-uile duine. Mar sin, tha ruigsinneachd don stòr “cleachdadh” nas cuingealaichte, agus tha an stòr “stiùir” dìreach a’ toirt a-steach tuairisgeul air an t-seirbheis. Air an adhbhar seo, faodaidh raon nas fharsainge de dhaoine faighinn thuige gu sàbhailte.

Leis gu bheil chan e a-mhàin cinneasachadh againn, ach cuideachd àrainneachdan eile, le taing don dealachadh seo is urrainn dhuinn na clàran stiùir againn ath-chleachdadh gus seirbheisean a chuir a-steach chan ann a-mhàin gu cinneasachadh, ach cuideachd, mar eisimpleir, gu àrainneachd QA. Fiù 's airson an cleachdadh gu h-ionadail Minikube - is e seo rud airson Kubernetes a ruith gu h-ionadail.

Taobh a-staigh gach stòr, dh'fhàg sinn roinn ann an clàran fa leth airson gach seirbheis. Is e sin, taobh a-staigh gach eòlaire tha teamplaidean co-cheangailte ris a’ chairt fhreagarrach agus a’ toirt cunntas air na goireasan a dh’ fheumar a chleachdadh gus an siostam againn a ruith. Cha do dh’ fhàg sinn ach envs anns an stòr “deploy”. Anns a 'chùis seo, cha do chleachd sinn teamplaid le jinja, oir tha an stiùir fhèin a' toirt seachad teamplaid a-mach às a 'bhogsa - is e seo aon de na prìomh dhleastanasan aige.

Dh’ fhàg sinn sgriobt cleachdaidh - deploy.sh, a bhios a’ sìmpleachadh agus a’ gnàthachadh cur air bhog airson cleachdadh le stiùir. Mar sin, dha neach sam bith a tha airson a chleachdadh, tha an eadar-aghaidh cleachdadh a’ coimhead dìreach mar a bha e nuair a chaidh a chleachdadh tro Nomad. An aon deploy.sh, ainm na seirbheis agad, agus far a bheil thu airson a chleachdadh. Tha seo ag adhbhrachadh gu bheil stiùir a 'tòiseachadh air an taobh a-staigh. Bidh e an uair sin a ’tional configs bho theamplaidean, a’ cuir a-steach na faidhlichean luachan riatanach a-steach annta, an uairsin gan cleachdadh, gan cur air bhog gu Kubernetes.

toraidhean

Tha coltas gu bheil seirbheis Kubernetes nas iom-fhillte na Nomad.

A’ cleachdadh thagraidhean gu VM, Nomad agus Kubernetes

An seo thig trafaic a-mach gu Ingress. Is e seo dìreach an rianadair aghaidh, a bhios a’ gabhail thairis a h-uile iarrtas agus an uairsin gan cur gu na seirbheisean a tha a rèir dàta an iarrtais. Bidh e gan dearbhadh stèidhichte air configs a tha mar phàirt den tuairisgeul air an tagradh agad ann an stiùir agus a bhios luchd-leasachaidh a’ suidheachadh leotha fhèin. Bidh an t-seirbheis a’ cur iarrtasan gu na pods aca, is e sin, soithichean sònraichte, a’ cothromachadh trafaic a’ tighinn a-steach eadar na soithichean uile a bhuineas don t-seirbheis seo. Agus, gu dearbh, cha bu chòir dhuinn dìochuimhneachadh nach bu chòir dhuinn a dhol a dh'àite sam bith bho thèarainteachd aig ìre lìonra. Mar sin, bidh sgaradh ag obair ann am buidheann Kubernetes, a tha stèidhichte air tagadh. Tha tagaichean sònraichte aig a h-uile seirbheis ris a bheil còraichean-slighe nan seirbheisean air goireasan sònraichte taobh a-muigh/a-staigh taobh a-staigh no taobh a-muigh na buidhne co-cheangailte.

Mar a rinn sinn an eadar-ghluasad, chunnaic sinn gu robh na comasan aig Nomad aig Kubernetes, a bha sinn air a chleachdadh roimhe, agus chuir sinn tòrr rudan ùra ris. Faodar a leudachadh tro plugins, agus gu dearbh tro sheòrsan ghoireasan àbhaisteach. Is e sin, tha cothrom agad chan ann a-mhàin rudeigin a thig le Kubernetes a-mach às a’ bhogsa a chleachdadh, ach do ghoireas agus seirbheis fhèin a chruthachadh a leughas do ghoireas. Bheir seo roghainnean a bharrachd dhut airson an siostam agad a leudachadh gun a bhith agad ri Kubernetes ath-shuidheachadh agus gun a bhith feumach air atharrachaidhean.

Is e eisimpleir de leithid de chleachdadh Prometheus, a tha a’ ruith taobh a-staigh ar cruinneachadh Kubernetes. Gus an tòisich e air metrics a chruinneachadh bho sheirbheis sònraichte, feumaidh sinn seòrsa de ghoireas a bharrachd, ris an canar monitor seirbheis, a chur ris an tuairisgeul seirbheis. Bidh Prometheus, leis gu bheil e comasach dha seòrsa goireas àbhaisteach a leughadh nuair a thèid a chuir air bhog ann an Kubernetes, gu fèin-ghluasadach a’ tòiseachadh a ’tional meatrach bhon t-siostam ùr. Tha e gu math goireasach.

Bha a’ chiad cleachdadh a rinn sinn gu Kubernetes sa Mhàrt 2018. Agus rè na h-ùine seo cha d’ fhuair sinn a-riamh duilgheadas sam bith leis. Bidh e ag obair gu math seasmhach às aonais bugs cudromach. A bharrachd air an sin, is urrainn dhuinn a leudachadh nas fhaide. An-diugh tha gu leòr de na comasan againn, agus is toil leinn astar leasachadh Kubernetes gu mòr. An-dràsta, tha còrr air 3000 soithichean ann an Kubernetes. Tha an cruinneachadh ann an grunn Nodes. Aig an aon àm, tha e seirbheis, seasmhach agus glè smachdail.

Source: www.habr.com

Cuir beachd ann