Awọn ilana ipamọ data ni Kubernetes

Awọn ilana ipamọ data ni Kubernetes
Hey Habr!

A leti o pe a ti tu miran lalailopinpin awon ati ki o wulo iwe kan nipa awọn ilana Kubernetes. Gbogbo rẹ bẹrẹ pẹlu "Awọn apẹrẹ" Brendan Burns, ati, nipasẹ ọna, a ni iṣẹ ni apakan yii ilswo. Loni a pe ọ lati ka nkan kan lati bulọọgi MiniIO ti o ṣe alaye ni ṣoki awọn aṣa ati awọn pato ti awọn ilana ibi ipamọ data ni Kubernetes.

Kubernetes ti yipada ni ipilẹṣẹ idagbasoke ohun elo ibile ati awọn ilana imuṣiṣẹ. Bayi ẹgbẹ kan le dagbasoke, ṣe idanwo, ati mu ohun elo ṣiṣẹ ni ọrọ ti awọn ọjọ-lakakiri awọn agbegbe pupọ, gbogbo rẹ laarin awọn iṣupọ Kubernetes. Iru iṣẹ bẹ pẹlu awọn iran iṣaaju ti imọ-ẹrọ nigbagbogbo gba awọn ọsẹ, ti kii ba ṣe awọn oṣu.

Isare yii ṣee ṣe nipasẹ abstraction ti a pese nipasẹ Kubernetes - iyẹn ni, nitori Kubernetes funrararẹ ṣe ajọṣepọ pẹlu awọn alaye ipele kekere ti awọn ẹrọ ti ara tabi foju, gbigba awọn olumulo laaye lati sọ ero isise ti o fẹ, iye iranti ti o fẹ, ati nọmba eiyan. instances, laarin awọn miiran sile. Pẹlu agbegbe nla ti o ṣe atilẹyin Kubernetes ati isọdọmọ rẹ nigbagbogbo npọ si, Kubernetes jẹ oludari laarin gbogbo awọn iru ẹrọ orchestration eiyan nipasẹ ala jakejado.

Bi lilo Kubernetes ṣe ndagba, bẹ ni iporuru nipa awọn ilana ipamọ rẹ..

Pẹlu gbogbo eniyan ti njijadu fun nkan kan ti Kubernetes paii (ie, ibi ipamọ data), nigbati o ba wa ni sisọ nipa ibi ipamọ data, ifihan agbara naa ti rì ni ariwo pupọ.
Kubernetes ṣe apẹrẹ awoṣe ode oni fun idagbasoke ohun elo, imuṣiṣẹ, ati iṣakoso. Awoṣe ode oni ṣe ipinnu ibi ipamọ data lati iṣiro. Lati ni oye iyapa ni kikun ti Kubernetes, o tun nilo lati loye kini awọn ohun elo ipinlẹ ati ti ko ni ipinlẹ, ati bii ibi ipamọ data ṣe baamu si iyẹn. Eyi ni ibiti ọna API REST ti S3 lo ni awọn anfani ti o han gbangba lori ọna POSIX/CSI ti awọn ojutu miiran.

Ninu nkan yii, a yoo sọrọ nipa awọn ilana ipamọ data ni Kubernetes ati ni pataki fọwọkan lori ariyanjiyan laarin awọn ohun elo ipinlẹ ati ti orilẹ-ede lati ni oye daradara kini iyatọ laarin wọn ati idi ti o ṣe pataki. Awọn iyokù ọrọ yoo wo awọn ohun elo ati awọn ilana ipamọ data wọn ni imọlẹ awọn iṣẹ ti o dara julọ fun ṣiṣẹ pẹlu awọn apoti ati Kubernetes.

Awọn apoti ti ko ni orilẹ-ede

Awọn apoti jẹ nipa iseda iwuwo fẹẹrẹ ati ephemeral. Wọn le ni irọrun duro, yọ kuro, tabi ran lọ si ipade miiran - gbogbo wọn ni iṣẹju-aaya. Ninu eto orchestration eiyan nla kan, iru awọn iṣẹ ṣiṣe n ṣẹlẹ ni gbogbo igba, ati pe awọn olumulo ko paapaa ṣe akiyesi iru awọn ayipada. Sibẹsibẹ, awọn gbigbe ṣee ṣe nikan ti eiyan ko ba ni awọn igbẹkẹle eyikeyi lori ipade ti o wa. Iru awọn apoti ni a sọ pe o ṣiṣẹ laini orilẹ-ede.

Stateful Awọn apoti

Ti eiyan kan ba tọju data sori awọn ẹrọ ti a somọ ni agbegbe (tabi lori ẹrọ bulọọki), lẹhinna ile-itaja data ti o wa ni yoo ni lati gbe si ipade tuntun, pẹlu eiyan funrararẹ, ni iṣẹlẹ ti ikuna. Eyi ṣe pataki nitori bibẹẹkọ ohun elo ti n ṣiṣẹ ninu apoti kii yoo ni anfani lati ṣiṣẹ daradara nitori o nilo lati wọle si data ti o fipamọ sori media agbegbe. Iru awọn apoti ni a sọ pe o ṣiṣẹ ipinle.

Lati oju wiwo imọ-ẹrọ mimọ, awọn apoti ipinlẹ tun le gbe lọ si awọn apa miiran. Eyi jẹ aṣeyọri deede ni lilo awọn ọna ṣiṣe faili ti o pin tabi dina ibi ipamọ nẹtiwọọki ti a so mọ gbogbo awọn apa ti n ṣiṣẹ awọn apoti. Ni ọna yii, awọn apoti wọle si awọn iwọn didun fun ibi ipamọ data itẹramọṣẹ, ati pe alaye ti wa ni ipamọ lori awọn disiki ti o wa jakejado nẹtiwọọki naa. Emi yoo pe ọna yii "stateful eiyan ona", ati ninu awọn iyokù ti awọn article Emi yoo pe o fun awọn nitori ti uniformity.

Awọn ilana ipamọ data ni Kubernetes

Ni ọna eiyan ti o jẹ aṣoju, gbogbo awọn adarọ-ese ohun elo ni a so mọ eto faili pinpin kan-iru ibi ipamọ pinpin nibiti gbogbo data ohun elo n gbe. Lakoko ti diẹ ninu awọn iyatọ ṣee ṣe, eyi jẹ ọna ti o ga julọ.

Bayi jẹ ki a wo idi ti ọna eiyan ti ipinlẹ jẹ apẹrẹ atako ni agbaye-centric awọsanma.

Awọsanma-abinibi ohun elo apẹrẹ

Ni aṣa, awọn ohun elo ti a lo awọn apoti isura infomesonu fun ibi ipamọ iṣeto ti alaye ati awọn disiki agbegbe tabi awọn ọna ṣiṣe faili ti a pin kaakiri nibiti gbogbo data ti a ko ṣeto tabi paapaa ti a da silẹ. Bi awọn ipele ti data ti a ko ṣeto ti n dagba, awọn olupilẹṣẹ ṣe akiyesi pe POSIX jẹ ibaraẹnisọrọ pupọ, ni oke nla, ati nikẹhin ṣe idiwọ iṣẹ ṣiṣe ohun elo nigba gbigbe si awọn iwọn nla nitootọ.

Eyi ni pataki ṣe alabapin si ifarahan ti boṣewa tuntun fun ibi ipamọ data, iyẹn ni, ibi ipamọ ti o da lori awọsanma, ṣiṣẹ ni akọkọ ti o da lori REST API ati gbigba ohun elo laaye lati itọju ẹru ti ibi ipamọ data agbegbe kan. Ni ọran yii, ohun elo naa ni imunadoko si ipo aini ipinlẹ (niwọn igba ti ipinlẹ wa ni ibi ipamọ latọna jijin). Awọn ohun elo ode oni ti kọ lati ibere pẹlu ifosiwewe yii ni lokan. Gẹgẹbi ofin, eyikeyi ohun elo ode oni ti o ṣe ilana data ti iru kan tabi omiiran (awọn akọọlẹ, metadata, blobs, bbl) jẹ itumọ ni ibamu si apẹrẹ ti o da lori awọsanma, nibiti a ti gbe ipinlẹ naa si eto sọfitiwia pataki ni iyasọtọ fun ibi ipamọ rẹ.

Ọna eiyan ti ipinlẹ fi agbara mu gbogbo paragile yii pada ni deede ibiti o ti bẹrẹ!

Nipa lilo awọn atọkun POSIX lati ṣafipamọ data, awọn ohun elo ṣiṣẹ bi ẹnipe wọn jẹ ipinlẹ, ati nitori eyi, wọn lọ kuro ni awọn ilana pataki julọ ti apẹrẹ aarin-awọsanma, iyẹn ni, agbara lati yatọ iwọn awọn okun oṣiṣẹ ohun elo da lori ti nwọle. fifuye, gbe si ipade titun kan ni kete ti ipade ti o wa lọwọlọwọ ba kuna, ati bẹbẹ lọ.

Ti o ba ṣe akiyesi ipo yii, a rii pe nigba ti o yan ibi ipamọ data kan, a tun dojuko pẹlu POSIX vs REST API dilemma, SUGBON pẹlu afikun afikun ti awọn iṣoro POSIX nitori iyatọ ti a pin ti awọn agbegbe Kubernetes. Gegebi bi,

  • POSIX jẹ iwiregbe: Itumọ POSIX nilo pe iṣẹ kọọkan ni nkan ṣe pẹlu metadata ati awọn apejuwe faili ti o ṣe iranlọwọ lati ṣetọju ipo iṣẹ naa. Eyi ṣe abajade awọn idiyele pataki ti ko ni iye gidi. Awọn API ibi ipamọ ohun, ni pataki S3 API, yọkuro awọn ibeere wọnyi, gbigba ohun elo lati ina ati lẹhinna “gbagbe” nipa ipe naa. Idahun eto ipamọ tọkasi boya iṣe naa ṣaṣeyọri tabi rara. Ti o ba kuna, ohun elo le gbiyanju lẹẹkansi.
  • Awọn ihamọ nẹtiwọki: Ninu eto pinpin, o tumọ si pe ọpọlọpọ awọn ohun elo le wa ti o ngbiyanju lati kọ data si media somọ kanna. Nitorinaa, kii ṣe awọn ohun elo nikan yoo dije pẹlu ara wọn fun bandiwidi gbigbe data (lati firanṣẹ data si media), ṣugbọn eto ipamọ funrararẹ yoo dije fun bandiwidi yii nipasẹ fifiranṣẹ data kọja awọn disiki ti ara. Nitori ipo agbegbe ti POSIX, nọmba awọn ipe nẹtiwọọki pọ si ni ọpọlọpọ igba. Ni apa keji, S3 API n pese iyatọ laarin awọn ipe nẹtiwọki laarin awọn ti o wa lati ọdọ onibara si olupin ati awọn ti o waye laarin olupin naa.
  • Aabo: Awoṣe aabo POSIX jẹ apẹrẹ fun ikopa eniyan ti nṣiṣe lọwọ: awọn alakoso tunto awọn ipele wiwọle pato fun olumulo kọọkan tabi ẹgbẹ. Ilana yii nira lati ṣe deede si agbaye-centric awọsanma. Awọn ohun elo ode oni da lori awọn awoṣe aabo ti o da lori API, nibiti awọn ẹtọ iwọle ti ṣe asọye bi eto imulo, awọn akọọlẹ iṣẹ, awọn iwe-ẹri igba diẹ, ati bẹbẹ lọ.
  • Iṣakoso: Stateful awọn apoti ni diẹ ninu awọn isakoso lori. A n sọrọ nipa mimuuṣiṣẹpọ iwọle afiwe si data, ni idaniloju aitasera data, gbogbo eyi nilo akiyesi ṣọra ti iru awọn ilana iwọle data lati lo. Afikun sọfitiwia gbọdọ wa ni fi sori ẹrọ, abojuto, ati tunto, kii ṣe mẹnuba igbiyanju idagbasoke afikun.

Eiyan Data Ibi Interface

Lakoko ti Interface Ibi ipamọ Apoti (CSI) ti jẹ iranlọwọ nla pẹlu ilọsiwaju ti Layer iwọn didun Kubernetes, ti o jade ni apakan si awọn olutaja ibi ipamọ ẹni-kẹta, o tun ti ṣe alabapin lairotẹlẹ si igbagbọ pe ọna eiyan ti ipinlẹ jẹ ọna ti a ṣeduro fun titoju data ni Kubernetes.

CSI ti ni idagbasoke bi boṣewa fun ipese bulọọki lainidii ati awọn eto ibi ipamọ faili si awọn ohun elo ti ogún nigbati o nṣiṣẹ lori Kubernetes. Ati pe, gẹgẹbi nkan yii ti fihan, ipo kanṣoṣo ninu eyiti ọna eiyan ti ipinlẹ (ati CSI ni fọọmu lọwọlọwọ rẹ) jẹ oye ni nigbati ohun elo funrararẹ jẹ eto ohun-ini ninu eyiti ko ṣee ṣe lati ṣafikun atilẹyin fun ibi ipamọ ohun API. .

O ṣe pataki lati ni oye pe lilo CSI ni fọọmu lọwọlọwọ rẹ, iyẹn ni, awọn ipele iṣagbesori nigbati o n ṣiṣẹ pẹlu awọn ohun elo ode oni, a yoo ba pade awọn iṣoro kanna ti o dide ni awọn eto nibiti a ti ṣeto ibi ipamọ data ni ara POSIX.

Ọna ti o dara julọ

Ni idi eyi, o ṣe pataki lati ni oye pe ọpọlọpọ awọn ohun elo ko ni apẹrẹ ti ara ẹni pataki fun iṣẹ-ipinlẹ tabi ti orilẹ-ede. Iwa yii da lori faaji eto gbogbogbo ati awọn yiyan apẹrẹ kan pato ti a ṣe. Jẹ ki a sọrọ diẹ nipa awọn ohun elo ipinlẹ.

Ni ipilẹ, gbogbo data ohun elo le pin si awọn oriṣi gbooro pupọ:

  • Wọle data
  • Datatamp akoko
  • Data idunadura
  • Metadata
  • Awọn aworan apoti
  • Blob (ohun nla alakomeji) data

Gbogbo awọn iru data wọnyi ni atilẹyin daradara lori awọn iru ẹrọ ibi ipamọ ode oni, ati pe ọpọlọpọ awọn iru ẹrọ abinibi-awọsanma wa ti a ṣe deede lati fi data ranṣẹ ni ọkọọkan awọn ọna kika pato wọnyi. Fun apẹẹrẹ, data idunadura ati metadata le gbe inu aaye data abinibi awọsanma ode oni gẹgẹbi CockroachDB, YugaByte, ati bẹbẹ lọ. Awọn aworan apoti tabi data blob le wa ni ipamọ sinu iforukọsilẹ docker ti o da lori MiniIO. Awọn data Timestamp le wa ni ipamọ sinu aaye data jara akoko gẹgẹbi InfluxDB, ati bẹbẹ lọ. A kii yoo lọ sinu awọn alaye nipa iru data kọọkan ati awọn ohun elo rẹ nibi, ṣugbọn imọran gbogbogbo ni lati yago fun ibi ipamọ data itẹramọṣẹ ti o da lori iṣagbesori disk agbegbe.

Awọn ilana ipamọ data ni Kubernetes

Ni afikun, o munadoko nigbagbogbo lati pese Layer caching fun igba diẹ ti o ṣiṣẹ bi ibi-itaja faili igba diẹ fun awọn ohun elo, ṣugbọn awọn ohun elo ko yẹ ki o dale lori ipele yii bi orisun otitọ.

Ibi ipamọ ohun elo ipinlẹ

Lakoko ti o jẹ pe ni ọpọlọpọ awọn ọran o wulo lati jẹ ki awọn ohun elo jẹ alaini orilẹ-ede, awọn ohun elo wọnyẹn ti a ṣe apẹrẹ lati fi data pamọ - gẹgẹbi awọn apoti isura data, awọn ile itaja ohun, awọn ile itaja iye-bọtini - gbọdọ jẹ alaye. Jẹ ki a wo idi ti a fi gbe awọn ohun elo wọnyi sori Kubernetes. Jẹ ki a mu MinIO gẹgẹbi apẹẹrẹ, ṣugbọn awọn ilana ti o jọra kan si eyikeyi eto ibi ipamọ awọsanma-ilu abinibi miiran.

Awọn ohun elo abinibi awọsanma jẹ apẹrẹ lati ni anfani ni kikun ti irọrun ti o wa ninu awọn apoti. Eyi tumọ si pe wọn ko ṣe awọn arosinu nipa agbegbe ti wọn yoo gbe lọ. Fun apẹẹrẹ, MinIO nlo ẹrọ ifaminsi erasure inu lati pese eto naa pẹlu isọdọtun to lati wa ni iṣẹ paapaa ti idaji awọn disiki ba kuna. MiniIO tun ṣakoso iduroṣinṣin data ati aabo nipa lilo hashing-ẹgbẹ olupin ati fifi ẹnọ kọ nkan.

Fun iru awọn ohun elo-centric awọsanma, awọn iwọn itẹramọṣẹ agbegbe (PVs) jẹ irọrun julọ bi ibi ipamọ afẹyinti. PV agbegbe n pese agbara lati tọju data aise, lakoko ti awọn ohun elo nṣiṣẹ lori oke ti awọn PV wọnyi ni ominira gba alaye lati ṣe iwọn data ati ṣakoso awọn ibeere data ti ndagba.

Ọna yii rọrun pupọ ati ni pataki diẹ sii ju awọn PV ti o da lori CSI, eyiti o ṣafihan awọn ipele ti ara wọn ti iṣakoso data ati apọju sinu eto naa; ojuami ni pe awọn ipele wọnyi maa n koju pẹlu awọn ohun elo ti a ṣe lati jẹ ipinle.

Iṣipopada ti o lagbara si sisọ data lati awọn iṣiro

Ninu nkan yii, a ti sọrọ nipa bii awọn ohun elo ṣe tun ṣe atunto lati ṣiṣẹ laisi fifipamọ ipo, tabi, ni awọn ọrọ miiran, titoju data ti pin kuro lati iširo lori rẹ. Ni ipari, jẹ ki a wo diẹ ninu awọn apẹẹrẹ gidi ti aṣa yii.

Spark, Syeed atupale data olokiki kan, ti jẹ aṣa ni aṣa ati ransogun lori HDFS. Bibẹẹkọ, bi Spark ti n lọ sinu agbaye-centric awọsanma, pẹpẹ ti n pọ si ni lilo laini orilẹ-ede ni lilo `s3a`. Spark nlo s3a lati gbe ipinle lọ si awọn ọna ṣiṣe miiran, lakoko ti awọn apoti Spark funrara wọn ṣiṣẹ patapata laisi ipinlẹ. Awọn oṣere ile-iṣẹ pataki miiran ni aaye ti awọn atupale data nla, ni pataki, Vertica, Teradata, Greenplum Wọn tun n gbe lati ṣiṣẹ pẹlu iyapa ti ipamọ data ati awọn iṣiro lori wọn.

Awọn ilana ti o jọra tun le rii lori awọn iru ẹrọ itupalẹ nla miiran, pẹlu Presto, Tensorflow si R, Jupyter. Nipa gbigbe ipo si awọn eto ibi ipamọ awọsanma latọna jijin, o rọrun pupọ lati ṣakoso ati iwọn ohun elo rẹ. Ni afikun, o ṣe irọrun gbigbe ohun elo si ọpọlọpọ awọn agbegbe.

orisun: www.habr.com

Fi ọrọìwòye kun