Nimûneyên hilanîna daneyê li Kubernetes

Nimûneyên hilanîna daneyê li Kubernetes
Hey Habr!

Em ji we re bi bîr tînin ku me dinek pir balkêş û kêrhatî derxist pirtûkek li ser qalibên Kubernetes. Her tişt bi "Patterns"Brendan Burns, û, bi awayê, di vê beşê de xebata me heye dikelîne. Îro em we vedixwînin ku hûn gotarek ji bloga MinIO bixwînin ku bi kurtî meyl û taybetmendiyên qalibên hilanîna daneyê li Kubernetes vedibêje.

Kubernetes bi bingehîn pêşkeftina serîlêdana kevneşopî û şêwazên bicîhkirinê guhertiye. Naha tîmek dikare di nav çend rojan de serîlêdanek pêş bixe, ceribandin û bicîh bike - li seranserê hawîrdoran, hemî di nav komên Kubernetes de. Xebatek wusa bi nifşên berê yên teknolojiyê re bi gelemperî hefte, heke ne meh, girt.

Ev lezbûn ji hêla abstraksiyona ku ji hêla Kubernetes ve hatî peyda kirin pêkan e - ango, ji ber ku Kubernetes bixwe bi hûrguliyên asta nizm ên makîneyên laşî an virtual re têkildar dibe, rê dide bikarhêneran ku pêvajoya xwestinê, mîqdara xwestina bîranînê, û hejmara konteynerê diyar bikin. nimûne, di nav parametreyên din de. Li gel civatek mezin a ku Kubernetes piştgirî dike û pejirandina wê bi domdarî berfireh dibe, Kubernetes di nav hemî platformên orkestrasyona konteyneran de bi rêjeyek berfireh pêşeng e.

Her ku karanîna Kubernetes mezin dibe, tevliheviya li ser şêwazên hilanîna wê jî zêde dibe..

Digel ku her kes ji bo perçeyek Kubernetes (ango, hilanîna daneyê) pêşbaziyê dike, dema ku dor tê hilanîna daneyê, sînyala di nav dengek pir de xeniqîne.
Kubernetes ji bo pêşkeftina serîlêdanê, bicihkirin û rêvebirinê modelek nûjen pêk tîne. Ev modela nûjen hilanîna daneyê ji hesabkirinê vediqetîne. Ji bo ku hûn di çarçoweya Kubernetes de veqetandinê bi tevahî fam bikin, hûn jî hewce ne ku hûn fêm bikin ka serîlêdanên dewletparêz û bêdewlet çi ne, û hilanîna daneyê çawa di nav wê de cih digire. Li vir nêzîkatiya REST API-ya ku ji hêla S3 ve hatî bikar anîn xwedan avantajên zelal li ser nêzîkatiya POSIX / CSI ya çareseriyên din e.

Di vê gotarê de, em ê li ser qalibên hilanînê daneyan li Kubernetes biaxivin û bi taybetî li ser nîqaşa di navbera serîlêdanên dewletparêz û bêdewlet de biaxivin da ku çêtir fam bikin ka ferqa di navbera wan de çi ye û çima girîng e. Ya mayî ya nivîsê dê li sepanan û şêwazên hilanîna daneya wan di ronahiya pratîkên çêtirîn ên ji bo xebata bi konteyneran û Kubernetes re binihêre.

Konteynirên bêdewlet

Konteynirên ji hêla xwezayê ve sivik û demdirêj in. Ew dikarin bi hêsanî werin sekinandin, rakirin, an li nodek din werin bicîh kirin - hemî di çirkeyan de. Di pergalek orkestrasyona konteynir a mezin de, operasyonên weha her dem diqewimin, û bikarhêner guh nadin guhertinên weha. Lêbelê, tevger tenê mimkun in heke konteynir bi girêka ku lê ye ve girêdayî nebe. Tê gotin ku konteynerên wiha dixebitin bê dewlet.

Konteynirên dewletdar

Ger konteynir daneyan li ser cîhazên pêvekirî yên herêmî (an li ser amûrek blokê) hilîne, wê hingê depoya daneyê ya ku ew lê rûdine dê di bûyera têkçûnekê de, li gel konteynerê, li nodek nû were veguheztin. Ev girîng e ji ber ku wekî din serîlêdana ku di konteynerê de tê xebitandin dê nikaribe bi rêkûpêk bixebite ji ber ku ew hewce dike ku bigihîje daneyên ku li ser medyaya herêmî hatine hilanîn. Tê gotin ku konteynerên wiha dixebitin dewletdar.

Ji xalek teknîkî ya bêkêmasî, konteynerên dewletparêz dikarin berbi nokên din jî werin veguheztin. Ev bi gelemperî bi karanîna pergalên pelan ên belavkirî an bloka hilanîna torê ya ku bi hemî girêkên ku konteynerên xebitandinê ve girêdayî ye, tê bidestxistin. Bi vî rengî, konteyneran ji bo hilanîna daneya domdar gihîştina cildan, û agahdarî li ser dîskên ku li seranserê torê ne têne hilanîn. Ez ê navê vê rêbazê bikim "nêzîkatiya konteynerê dewletdar", û di gotara mayî de ez ê ji bo yekrêziyê jê re bibêjim.

Nimûneyên hilanîna daneyê li Kubernetes

Di nêzîkatiyek konteynerê ya tîpîk de, hemî pelên serîlêdanê bi pergalek pelê ya yekbûyî ya belavkirî ve têne girêdan - celebek hilanîna hevpar ku hemî daneyên serîlêdanê lê dimînin. Dema ku hin guhertoyên gengaz in, ev nêzîkatiyek asta bilind e.

Naha em binihêrin ka çima nêzîkatiya konteynerê dewletdar di cîhanek ewr-navendî de dij-patternek e.

Sêwirana serîlêdana Cloud-xwecihî

Bi kevneşopî, sepanan databasan ji bo hilanîna birêkûpêk a agahdarî û dîskên herêmî bikar anîn an pergalên pelan belav kirin ku hemî daneyên nesazkirî an hetta nîv-sazkirî têne avêtin. Her ku cildên daneya nesazkirî mezin bûn, pêşdebiran fêm kir ku POSIX pir sohbet bû, xwedan sermayek girîng bû, û di dawiyê de dema ku berbi pîvanên bi rastî mezin ve diçe performansa serîlêdanê asteng dike.

Vê yekê bi gelemperî beşdarî peydabûna standardek nû ya ji bo hilanîna daneyê, ango hilanîna ser-based ewr, ku di serî de li ser bingeha REST API-yê dixebite û serîlêdanê ji lênihêrîna giran a hilanîna daneya herêmî azad dike, kir. Di vê rewşê de, serîlêdan bi bandor diçe moda bêdewlet (ji ber ku dewlet di hilanîna dûr de ye). Serîlêdanên nûjen bi vê faktorê di hişê xwe de ji nû ve têne çêkirin. Wekî qaîdeyek, her serîlêdana nûjen ku daneyên yek celeb an din (têketin, metadata, blob, hwd.) pêvajo dike, li gorî paradîgmayek ewr-oriented, ku dewlet vediguhezîne pergalek nermalavê ku bi taybetî ji bo hilanîna wê hatî veqetandin, tête çêkirin.

Nêzîkatiya konteynera dewletparêz vê paradîgmayê tam li cihê ku dest pê kiriye vedigere!

Bi karanîna navbeynkên POSIX-ê ji bo hilanîna daneyan, serîlêdan mîna ku ew dewletdar bin tevdigerin, û ji ber vê yekê, ew ji hêmanên herî girîng ên sêwirana ewr-navendî vediqetin, ango şiyana ku mezinahiya mijarên xebatkarê serîlêdanê li gorî hatinê biguhezînin. têketin, barkirin, gava ku girêka heyî têk biçe ber bi girêkek nû ve û hwd.

Dema ku em ji nêz ve li vê rewşê mêze bikin, em dibînin ku dema ku hilbijarkek daneyê hildibijêrin, em dîsa û dîsa bi dubendiya POSIX beramberî REST API re rû bi rû ne, LÊ bi giranbûna zêde ya pirsgirêkên POSIX ji ber xwezaya belavbûyî ya hawîrdorên Kubernetes. Gelek rindik,

  • POSIX sohbet e: Semantîka POSIX hewce dike ku her operasyon bi metadata û ravekerên pelan ên ku alîkariya domandina rewşa operasyonê dikin re têkildar be. Ev dibe sedema lêçûnên girîng ên ku nirxek rastîn tune. API-yên hilanînê yên tiştan, nemaze API-ya S3, ji van hewcedariyan xilas dibin, dihêlin ku serîlêdan bişewite û dûv re bangê "jibîr bike". Bersiva pergala hilanînê destnîşan dike ka çalakî serketî bû an na. Ger ew têk neçe, serîlêdan dikare dîsa biceribîne.
  • sînorkirinên torê: Di pergalek belavkirî de, tê vê wateyê ku dibe ku gelek serîlêdan hebin ku hewl didin daneyan li heman medyaya pêvekirî binivîsin. Ji ber vê yekê, ne tenê dê serîlêdan ji bo berfê veguheztina daneyê (ji bo şandina daneyan ji medyayê re) bi hev re pêşbaziyê bikin, lê pergala hilanînê bixwe jî dê ji bo vê berfê bi şandina daneyan li ser dîskên laşî pêşbaziyê bike. Ji ber loquaciousness POSIX, hejmara bangên torê çend caran zêde dibe. Ji hêla din ve, S3 API cûdahiyek zelal di navbera bangên torê de di navbera yên ku ji xerîdar berbi serverê ve têne û yên ku di hundurê serverê de çêdibin peyda dike.
  • Ewlekariyê: Modela ewlehiyê ya POSIX ji bo tevlêbûna çalak a mirovî hatî sêwirandin: rêveber ji bo her bikarhêner an komê astên gihîştina taybetî mîheng dikin. Ev paradîgma zehmet e ku meriv bi cîhanek ewr-navendî re were adaptekirin. Serîlêdanên nûjen bi modelên ewlehiyê yên API-ê ve girêdayî ne, ku mafên gihîştinê wekî komek polîtîka, hesabên karûbar, pêbaweriyên demkî, hwd têne destnîşan kirin.
  • Birêvebirin: Konteynirên dewletî hin serpereştiya rêveberiyê hene. Em li ser hevdengkirina gihîştina paralel a daneyan, dabînkirina hevgirtina daneyê diaxivin, ev hemî hewce dike ku bi baldarî li ser kîjan şêwazên gihîştina daneyê were bikar anîn. Pêdivî ye ku nermalava pêvek were saz kirin, şopandin û mîheng kirin, ne ku hewildana pêşkeftinê ya zêde behs bikin.

Navbera hilanîna daneya konteynerê

Digel ku Navbera Parzûna Konteyner (CSI) di pirbûna qata volume ya Kubernetes de alîkariyek mezin bû, bi qismî wê ji firoşkarên hilanînê yên sêyemîn re peyda kir, di heman demê de bi bêhemdî beşdarî wê baweriyê bû ku nêzîkatiya konteynera dewletî rêbaza pêşniyarkirî ye ji bo tomarkirina daneyan li Kubernetes.

CSI wekî standardek ji bo peydakirina pergalên hilanîna blokên keyfî û pelan ji serîlêdanên mîras re dema ku li Kubernetes dimeşîne hate pêşve xistin. Û, wekî ku vê gotarê destnîşan kir, yekane rewşa ku tê de nêzîkatiyek konteynerê dewletdar (û CSI di forma xweya heyî de) watedar e ev e ku serîlêdan bixwe pergalek mîras e ku tê de ne gengaz e ku piştgirî ji bo API-ya hilanînê ya tiştan zêde bike. .

Girîng e ku meriv fêm bike ku karanîna CSI-yê di forma xweya heyî de, ango dema ku bi sepanên nûjen re dixebitin, cildên çîp dikin, em ê bi qasî heman pirsgirêkên ku di pergalên ku hilanîna daneyan bi şêwaza POSIX-ê hatî organîze kirin de derketine holê.

Nêzîktêdayînek Baştir

Di vê rewşê de, girîng e ku meriv fêm bike ku pir serîlêdan bi xwezayê ne bi taybetî ji bo xebata dewletparêz an bêdewlet têne çêkirin. Ev tevger bi mîmariya pergalê ya giştî û vebijarkên sêwirana taybetî yên hatine çêkirin ve girêdayî ye. Ka em hinekî li ser sepanên dewletî biaxivin.

Di prensîbê de, hemî daneyên serîlêdanê dikarin li çend celebên berfireh werin dabeş kirin:

  • Daneyên têketinê
  • Daneyên demjimêr
  • Daneyên danûstandinê
  • Metadata
  • Wêneyên konteyner
  • Daneyên Blob (tiştek mezin a binary).

Hemî van celebên daneyê li ser platformên hilanînê yên nûjen pir baş têne piştgirî kirin, û gelek platformên xwemalî yên ewr hene ku ji bo radestkirina daneyan di her yek ji van formatên taybetî de hatine vesaz kirin. Mînakî, daneyên danûstendinê û metadata dibe ku di databasek nûjen-xwecihê cloudê de wekî CockroachDB, YugaByte, hwd. Wêneyên konteyner an daneyên blobê dikarin di qeydek dokerê de li ser bingeha MinIO werin hilanîn. Daneyên demjimêr dikare di databasek rêzika demê de wekî InfluxDB, hwd were hilanîn. Em ê li vir di derheqê her celeb daneyê û serîlêdanên wê de hûrgulî neçin, lê ramana gelemperî ev e ku meriv ji hilanîna daneya domdar a ku xwe dispêre lêkirina dîska herêmî dûr bixe.

Nimûneyên hilanîna daneyê li Kubernetes

Digel vê yekê, pir caran bi bandor e ku meriv qatek cachingê ya demkî ya ku ji bo serîlêdanan wekî dikana pelan a demkî kar dike, bikêr e, lê pêdivî ye ku serîlêdan wekî çavkaniya rastiyê bi vê qatê ve girêdayî nemînin.

Depoya serîlêdana dewletî

Digel ku di pir rewşan de bikêr e ku serîlêdanan bê dewlet bimînin, ew serîlêdanên ku ji bo hilanîna daneyan hatine sêwirandin - wek databas, firotgehên tiştan, firotgehên key-nirxê - divê dewletdar bin. Ka em binihêrin ka çima ev serîlêdan li Kubernetes têne bicîh kirin. Ka em MinIO wekî mînakek bigirin, lê prensîbên wekhev li ser pergalên hilanînê yên ewr-xwecihî yên mezin derbas dibin.

Serlêdanên cloud-xwecihî hatine sêwirandin ku ji nermbûna xwerû ya di konteyneran de tam sûd werbigirin. Ev tê wê wateyê ku ew di derheqê hawîrdora ku ew ê tê de werin bicîh kirin de tu texmînan nakin. Mînakî, MinIO mekanîzmayek kodkirina jêbirina hundurîn bikar tîne da ku pergalê bi têra xwe rehetiyek peyda bike da ku karibe bimîne heke nîvê dîskê têk biçin. MinIO di heman demê de yekparebûn û ewlehiya daneyê bi karanîna xwedan haşkirin û şîfrekirina ji aliyê serverê ve rêve dibe.

Ji bo van serîlêdanên ewr-navendî, cildên domdar ên herêmî (PV) wekî hilanîna hilanînê herî hêsan in. PV-ya herêmî şiyana hilanîna daneyên xav peyda dike, dema ku serîlêdanên ku li ser van PV-yan dixebitin serbixwe agahdarî berhev dikin da ku daneyan pîvandin û hewcedariyên daneya mezin birêve bibin.

Ev nêzîkatî ji PV-yên bingehîn ên CSI-ê, ku qatên xwe yên rêveberiya daneyê û zêdebûnê di pergalê de vedihewîne, pir hêsan û bi girîngî berfirehtir e; xal ev e ku ev qat bi gelemperî bi serîlêdanên ku ji bo dewletbûnê hatine çêkirin re nakokî hene.

Tevgerek xurt ber bi veqetandina daneyan ji hesaban

Di vê gotarê de, me behsa wê yekê kir ka çawa serîlêdan ji nû ve têne rêve kirin ku bêyî rewşa hilanînê bixebitin, an, bi gotinek din, hilanîna daneyan ji hesabkirina li ser wê veqetandî ye. Di encamê de, em li çend mînakên rastîn ên vê meylê binêrin.

spark, platformek analîtîka daneyê ya berbiçav, bi kevneşopî dewletparêz e û li ser HDFS-ê hatî bicîh kirin. Lêbelê, her ku Spark diçe cîhanek ewr-navendî, platform her ku diçe bê dewlet bi karanîna `s3a` tê bikar anîn. Spark s3a bikar tîne da ku dewletê veguhezîne pergalên din, dema ku konteynerên Spark bixwe bi tevahî bê dewlet dixebitin. Lîstikvanên din ên pargîdaniya sereke di warê analîtîkên daneyên mezin de, bi taybetî, Vertica, Teradata, Greenplum Ew di heman demê de diçin ku bi veqetandina hilanîna daneyan û hesabên li ser wan re bixebitin.

Nimûneyên weha dikarin li ser platformên din ên analîtîk ên mezin jî werin dîtin, di nav de Presto, Tensorflow to R, Jupyter. Bi barkirina dewletê li pergalên hilanîna cloudê yên dûr, birêvebirin û pîvandina serîlêdana we pir hêsantir dibe. Digel vê yekê, ew veguheztina serîlêdanê ji cûrbecûr jîngehê re hêsantir dike.

Source: www.habr.com

Add a comment