U dirida codsiyada VM, Nomad iyo Kubernetes

Salaamu calaykum! Magacaygu waa Pavel Agaletsky. Waxaan u shaqeeyaa sidii koox hogaaminaysa koox horumarisa nidaamka gaarsiinta Lamoda. 2018, waxaan ka hadlay shirka HighLoad++, maantana waxaan jeclaan lahaa inaan soo bandhigo qoraalkayga warbixinta.

Mawduucaygu wuxuu u heellan yahay waayo-aragnimada shirkadeena ee geynta nidaamyada iyo adeegyada deegaanno kala duwan. Laga soo bilaabo waqtiyadeenii hore, markii aan geynay dhammaan nidaamyada xayndaabyada caadiga ah, oo ku dhammaanaya kala-guurka tartiib-tartiib ah ee laga soo bilaabo Nomad loona dirayo Kubernetes. Waxaan kuu sheegi doonaa sababta aan u samaynay iyo dhibaatooyinka naga haysata hawsha.

U dirida codsiyada VM

Aan ku bilowno xaqiiqda ah in 3 sano ka hor dhammaan nidaamyada iyo adeegyadii shirkadda la geeyay server-yada casriga ah ee caadiga ah. Farsamo ahaan, waxaa loo habeeyey si dhammaan koodhka nidaamyadayaga loo kaydiyo oo la isugu keeno iyadoo la isticmaalayo qalab isku-ururin oo toos ah, iyadoo la isticmaalayo jenkins. Isticmaalka macquulka ah, waxaa laga soo saaray nidaamkayaga xakamaynta nooca loo yaqaan server-yada casriga ah. Intaa waxaa dheer, nidaam kasta oo shirkadeena lahaa waxaa la geeyay ugu yaraan 2 server: mid iyaga ka mid ah madaxa, kan labaadna dabada. Labadan nidaam waxay ahaayeen kuwo isku mid ah dhammaan goobaha, awoodda, qaabaynta, iwm. Farqiga kaliya ee u dhexeeya ayaa ahaa in madaxu uu helay taraafikada isticmaalaha, halka dabada aysan waligood helin taraafikada isticmaalaha.

Maxaa tan loo sameeyay?

Markii aanu dirnay sii dayn cusub oo dalabkayaga ah, waxaanu rabnay inaanu hubinno soo-bandhig la'aan, taas oo ah, iyada oo aan la dareemin cawaaqibka isticmaalayaasha. Tan waxaa la gaaray sababtoo ah siideynta soo socota ee la isku duba riday iyadoo la adeegsanayo Ansible ayaa dabada loo rogay. Halkaa, dadka ku lugta leh hawlgelinta ayaa hubin kara oo hubin kara in wax walba ay fiicnaayeen: dhammaan cabbirada, qaybaha iyo codsiyada ayaa shaqeynayay; qoraalada lagama maarmaanka ah ayaa la bilaabay. Kaliya ka dib markii ay ku qanceen in wax walba ay sax yihiin, taraafiggu waa la beddelay. Waxay bilowday inay aado server-kii markii hore dabada ahaa. Oo kii hore madaxa u ahaan jiray iyada oo aan la isticmaalin taraafikada, iyada oo ay weli ku jirto nuqulkii hore ee codsigayaga.

Markaa waxay ahayd mid aan kala go 'lahayn isticmaalayaasha. Sababtoo ah beddelashadu waa isla markiiba, maadaama ay si fudud u beddesho dheelitirka. Waxaad si fudud dib ugu celin kartaa noocii hore adiga oo si fudud dib ugu beddelaya dheelli-hayaha. Waxaan sidoo kale xaqiijin karnaa in codsigu uu awood u lahaa wax soo saarka xitaa ka hor inta uusan helin taraafikada isticmaalaha, taas oo ahayd mid ku habboon.

Waa maxay faa'iidooyinka aan ku aragnay waxaas oo dhan?

  1. Horta waa ku filan tahay way shaqaysaa uun. Qof kastaa wuu fahamsan yahay sida nidaamka hawlgelinta noocan oo kale ah u shaqeeyo, sababtoo ah dadka intooda badan weligood waxay geeyeen server-yada casriga ah ee caadiga ah.
  2. Tani waa ku filan tahay lagu kalsoonaan karo, maadaama tignoolajiyada geyntu ay tahay mid fudud, oo ay tijaabiyeen kumanaan shirkadood. Malaayiin adeegayaal ayaa sidan loo geeyay. Way adag tahay in wax la jebiyo.
  3. Ugu dambayntiina waan heli karnay atomikada la geeyo. Hawlgelinta isku mar u dhacda isticmaaleyaasha, iyada oo aan la dareemin marxaladda kala beddelashada noocii hore iyo kan cusub.

Laakiin waxaan sidoo kale aragnay cillado dhowr ah waxaas oo dhan:

  1. Marka laga soo tago deegaanka wax soo saarka, deegaanka horumarka, waxaa jira deegaanno kale. Tusaale ahaan, qa iyo wax-soo-saarka. Waqtigaas waxaan haysanay adeegayaal badan iyo ilaa 60 adeeg. Sababtan awgeed waxay ahayd lagama maarmaan adeeg kasta, u ilaali nuqulkii ugu dambeeyay mashiinka dalwaddii. Waxaa intaa dheer, haddii aad rabto in aad cusboonaysiiso maktabadaha ama aad rakibto ku-tiirsanaanta cusub, waxaad u baahan tahay inaad tan ku sameyso dhammaan deegaannada. Waxa kale oo aad u baahneed in aad isku xidho wakhtiga aad u dirayso nooca cusub ee codsigaaga iyo wakhtiga ay devops fulinayso goobaha lagama maarmaanka ah. Xaaladdan oo kale, way sahlan tahay in la galo xaalad uu deegaankeenu noqon doono mid ka duwan dhammaan deegaannada hal mar. Tusaale ahaan, deegaanka QA waxaa jiri doona qaybo ka mid ah maktabadaha, iyo deegaanka wax soo saarka waxaa jiri doona kuwo kala duwan, taas oo horseedi doonta dhibaatooyin.
  2. Ay adag tahay in la cusboonaysiiyo ku tiirsanaanta codsigaaga. Kuma xirna adiga, laakiin waxay kuxirantahay kooxda kale. Kuwaas oo ka socda kooxda devops ee ilaaliya server-yada. Waa inaad siisaa hawl ku habboon iyo sharraxaad waxa aad rabto inaad samayso.
  3. Waqtigaas, waxaan sidoo kale rabnay inaan u qaybinno monoliths waaweyn ee aan haysanno oo aan u qaybinno adeegyo yaryar oo gaar ah, maadaama aan fahamnay inay jiri doonaan wax badan oo ka mid ah. Waqtigaas, waxaan horeyba u haysanay in ka badan 100. Adeeg kasta oo cusub, waxay ahayd lagama maarmaan in la abuuro mashiin cusub oo cusub, kaas oo sidoo kale loo baahan yahay in la ilaaliyo oo la geeyo. Intaa waxaa dheer, uma baahnid hal baabuur, laakiin ugu yaraan laba. Waxaa intaas oo dhan lagu daray deegaanka QA. Tani waxay keenaysaa dhibaatooyin waxayna kugu adkaynaysaa inaad dhisto oo aad maamusho nidaamyo cusub. adag, qaali ah oo geeddi-socodka dheer.

Sidaa darteed, waxaanu go'aansanay inay aad ugu haboonaan lahayd in laga guuro keenista mashiinada farsamada gacanta oo la geeyo codsiyadeena weelka docker-ka. Haddii aad leedahay docker, waxaad u baahan tahay nidaam ku socodsiin kara arjiga ku jira koox, maadaama aadan kaliya kor u qaadi karin weel. Caadi ahaan waxaad rabtaa inaad la socoto inta weel ee la qaadayo si ay si toos ah u qaadaan. Sababtan awgeed, waxaan u baahanahay inaan doorano nidaamka xakamaynta.

Waxaan muddo dheer ka fikirnay midka aan qaadan karno. Xaqiiqdu waxay tahay in wakhtigaas kaydintan kaydinta server-yada caadiga ah ay ahayd xoogaa duug ah, maadaama aysan haysan noocyadii ugu dambeeyay ee nidaamyada hawlgalka. Mararka qaarkood, waxaa jiray xitaa FreeBSD, taas oo aan aad ugu habboonayn in la taageero. Waxaan fahamsanahay inaan u baahannahay inaan u haajiro si aan u dhoofno sida ugu dhaqsaha badan ee suurtogalka ah. Shaqaalahayagu waxay ku eegeen waayo-aragnimadooda jira xalal kala duwan waxayna doorteen nidaam sida reer guuraaga ah.

U beddelo reer guuraa

Nomad waa wax soo saarka HashiCorp. Waxay kaloo caan ku yihiin xalalkooda kale:

U dirida codsiyada VM, Nomad iyo Kubernetes

"Qunsulka" waa qalab loogu talagalay helitaanka adeegga.

"Teraform" - nidaam lagu maareeyo server-yada kaas oo kuu ogolaanaya inaad ku habayso iyaga oo loo marayo qaabeynta, waxa loogu yeero kaabayaasha-as-a-code.

"Vagrant" Waxay kuu ogolaaneysaa inaad geyso mashiinnada farsamada gudaha ama daruuraha iyada oo loo marayo faylal qaabeyn gaar ah.

Reer guuraaga wakhtigaas waxa uu u ekaa xal fudud oo si degdeg ah loo beddeli karo iyada oo aan la beddelin dhammaan kaabayaasha dhaqaalaha. Intaa waxaa dheer, aad bay u fududahay in la barto. Taasi waa sababta aanu u dooranay habka sifaynta weelkayaga.

Maxaad u baahan tahay si aad nidaamkaaga u geyso Nomad?

  1. Marka hore waxaad u baahan tahay sawirka docker codsigaaga. Waxaad u baahan tahay inaad dhisto oo aad dhigto kaydka sawirka docker. Xaaladeena, tani waa farshaxan - nidaam kuu ogolaanaya inaad ku riixdo farshaxanno kala duwan oo noocyo kala duwan leh. Waxay kaydin kartaa kaydka, sawirada docker, xidhmooyinka PHP curiyaha, xirmooyinka NPM, iyo wixii la mid ah.
  2. Sidoo kale loo baahan yahay faylka qaabeynta, kaas oo u sheegi doona reer guuraaga waxa, meesha iyo tirada aad rabto inaad geyso.

Marka aan ka hadlayno reer guuraaga, waxay isticmaashaa luqadda HCL qaabka faylka macluumaadka, oo u taagan HashiCorp Configuration Language. Kani waa qayb weyn oo Yaml ah oo kuu ogolaanaya inaad ku qeexdo adeeggaaga erayo reer guuraa ah.

U dirida codsiyada VM, Nomad iyo Kubernetes

Waxay kuu ogolaaneysaa inaad sheegto inta weel ee aad rabto inaad geyso, kuwaas oo sawiradu ay u gudbiyaan xuduudaha kala duwan inta lagu jiro dajinta. Markaa, waxaad ku quudinaysaa feylkan reer guuraaga, oo wuxuu soo saarayaa weelasha sida uu qabo.

Xaaladeena, waxaan ogaanay in si fudud loo qoro faylalka HCL isku mid ah ee adeeg kasta aysan noqon doonin mid aad u habboon, sababtoo ah waxaa jira adeegyo badan oo mararka qaarkood waxaad dooneysaa inaad cusbooneysiiso. Waxay dhacdaa in hal adeeg aan la geynin hal tusaale, laakiin noocyo kala duwan oo kala duwan. Tusaale ahaan, mid ka mid ah nidaamyada aan ku leenahay wax-soo-saarka ayaa leh in ka badan 100 marxaladood oo wax soo saar ah. Waxay ka socdaan sawirro isku mid ah, laakiin waxay ku kala duwan yihiin habaynta habaynta iyo faylasha qaabeynta.

Sidaa darteed, waxaan go'aansanay inay nagu habboon tahay inaan ku kaydinno dhammaan faylalka qaabeynta si loo geeyo hal kayd oo wadaag ah. Sidan ayay u muuqanayeen: way sahlanaayeen in la ilaaliyo waxaanan arki karnaa nidaamyada aan haysano. Haddii loo baahdo, sidoo kale way fududahay in la cusbooneysiiyo ama la beddelo wax. Ku darista nidaam cusub sidoo kale ma aha mid adag - kaliya waxaad u baahan tahay inaad abuurto faylka qaabeynta gudaha hagaha cusub. Gudaha waxaa ku jira faylasha soo socda: service.hcl, oo ka kooban sharaxaad adeegeena, iyo qaar ka mid ah faylasha env ee u oggolaanaya adeeggan, in la geeyo wax soo saarka, in la habeeyo.

U dirida codsiyada VM, Nomad iyo Kubernetes

Si kastaba ha ahaatee, qaar ka mid ah nidaamyadayada ayaa la geeyaa wax-soo-saarka ma aha hal nuqul, laakiin dhowr mar. Sidaa darteed, waxaan go'aansanay inay nagu habboon tahay inaan ku kaydinno qaab-dhismeedka qaabkooda saafiga ah, laakiin qaabkooda qaabaysan. Anaguna waanu dooranay jinja 2. Qaabkan, waxaan ku kaydineynaa labada qaabeynta adeegga lafteeda iyo faylasha env ee loo baahan yahay.

Intaa waxaa dheer, waxaan ku dhejinnay kaydka qoraal geynta oo ka dhexeeya dhammaan mashaariicda, kaas oo kuu ogolaanaya inaad bilowdo oo aad u dirto adeeggaaga wax-soo-saarka, gudaha deegaanka la rabo, bartilmaameedka la rabo. Kiiskii markii aan u beddelnay qaab-dhismeedkayaga HCL qaab-dhismeedka, ka dib faylka HCL, oo ​​ka hor ahaa qaab-dhismeedka Nomad ee caadiga ah, kiiskan wuxuu bilaabay inuu u ekaado mid ka duwan.

U dirida codsiyada VM, Nomad iyo Kubernetes

Taasi waa, waxaan ku bedelnay doorsoomayaal goobta qaabaynta qaar ka mid ah doorsoomayaal la geliyey oo laga soo qaatay faylasha env ama ilo kale. Intaa waxaa dheer, waxaan helnay fursad aan ku ururinno faylasha HCL si firfircoon, taas oo ah, ma isticmaali karno kaliya gelinta doorsoomayaasha caadiga ah. Maadaama jinja ay taageerto wareegyada iyo shuruudaha, waxaad sidoo kale ka abuuri kartaa faylasha qaabeynta, kuwaas oo isbeddelaya iyadoo ku xiran meesha saxda ah ee aad geyso codsiyadaada.

Tusaale ahaan, waxaad doonaysaa inaad u daabusho adeeggaaga hor-soo-saarka iyo wax-soo-saarka. Aynu sheegno in wax-soo-saarka kahor aadan rabin inaad socodsiiso qoraallada cron, laakiin kaliya waxaad rabtaa inaad ku aragto adeegga domain gaar ah si aad u hubiso inuu shaqeynayo. Qof kasta oo geynaya adeegga, nidaamku wuxuu u muuqdaa mid aad u fudud oo hufan. Waxa kaliya oo aad u baahan tahay inaad sameyso waa fulinta faylka deploy.sh, sheeg adeega aad rabto inaad geyso iyo bartilmaameedka. Tusaale ahaan, waxaad dooneysaa inaad nidaam gaar ah geyso Ruushka, Belarus ama Kazakhstan. Si tan loo sameeyo, si fudud u beddel mid ka mid ah xuduudaha, waxaadna heli doontaa faylka qaabeynta saxda ah.

Marka adeega Nomad mar hore la geeyay kooxdaada, waxay u egtahay sidan.

U dirida codsiyada VM, Nomad iyo Kubernetes

Marka hore, waxaad u baahan tahay nooc ka mid ah dheelitirka dibadda, kaas oo heli doona dhammaan taraafikada isticmaalaha. Waxay la shaqayn doontaa Qunsulka oo ka ogaan doontaa meesha, meesha noodhka, cinwaanka IP-ga ee adeeg gaar ah ku yaal oo u dhigma magac domain gaar ah. Adeegyada qunsulka waxay ka yimaadaan reer guuraaga laftiisa. Maadaama ay kuwanu yihiin badeecado isku shirkad ah, waxay aad isugu xidhan yihiin midba midka kale. Waxaan dhihi karnaa in Nomad oo ka baxsan sanduuqa ay diiwaangelin karto dhammaan adeegyada laga bilaabay gudaha Qunsulka.

Marka uu xisaabiyahaaga hore ee culayska uu ogaado adeega loo dirayo taraafikada, waxa uu u gudbiyaa weelka ku haboon ama weelasha badan ee ku haboon codsigaga. Dabcan, waa lagama maarmaan in laga fekero badbaadada. In kasta oo dhammaan adeegyadu ku shaqeeyaan mashiinnada farsamada gacanta ee weelasha ku jira, tani badanaa waxay u baahan tahay ka hortagga helitaanka bilaashka ah adeeg kasta oo kale. Taas waxaan ku gaadhnay kala qaybsanaan. Adeeg kasta waxaa lagu bilaabay shabakadeeda farsamada gacanta, kaas oo lagu qoray qawaaniinta iyo qawaaniinta u oggolaanshaha/diidista gelitaanka nidaamyada iyo adeegyada kale. Waxay ku yaalliin gudaha kooxdan iyo bannaankeeda labadaba. Tusaale ahaan, haddii aad rabto in aad ka ilaaliso adeega in uu ku xidhmo xog ururin gaar ah, tan waxa lagu samayn karaa iyada oo loo marayo kala qaybinta heerka shabakad. Taasi waa, xitaa si qalad ah, si lama filaan ah kama xiriiri kartid deegaanka tijaabada ilaa xogtaada wax soo saarka.

Intee in le'eg ayay innagaga baxday is-beddelka xagga dhaqaalaha?

U wareejinta shirkadda oo dhan ee Nomad waxay qaadatay qiyaastii 5-6 bilood. Waxaan u dhaqaaqnay qaab adeeg-adee, laakiin xawaare aad u degdeg badan. Koox kastaa waxay ahayd inay samaysato weel u gaar ah oo loogu talagalay adeegyada.

Waxaan qaadanay habkan oo kale in koox kastaa ay mas'uul ka tahay sawirada docker ee nidaamkooda si madax-bannaan. DevOps waxay bixisaa kaabayaasha guud ee lagama maarmaanka u ah dejinta, taas oo ah, taageerada kooxda lafteeda, taageerada nidaamka CI, iyo wixii la mid ah. Oo wakhtigaas, waxaan lahaa in ka badan 60 nidaamka u guuray Miyiga, kuwaas oo gaadhay ilaa 2 kun oo weel.

Devops ayaa mas'uul ka ah kaabayaasha guud ee wax kasta oo la xiriira geynta iyo adeegayaasha. Koox kasta oo horumarineedna, iyadu, ayaa mas'uul ka ah hirgelinta weelasha nidaamkeeda gaarka ah, maadaama ay tahay kooxda og waxa ay guud ahaan u baahan tahay weel gaar ah.

Sababaha loo dayacay reer guuraaga

Faa'iidooyinkee ayaan helnay markaan u beddelanay keenista annaga oo adeegsanayna reer guuraa iyo docker, iyo kuwo kale?

  1. Waxaan la siiyay shuruudo siman deegaan oo dhan. Horumarinta, deegaanka QA, wax-soo-saarka hore, wax-soo-saarka, sawirada weelka isku midka ah ayaa loo isticmaalaa, oo leh isku-xirnaansho isku mid ah. Sidaa awgeed, ma haysatid wax fursad ah in waxa ku dambayn doona wax soo saarku aanu ahayn wixii aad hore ugu tijaabisay gudaha ama deegaankaaga tijaabada.
  2. Waxaan sidoo kale ogaanay inay ku filan tahay fududahay in lagu daro adeeg cusub. Marka laga eego aragtida geynta, nidaam kasta oo cusub ayaa si fudud loo bilaabay. Kaliya tag goobta kaydinta habaynta, ku dar habayn kale oo nidaamkaaga halkaas ah, oo dhammaantiin waad diyaarsan tahay. Waxaad geyn kartaa nidaamkaaga wax soo saarka adiga oo aan wax dadaal dheeri ah ka helin deps.
  3. All faylasha qaabeynta hal kayd oo wadaag ah waxa soo baxay in dib loo eego. Waqtigii aan geynay nidaamkayaga anagoo adeegsanayna server-yada farsamada, waxaan isticmaalnay macquul, kaas oo qaabeyntu ay ku jireen kayd isku mid ah. Si kastaba ha ahaatee, horumariyayaal badankooda tani waxay ahayd mid aad uga adag in lala shaqeeyo. Halkan mugga qaabaynta iyo koodka aad u baahan tahay inaad ku darto si aad adeeggu u geyso aad ayay u yaraadeen. Intaa waxaa dheer, aad bay u fududahay deps si ay u hagaajiyaan ama u beddelaan. Haddii ay dhacdo u gudubka, tusaale ahaan, nooca cusub ee reer guuraaga, waxay qaadan karaan oo ay bulk cusboonaysiin karaan dhammaan faylasha hawlgalka ee ku yaal meel isku mid ah.

Laakiin waxaan sidoo kale la kulannay dhowr khasaare:

Waxa noo soo baxday in aanu ma gaadhi karin hawlgelin aan xidhiidh lahayn dhanka reer guuraaga. Marka weelasha lagu shubayo shuruudo kala duwan, waxay noqon kartaa mid soconaysa, oo reer guuraa waxay u arkayeen weel diyaar u ah in gaadiidka lagu qaado. Tani waxay dhacday ka hor inta codsiga ku jira xitaa fursad u helin inuu bilaabo. Sababtan awgeed, nidaamku wuxuu bilaabay inuu soo saaro 500 oo khalad ah muddo gaaban, sababtoo ah gaadiidka ayaa bilaabay inuu tago weel aan weli diyaar u ahayn inuu aqbalo.

Waxaan la kulannay qaar cayayaanka. Cayayaanka ugu muhiimsan waa in reer guuraagu aanu si fiican u maamulin koox wayn haddii aad leedahay habab iyo weelal badan. Marka aad rabto in aad soo saarto mid ka mid ah adeegayaasha ku jira kooxda reer guuraaga ah ee dayactirka, waxa jirta suurtogalnimo aad u saraysa in kooxdu aanay aad u wanaagsanayn oo ay kala go'i doonto. Weelasha qaar ayaa laga yaabaa, tusaale ahaan, inay dhacaan oo aanay kor u kicin - tani waxay kugu kici doontaa kharash aad u badan hadhow haddii dhammaan hababka wax soo saarkaagu ay ku yaalaan koox ay maamusho reer guuraagu.

Markaa waxa aanu go’aansanay in aanu ka fikirno halka aan aadi lahayn. Halkaa marka ay marayso, waxa aanu aad u sii baraarugsanay waxa aanu doonayno in aanu gaarno. Sida: waxaan rabnaa isku hallayn, hawlo yar oo ka badan inta ay bixiso reer guuraagu, iyo nidaam aad u qaangaadhsan, oo xasiloon.

Marka la eego, doorashadayadu waxay ku dhacday Kubernetes oo ah goobta ugu caansan ee soo saarista kooxaha. Gaar ahaan marka la eego in cabbirka iyo tirada weelashayadu ay ahaayeen kuwo ku filan. Ujeedooyinkan oo kale, Kubernetes wuxuu u muuqday inuu yahay nidaamka ugu habboon ee aan eegi karno.

U gudubka Kubernetes

Waxaan wax yar kaaga sheegi doonaa fikradaha aasaasiga ah ee Kubernetes iyo sida ay uga duwan yihiin Nomad.

U dirida codsiyada VM, Nomad iyo Kubernetes

Ugu horreyntii, fikradda aasaasiga ah ee Kubernetes waa fikradda pod. xilkii guddoomiyenimo waa koox ka kooban hal ama dhowr weel oo mar walba wada socda. Oo had iyo jeer waxay u shaqeeyaan sidii iyagoo si adag ugu shaqeeya hal mashiin. Waxaa laga heli karaa midba midka kale iyada oo loo sii marayo IP 127.0.0.1 ee dekedo kala duwan.

Aynu ka soo qaadno inaad haysato codsi PHP ah oo ka kooban nginx iyo php-fpm - nidaamka caadiga ah. Inta badan, waxaad u baahan doontaa inaad had iyo jeer isku haysatid labada nginx iyo php-fpm. Kubernetes wuxuu kuu ogolaanayaa inaad tan ku guulaysato adigoo ku sifeynaya inay yihiin hal boodh oo caadi ah. Tani waa dhab ahaan waxa aan la heli karin Nomad.

Fikradda labaad waa dirista. Xaqiiqdu waxay tahay in boodhka laftiisu uu yahay shay lama filaan ah, wuu bilaabmaa oo baaba'aa. Ma doonaysaa in aad marka hore disho dhammaan weelashaadii hore, ka dibna aad hal mar bilawdo noocyo cusub, mise waxa aad doonaysaa in aad si tartiib tartiib ah u soo saarto?Tani waa habka ay fikradda keenista ka masuul tahay. Waxay sharxaysaa sida aad u geyso galalkaaga, inta ay le'eg tahay iyo sida loo cusboonaysiiyo.

Fikradda saddexaad waa adeegga. Adeeggaagu dhab ahaantii waa nidaamkaaga, kaas oo hela taraafikada ka dibna u sii gudbiya hal ama in ka badan oo kabo ah oo u dhigma adeeggaaga. Taasi waa, waxay kuu ogolaaneysaa inaad sheegto in dhammaan taraafikada soo galaya sida iyo adeeggan oo kale oo magac leh waa in loo diraa kuwan gaarka ah. Isla markaana waxay ku siinaysaa dheelitirka gaadiidka. Taasi waa, waxaad bilaabi kartaa laba qaybood oo codsigaaga ah, iyo dhammaan taraafikada soo galaya waxay si siman u dheelitiri doonaan inta u dhaxaysa boodhka la xidhiidha adeeggan.

Iyo fikradda aasaasiga ah ee afaraad waa Ingress. Kani waa adeeg ku shaqeeya kooxda Kubernetes. Waxay u shaqeysaa sidii isku dheellitirka culeyska dibadda kaasoo la wareegaya dhammaan codsiyada. Adigoo isticmaalaya Kubernetes API, Ingress wuxuu go'aamin karaa meesha codsiyadan lagu diri karo. Waxaa intaa dheer, wuxuu tan u sameeyaa si aad u dabacsan. Waxaad odhan kartaa dhammaan codsiyada martida loo yahay iyo URL caynkaas ah ayaa loo soo diray adeeggan. Codsiyadan u imanaya martigeliyahaan iyo URL kale ayaa loo diraa adeeg kale.

Waxa ugu fiican marka laga eego aragtida qof soo saaraya arji waa inaad awood u leedahay inaad adigu maamusho dhammaanba. Markaad dejiso qaabka Ingress, waxaad u diri kartaa dhammaan taraafikada u imanaya sida API iyo sida loo kala saaro weelasha ku qoran, tusaale ahaan, gudaha Go. Laakiin gaadiidkan, oo imanaya isla domain, laakiin URL kale, waa in loo diraa weelasha ku qoran PHP, halkaas oo ay jiraan caqli-gal badan, laakiin aad uma degdegsana.

Haddii aan is barbar dhigno fikradahaas oo dhan iyo reer guuraaga, waxaan dhihi karnaa in saddexda fikradood ee ugu horreeya ay dhammaantood yihiin adeeg. Fikirka ugu dambeeyana waa ka maqan yahay reer guuraaga laftiisa. Waxaan u isticmaalnay dheellitirka dibadda sida: waxay noqon kartaa haproxy, nginx, nginx +, iyo wixii la mid ah. Xaaladda cube, uma baahnid inaad fikraddan dheeraadka ah si gaar ah u soo bandhigto. Si kastaba ha noqotee, haddii aad eegto gudaha gudaha, waa nginx, haproxy, ama traefik, laakiin waa nooc ka mid ah Kubernetes.

Dhammaan fikradaha aan sharraxay waa, runtii, agabyo ka dhex jira kutlada Kubernetes. Si loo qeexo cube, qaab yaml ah ayaa la isticmaalaa, kaas oo aad loo akhriyi karo loogana yaqaan faylalka HCL ee dhinaca reer guuraaga. Laakin qaab dhismeed ahaan waxay ku sifeeyaan wax la mid ah kiiska, tusaale ahaan, pod. Waxay yiraahdeen - Waxaan rabaa in aan geyn doono kuwan oo kale iyo kuwan oo kale ah halkaas, oo leh sawirro iyo cayn, tiro iyo sidaas oo kale ah.

U dirida codsiyada VM, Nomad iyo Kubernetes

Intaa waxaa dheer, waxaan ogaanay inaanan dooneynin inaan abuurno kheyraad kasta oo gaar ah gacanta: geyn, adeegyo, Gudaha, iwm. Taa baddalkeeda, waxaan rabnay inaan ku qeexno mid kasta oo ka mid ah nidaamyadayaga marka la eego Kubernetes inta lagu guda jiro hawlgalka, si aynaan u yeelan inaan gacanta ku soo celinno dhammaan ku tiirsanaanta kheyraadka lagama maarmaanka ah ee nidaamka saxda ah. Helm waxaa loo doortay nidaamkii noo ogolaaday inaan tan samayno.

Fikradaha aasaasiga ah ee Helm

Helm waa maamulaha xirmada Kubernetes. Waxay aad ula mid tahay sida maamulayaasha xirmada ee luqadaha barnaamijyada u shaqeeyaan. Waxay kuu oggolaanayaan inaad kaydiso adeeg ka kooban, tusaale ahaan, geynta nginx, geynta php-fpm, config for Ingress, configmaps (tani waa qayb kuu oggolaanaysa inaad dejiso env iyo xuduudaha kale ee nidaamkaaga) qaab so- loo yaqaan jaantusyada. Isla markaana Helm Waxay ku socotaa dusha sare ee Kubernetes. Taasi waa, kani maaha nooc ka mid ah nidaamka taagan, laakiin kaliya adeeg kale ayaa laga bilaabay cube-ga. Waxaad kula falgashaa API-geeda adoo adeegsanaya amarka console-ka. Ku habboonaanteeda iyo quruxdeeda ayaa ah in xitaa haddii cidhifku jabo ama aad ka saarto kutlada, adeegyadaadu ma baabi'i doonaan, maaddaama koofiyadda asal ahaan ay u adeegto oo keliya bilowga nidaamka. Kubernetes lafteeda ayaa markaa mas'uul ka ah waxqabadka iyo xaaladda adeegyada.

Waxaan sidoo kale ogaanay taas qaabaynta, Kaas oo markii hore naloogu khasbay in aan nafteena samayno annagoo ku soo bandhignay jinja qaab-dhismeedkayaga, waa mid ka mid ah astaamaha ugu muhiimsan ee koofiyadda. Dhammaan qaababka aad u abuurto nidaamyadaaga waxay ku kaydsan yihiin qaabka qaab-dhismeedka, wax yar oo la mid ah jinja, laakiin, dhab ahaantii, adoo isticmaalaya qaabka luqadda Go, kaas oo koofiyadda ku qoran, sida Kubernetes.

Helm wuxuu nagu darayaa dhowr fikradood oo kale.

shaxda - tani waa sharraxaadda adeeggaaga. Maamulayaasha baakadaha kale waxaa loogu yeeraa xirmo, xirmo ama wax la mid ah. Halkan waxaa lagu magacaabaa jaantus.

Qiimayaasha waa doorsoomayaasha aad rabto inaad isticmaasho si aad u dhisto qaab-dhismeedkaaga qaab-dhismeedka.

Release. Mar kasta oo adeeg la geeyo iyadoo la isticmaalayo koofiyadda waxay helaysaa nooc sii dayn ah oo kordhay. Helm wuxuu xusuustaa waxa qaabaynta adeeggu ku jiray sii dayntii hore, sii dayntii ka hor, iyo wixii la mid ah. Sidaa darteed, haddii aad u baahan tahay inaad dib-u-soo-noqoto, kaliya socodsii amarka dib-u-soo-celinta, adigoo u tilmaamaya noocii hore ee sii-deynta. Xataa haddii qaabaynta u dhiganta ee kaydkaaga aan la heli karin wakhtiga dib-u-celinta, koofiyadda ayaa wali xasuusan doonta waxa ay ahayd oo waxay dib ugu celin doontaa nidaamkaaga xaaladdii uu ku jiray siidaynta hore.

Xaaladda marka aan isticmaalno koofiyadda, qaabeynta joogtada ah ee Kubernetes waxay sidoo kale isu beddelaan qaab-dhismeedka ay suurtagal tahay in la isticmaalo doorsoomayaasha, shaqooyinka, oo lagu dabaqo bayaan shuruudaysan. Sidan ayaad ku soo ururin kartaa habaynta adeeggaaga iyadoo ku xidhan deegaanka.

U dirida codsiyada VM, Nomad iyo Kubernetes

Ficil ahaan, waxaan go'aansanay inaan wax yar u samayno si ka duwan sidii aan ku samaynay reer guuraaga. Haddii reer Nomad labada qaabaynta dejinta iyo n-variables ee loo baahnaa si loo geeyo adeeggayaga lagu kaydiyey hal kayd, halkan waxaan go'aansanay inaan u qaybinno laba kayd oo kala duwan. Kaydka "deploy" waxa uu kaydiyaa n-variables ee loo baahan yahay in la geeyo, iyo kaydka "helm" waxa uu kaydiyaa jaantusyada ama jaantusyada.

U dirida codsiyada VM, Nomad iyo Kubernetes

Maxay tani na siisay?

In kasta oo xaqiiqda ah in aynaan ku kaydin wax xog dhab ah oo xasaasi ah in files qaabeynta laftooda. Tusaale ahaan, furaha sirta ah ee database-yada. Waxay ku kaydsan yihiin siraha Kubernetes, laakiin si kastaba ha ahaatee, waxaa jira waxyaabo gaar ah oo aynaan rabin inaan qof walba siino. Sidaa darteed, gelitaanka bakhaarka "dhigista" waa mid aad u xaddidan, iyo kaydka "helm" wuxuu si fudud uga kooban yahay sharaxaadda adeegga. Sababtan awgeed, waxaa si badbaado leh u geli kara dad kala duwan.

Maadaama aan haysano wax soo saar oo kaliya, laakiin sidoo kale deegaan kale, mahadda kala goyntan waxaan dib u isticmaali karnaa jaantusyada koofiyadda si aan u geyno adeegyada kaliya maahan wax soo saarka, laakiin sidoo kale, tusaale ahaan, deegaanka QA. Xitaa in la geeyo gudaha iyaga oo isticmaalaya Minikube - Tani waa shay loogu talagalay Kubernetes gudaha.

Gudaha kayd kasta, waxaanu kaga tagnay qayb u kala qaybsan hagayaal u gaar ah adeeg kasta. Taasi waa, gudaha hage kasta waxaa jira habab la xidhiidha jaantuska u dhigma oo qeexaya agabyada loo baahan yahay in la geeyo si loo bilaabo nidaamkayaga. Waxaan kaga tagnay kaliya envs ee kaydka β€œdeploy” Xaaladdan oo kale, ma aynaan isticmaalin templating isticmaalaya jinja, sababtoo ah koofiyadda lafteedu waxay bixisaa templating ka baxsan sanduuqa - tani waa mid ka mid ah hawlaheeda ugu muhiimsan.

Waxaan ka tagnay qoraal-deploy.sh, kaas oo fududeeya oo dejinaya bilaabista hawlgelinta iyadoo la isticmaalayo koofiyadda. Marka, qof kasta oo raba in la diro, interface-ka geyntu waxa uu u eg yahay sidii uu sameeyay markii la dhex gelinayay Nomad. Isla deploy.sh, magaca adeeggaaga, iyo meesha aad rabto inaad geyso. Tani waxay keenaysaa in koofiyaddu ay gudaha ka bilowdo. Waxay, markeeda, ka ururinaysaa qaab-dhismeedka qaab-dhismeedka, waxay gelisaa faylalka qiyamka lagama maarmaanka ah iyaga, ka dib waxay geysaa, iyaga oo ku dhejinaya Kubernetes.

natiijooyinka

Adeegga Kubernetes wuxuu u muuqdaa mid ka adag kan reer guuraaga.

U dirida codsiyada VM, Nomad iyo Kubernetes

Halkan taraafikada baxaya waxay u timaadaa Ingress. Kani waa kantaroolaha hore, kaas oo la wareegaya dhammaan codsiyada ka dibna u soo diraya adeegyada u dhigma xogta codsiga. Waxay go'aaminaysaa iyaga oo ku salaysan qaabaynta qayb ka ah sharraxaadda codsigaga koofiyadda iyo kuwa horumariyayaashu iskood u dejiyaan. Adeeggu waxa uu codsiyo u diraa gadihiisa, taas oo ah, weel gaar ah, oo dheellitiraya taraafikada ka dhaxaysa dhammaan weelasha uu leeyahay adeeggan. Iyo, dabcan, waa in aynaan iloobin in aynaan meelna ka tagin ammaanka heerka shabakadda. Sidaa darteed, qaybintu waxay ka shaqaysaa kutlada Kubernetes, taas oo ku salaysan calaamadaynta. Dhammaan adeegyadu waxay leeyihiin calaamado gaar ah oo ay ku xidhan yihiin xuquuqaha gelitaanka adeegyada ee agabka dibadda/gudaha qaarkood ee kutlada ama ka baxsan.

Markii aan samaynay kala-guurka, waxaan aragnay in Kubernetes uu leeyahay dhammaan awoodaha reer guuraaga, oo aan horay u adeegsan jirnay, oo sidoo kale ku daray waxyaabo badan oo cusub. Waxaa lagu ballaarin karaa iyada oo loo marayo plugins, iyo dhab ahaantii iyada oo loo marayo noocyada kheyraadka caadiga ah. Taasi waa, waxaad fursad u haysataa inaadan isticmaalin wax la socda Kubernetes oo ka baxsan sanduuqa, laakiin inaad abuurto kheyraadkaaga iyo adeeggaaga oo akhrin doona kheyraadkaaga. Tani waxay ku siinaysaa fursado dheeraad ah oo aad ku balaadhiso nidaamkaaga adoon dib u dajin Kubernetes oo aan u baahnayn wax ka beddel.

Tusaalaha isticmaalka noocaas ah waa Prometheus, kaas oo ka shaqeeya gudaha kutladayada Kubernetes. Si ay u bilowdo ururinta mitirka adeeg gaar ah, waxaan u baahanahay inaan ku darno nooc kale oo kheyraad ah, waxa loogu yeero kormeeraha adeegga, sharaxaadda adeegga. Prometheus, sababtoo ah xaqiiqda ah inay akhrin karto nooca kheyraadka caadiga ah marka lagu bilaabo Kubernetes, waxay si toos ah u bilaabeysaa ururinta mitirka nidaamka cusub. Aad bay u habboon tahay.

Hawlgalkii ugu horreeyay ee aan u dirnay Kubernetes waxay ahayd Maarso 2018. Mudadaasna waligeen wax dhibaato ah lama kulmin. Waxay u shaqeysaa si adag iyadoon lahayn cillado muhiim ah. Intaa waxaa dheer, waxaan sii ballaarin karnaa. Maanta waxaan haysanaa ku filan awoodaha ay leedahay, waxaanan runtii jecelnahay xawaaraha horumarka Kubernetes. Hadda, in ka badan 3000 weel ayaa ku jira Kubernetes. Kooxdu waxay haysaa dhawr Nodes. Isla mar ahaantaana, waa adeeg, xasilloon oo aad loo xakameyn karo.

Source: www.habr.com

Add a comment