Sawirada u diyaarsan wax soo saarka ee k8s

Sheekadani waxay ku saabsan tahay sida aan u isticmaalno weelasha deegaanka wax soo saarka, gaar ahaan Kubernetes. Maqaalku wuxuu u go'ay inuu ururiyo mitirka iyo qoryaha weelasha, iyo sidoo kale dhismaha sawirada.

Sawirada u diyaarsan wax soo saarka ee k8s

Waxaan ka nimid shirkadda fintech Exness, oo horumarisa adeegyada ganacsiga khadka tooska ah iyo alaabada fintech ee B2B iyo B2C. R&Dyadu waxay leeyihiin kooxo badan oo kala duwan, waaxda horumarinta waxay leedahay 100+ shaqaale ah.

Waxaan matalnaa kooxda ka mas'uulka ah madal ay horumariyeyaasheena u ururiyaan oo ay ku socodsiiyaan koodka. Gaar ahaan, waxaan mas'uul ka nahay aruurinta, keydinta iyo ka warbixinta cabbirrada, logs, iyo dhacdooyinka codsiyada. Waxaan hadda ku shaqeynaa ku dhawaad ​​​​saddex kun oo weel Docker ah oo ku yaal deegaan wax soo saar, waxaan ilaalineynaa 50 TB kaydinta xogta weyn, waxaanan bixinnaa xalal naqshadeed oo laga dhisay kaabayaashayada: Kubernetes, Rancher, iyo bixiyeyaasha daruuraha dadweynaha ee kala duwan. 

Dhiirigelinteena

Maxaa gubanaya? Qofna kama jawaabi karo. Aaway shiidladii? Way adag tahay in la fahmo. Goorma ayuu dab qabsaday? Waad ogaan kartaa, laakiin isla markiiba maaha. 

Sawirada u diyaarsan wax soo saarka ee k8s

Waa maxay sababta weelasha qaar u taagan yihiin halka kuwa kalena ay dumeen? Weelkee ayaa lagu eedeeyay? Ka dib oo dhan, bannaanka weelasha waa isku mid, laakiin gudaha mid kastaa wuxuu leeyahay Neo u gaar ah.

Sawirada u diyaarsan wax soo saarka ee k8s

Horumarintayadu waa rag karti leh. Waxay sameeyaan adeegyo wanaagsan oo faa'iido u keena shirkadda. Laakiin waxaa jira guuldarrooyin marka weelasha ay ku jiraan codsiyada ay marin habaabin. Hal weel ayaa cuna CPU aad u badan, mid kalena wuxuu cunaa shabakada, mid saddexaadna wuxuu cunaa hawlgallada I/O, kan afraadna gebi ahaanba ma cadda waxa uu ku sameeyo saldhigyada. Dhammaantood way wada dhaceen, markabkiina wuu degay. 

Wakiilada

Si aan u fahamno waxa ka dhacaya gudaha, waxaan go'aansanay inaan wakiilada si toos ah ugu dhejino weelasha.

Sawirada u diyaarsan wax soo saarka ee k8s

Wakiiladani waa barnaamijyada xakamaynaya weelasha ku jira xaalad ah in aanay midba midka kale jebin. Wakiiladu waa la habeeyey, tanina waxay u ogolaanaysaa hab habaysan oo loogu adeegayo weelasha. 

Xaaladeena, wakiilladu waa inay bixiyaan diiwaannada qaab caadi ah, la calaamadeeyay oo la tumay. Waa inay sidoo kale na siiyaan cabbirro heersare ah oo laga yaabo in laga eego dhinaca codsiga ganacsiga.

Wakiiladu waxa kale oo ay ula jeedaan yutiilitida hawlgalka iyo dayactirka ee ka shaqayn kara nidaamyada kala duwan ee orchestration kuwaas oo taageera sawiro kala duwan (Debian, Alpine, Centos, iwm.).

Ugu dambeyntii, wakiiladu waa inay taageeraan CI/CD fudud oo ay ku jiraan faylasha Docker. Haddii kale, markabka ayaa kala go'i doona, sababtoo ah weelasha ayaa bilaabi doona in lagu keeno tareenada "qalloocan".

Dhis habka iyo bartilmaameedka qalab sawirka

Si wax walba loo habeeyo oo loo maareeyo, nooc ka mid ah habka dhismaha caadiga ah ayaa loo baahan yahay in la raaco. Sidaa darteed, waxaan go'aansanay inaan ku ururinno weelasha weelasha - tani waa soo noqnoqoshada.

Sawirada u diyaarsan wax soo saarka ee k8s

Halkan weelasha waxaa ka muuqda tilmaamo adag. Isla mar ahaantaana, waxay go'aansadeen in ay ku dhejiyaan xirmooyinka qaybinta si "noloshu aysan u muuqan sida raspberries." Sababta tan loo sameeyay, hoos ayaan ku sharxi doonaa.
 
Natiijadu waa qalab dhismo- weel nooca-gaar ah oo tixraacaya noocyo qaybin gaar ah iyo qoraalo gaar ah.

Sideen u isticmaalnaa? Waxaan leenahay Hub Docker oo ka kooban weel. Waxaan u muraayadda gudaha nidaamkayaga si aan uga takhalusno ku tiirsanaanta dibadda. Natiijadu waa weel ku calaamadsan jaalaha. Waxaan abuurnaa qaab-dhismeed si aan ugu rakibno dhammaan qaybinta iyo qoraallada aan u baahannahay weelka. Taas ka dib, waxaan soo ururinay sawir diyaar u ah in la isticmaalo: horumariyayaashu waxay geliyeen koodka iyo qaar ka mid ah ku tiirsanaanta gaarka ah ee u gaarka ah. 

Maxaa ku wanaagsan habkan? 

  • Marka hore, koontaroolka buuxa ee qalabka dhismaha - dhis weel, qoraal iyo noocyada qaybinta. 
  • Marka labaad, waxaan gaarnay jaangooyooyin: waxaan u abuurnaa qaab-dhismeedka, dhex-dhexaadka iyo muuqaalka diyaarka u ah in la isticmaalo si la mid ah. 
  • Seddexaad, weelku waxay na siinayaan qaadida. Maanta waxaan isticmaalnaa Gitlab, berrina waxaan u wareegi doonaa TeamCity ama Jenkins waxaanan awood u yeelan doonaa inaan u wadno weelashayada si la mid ah. 
  • Afar, yaraynta ku tiirsanaanta. Ma ahan wax nasiib ah in aan xirmooyinka qaybinta ku ridno weelka, sababtoo ah tani waxay noo ogolaaneysaa inaan iska ilaalino in laga soo dejiyo internetka mar kasta. 
  • Marka shanaad, xawaaraha dhismuhu wuu kordhay - joogitaanka nuqullada maxaliga ah ee sawirada waxay kuu ogolaaneysaa inaad iska ilaaliso inaad waqti lumiso soo dejinta, maadaama uu jiro sawir maxalli ah. 

Si kale haddii loo dhigo, waxaan gaadhnay hannaan isku-ururin la xakameeyey oo dabacsan. Waxaan isticmaalnaa qalab isku mid ah si aan u dhisno weel kasta oo qaabaysan. 

Sida habka dhismuhu u shaqeeyo

Sawirada u diyaarsan wax soo saarka ee k8s

Golaha waxaa lagu bilaabay hal amar, habka waxaa lagu fuliyay sawirka (oo lagu muujiyay casaan). Horumariyuhu waxa uu leeyahay faylka Docker (oo lagu iftiimiyay jaalaha), waxaanu bixinaa, ku beddela doorsoomayaasha qiyamka. Oo jidka waxaan ku daray madax iyo footers - kuwanu waa wakiilada our. 

Madaxa wuxuu ku darayaa qaybinta sawirada u dhigma. Iyo cagtu waxay ku rakibtaa adeegyadeena gudaha, waxay dejisaa bilawga culayska shaqada, gooynta iyo wakiilada kale, waxay badashaa barta laga soo galo, iwm. 

Sawirada u diyaarsan wax soo saarka ee k8s

Waxaan muddo dheer ka fikirnay in la rakibo kormeere iyo in kale. Ugu dambeyntii, waxaan go'aansanay inaan u baahanahay isaga. Waxaan dooranay S6. Kormeeruhu wuxuu bixiyaa maareynta weelka: wuxuu kuu ogolaanayaa inaad ku xirto haddii habka ugu weyni uu xumaado oo uu bixiyo maareynta gacanta ee weelka iyada oo aan dib loo abuurin. Logs iyo metrik waa habab ku dhex socda weelka. Waxay sidoo kale u baahan yihiin in si uun loo xakameeyo, waxaana taas ku samaynaa anagoo kaashanayna kormeere. Ugu dambayntii, S6 waxa ay daryeeshaa ilaalinta guriga, habaynta calaamadaha iyo hawlaha kale.

Maadaama aan isticmaalno habab kala duwan oo orchestration ah, ka dib marka la dhiso oo la ordo, weelku waa inuu fahmo jawiga uu ku jiro oo uu u dhaqmaa sida xaaladdu tahay. Tusaale ahaan:
Tani waxay noo ogolaanaysaa inaan dhisno hal sawir oo aan ku socodsiino nidaamyada orchestration ee kala duwan, waxaana la bilaabi doonaa iyada oo la tixgelinayo waxyaabaha gaarka ah ee nidaamkan orchestration.

 Sawirada u diyaarsan wax soo saarka ee k8s

Isla weel isku mid ah waxaan ku helnaa geedo geedo-socod oo kala duwan Docker iyo Kubernetes:

Sawirada u diyaarsan wax soo saarka ee k8s

Culayska lacagta waxa lagu fuliyaa kormeerka S6. U fiirso ururiyaha iyo dhacdooyinka - kuwani waa wakiiladeena mas'uul ka ah gunnada iyo cabbirada. Kubernetes ma haysto iyaga, laakiin Docker ayaa leh. Waa maxay sababtu? 

Haddii aan eegno qeexitaanka "pod" (hadda dambe - Kubernetes pod), waxaan arki doonaa in weelka dhacdooyinka lagu fuliyo sanduuq, kaas oo leh weel gooni ah oo ururiyaha ah oo qabta shaqada ururinta metrics iyo logs. Waxaan isticmaali karnaa awoodaha Kubernetes: ku socodsiinta weelasha hal boodh, hal geeddi-socod iyo/ama bannaan shabakad. Dhab ahaantii baro wakiiladaada oo samee qaar ka mid ah hawlaha. Oo haddii weel isku mid ah lagu soo bandhigo Docker, waxay heli doontaa dhammaan awoodaha la midka ah sida wax soo saarka, taas oo ah, waxay awoodi doontaa inay keento logs iyo metrik, maaddaama wakiilada lagu bilaabi doono gudaha. 

Metrics iyo logs

Bixinta mitirka iyo logyada waa hawl adag. Waxaa jira dhowr arrimood oo ku saabsan go'aankeeda.
Kaabayaasha dhaqaalaha waxaa loo abuuray fulinta culeyska culeyska ah, ee ma ahan in la gaarsiiyo tiro badan. Taasi waa, habkan waa in lagu sameeyaa shuruudaha kheyraadka weelka ugu yar. Waxaan ku dadaaleynaa inaan caawino horumariyeyaasheena: "Hel weel Docker Hub, maamul, oo waan gaarsiin karnaa loguda." 

Dhinaca labaad waa xaddididda mugga logyada. Haddii kor u kaca mugga loggu uu ku dhaco dhowr weel (codsigu wuxuu soo saaraa raad-raac loop ah), culeyska ku jira CPU, kanaalada isgaarsiinta, iyo nidaamka wax-qabadka log ayaa kordha, tani waxay saameyneysaa shaqada martida loo yahay. weelasha oo dhan iyo kuwa kale oo ku yaala martigeliyaha, ka dibna mararka qaarkood tani waxay keentaa "dhicida" martida loo yahay. 

Dhinaca saddexaad waa in ay lagama maarmaan tahay in la taageero inta ugu badan ee hababka ururinta mitirka ee suurtogalka ah ee ka baxsan sanduuqa. Laga bilaabo akhrinta faylasha iyo codbixinta Prometheus-dhamaadka ilaa isticmaalka borotokoolka gaarka ah ee codsiga.

Dhinaca ugu dambeeyana waa in la yareeyo isticmaalka kheyraadka.

Waxaan dooranay xal furan oo Go xal loo yaqaan Telegraf. Kani waa xidhiidhiye caalami ah oo taageera in ka badan 140 nooc oo kanaalada wax gelinta ah (Plugins Input) iyo 30 nooc oo kanaalada wax soo saarka ah (filliinnada wax soo saarka). Waanu dhamaystirnay oo hadda waxaan kuu sheegi doonaa sida aan u isticmaalno tusaale ahaan Kubernetes. 

Sawirada u diyaarsan wax soo saarka ee k8s

Aynu nidhaahno horumariye wuxuu daadiyaa culays shaqo, Kubernetesna wuxuu helay codsi lagu abuurayo boodh. Halkaa marka ay marayso, weel la yiraahdo Collector ayaa si toos ah loogu abuuray pod kasto (waxaan isticmaalnaa mutation webhook). Soo ururiye waa wakiilkayaga. Bilawga, weelkani wuxuu isu habeeyaa si uu ula shaqeeyo Prometheus iyo nidaamka ururinta log.

  • Si tan loo sameeyo, waxay isticmaashaa sharraxaadda podska, waxayna kuxirantahay nuxurkeeda, waxay abuurtaa, dheh, barta dhamaadka Prometheus; 
  • Iyada oo ku saleysan qeexida boodhka iyo goobaha weelka gaarka ah, waxay go'aaminaysaa sida loo keeno logyada.

Waxaan ku uruurinnaa diiwaannada iyada oo loo marayo Docker API: horumariyayaashu waxay kaliya u baahan yihiin inay ku dhejiyaan stdout ama stderr, iyo ururiyaha ayaa xallin doona. Logyada waxaa lagu soo ururiyaa qaybo yar oo dib u dhac ah si looga hortago culayska badan ee martida. 

Metrics waxaa lagu soo ururiyaa guud ahaan tusaalooyinka culeyska shaqada (habsocodka) ee weelasha. Wax walba waa la calaamadeeyay: magac magac, hoos, iyo wixii la mid ah, ka dibna loo beddelo qaabka Prometheus - oo wuxuu noqdaa mid diyaar u ah ururinta (marka laga reebo logs). Waxaan sidoo kale u dirnaa diiwaannada, cabbirada iyo dhacdooyinka Kafka iyo in ka sii badan:

  • Logs ayaa laga heli karaa Graylog (si loo baaro aragga);
  • Logs, metrik, dhacdooyinka waxaa loo diraa Clickhouse si loo kaydiyo muddada dheer.

Wax walba waxay si isku mid ah uga shaqeeyaan AWS, kaliya waxaan ku bedelnaa Graylog Kafka Cloudwatch. Waxaan u dirnaa logyada halkaas, wax walbana waxay noqdeen kuwo aad u habboon: isla markiiba way caddahay kooxda iyo weelka ay ka tirsan yihiin. Isla sidaas oo kale ayaa ah Google Stackdriver. Taasi waa, nidaamkayagu wuxuu la shaqeeyaa goobta Kafka iyo daruuraha labadaba. 

Haddii aanan haysanin Kubernetes oo leh boodhyo, nidaamku wuu yara adag yahay, laakiin wuxuu ku shaqeeyaa mabaadi'da isku midka ah.

Sawirada u diyaarsan wax soo saarka ee k8s

Nidaamyo isku mid ah ayaa lagu sameeyaa gudaha weelka, waxaa lagu abaabulaa iyadoo la adeegsanayo S6. Dhammaan hababka isku midka ah ayaa ku dhex socda weel isku mid ah.

Gabagabadii

Waxaan u abuurnay xal dhammaystiran dhisidda iyo soo saarista sawirrada, oo leh ikhtiyaarrada ururinta iyo gaarsiinta logyada iyo cabbirrada:

  • Waxaan samaynay hab habaysan oo lagu ururiyo sawirada, waxaana ku salaynay waxaanu samaynay habab CI;
  • Wakiilada xog ururinta waa kordhintayada Telegraf. Waxaan si fiican u tijaabinay wax soo saarka;
  • Waxaan isticmaalnaa mutation webhook si aan u hirgelino weelal leh wakiillo ku jira boodhadhka; 
  • Lagu dhex daray nidaamka deegaanka Kubernetes/Rancher;
  • Waxaan ku fulin karnaa isla weel isku mid ah hababka orchestration ee kala duwan oo waxaan helnaa natiijada aan fileyno;
  • Sameeyay qaabaynta maaraynta weelka gabi ahaanba firfircoon. 

La-qoraa: Ilya Prudnikov

Source: www.habr.com

Add a comment