Nfi data pamọ sinu iṣupọ Kubernetes kan

Awọn ọna pupọ lo wa lati tunto ibi ipamọ data fun awọn ohun elo nṣiṣẹ lori iṣupọ Kubernetes kan. Diẹ ninu wọn ti wa ni igba atijọ, awọn miiran farahan laipẹ. Ninu nkan yii, a yoo wo imọran ti awọn aṣayan mẹta fun sisopọ awọn ọna ipamọ, pẹlu ọkan to ṣẹṣẹ julọ - sisopọ nipasẹ Interface Ibi ipamọ Apoti.

Nfi data pamọ sinu iṣupọ Kubernetes kan

Ọna 1: Pato PV ni farahan podu

Afihan aṣoju ti n ṣapejuwe podu kan ninu iṣupọ Kubernetes kan:

Nfi data pamọ sinu iṣupọ Kubernetes kan

Awọn apakan ti ifihan ti o ṣe apejuwe iwọn didun wo ni a ti sopọ ati nibo ni a ṣe afihan ni awọ.

Ninu ori iwe volumeMouns Tọkasi awọn aaye oke (MountPath) - ninu eyiti itọsọna inu inu eiyan naa yoo gbe iwọn didun yẹ, ati orukọ iwọn didun naa.

Ninu ori iwe x ṣe atokọ gbogbo awọn iwọn didun ti a lo ninu podu. Pato orukọ iwọn didun kọọkan, bakanna bi iru (ninu ọran wa: awElasticBlockStore) ati awọn paramita asopọ. Eyi ti paramita ti wa ni akojọ si ni awọn farahan da lori awọn iwọn didun iru.

Iwọn didun kanna ni a le gbe ni nigbakannaa ni awọn apoti podu pupọ. Ni ọna yii, awọn ilana elo oriṣiriṣi le wọle si data kanna.

Ọna asopọ asopọ yii ni a ṣẹda ni ibẹrẹ ibẹrẹ, nigbati Kubernetes kan wa ni ibẹrẹ rẹ, ati loni ọna naa ti pẹ.

Awọn iṣoro pupọ wa nigba lilo rẹ:

  1. Gbogbo awọn ipele gbọdọ ṣẹda pẹlu ọwọ; Kubernetes ko le ṣẹda ohunkohun fun wa;
  2. Awọn aye wiwọle fun iwọn didun kọọkan jẹ alailẹgbẹ, ati pe wọn gbọdọ wa ni pato ninu awọn ifihan ti gbogbo awọn adarọ-ese ti o lo iwọn didun;
  3. lati yi eto ipamọ pada (fun apẹẹrẹ, gbe lati AWS si Google Cloud), o nilo lati yi awọn eto pada ati iru awọn ipele ti a gbe soke ni gbogbo awọn ifihan.

Gbogbo eyi ko ni irọrun pupọ, nitorinaa ni otitọ ọna yii ni a lo lati sopọ diẹ ninu awọn oriṣi pataki ti awọn ipele: configMap, asiri, ṣofoDir, hostPath:

  • configMap ati aṣiri jẹ awọn iwọn iṣẹ ti o gba ọ laaye lati ṣẹda iwọn didun pẹlu awọn faili lati awọn ifihan Kubernetes ninu apo eiyan naa.

  • emptyDir jẹ iwọn didun igba diẹ, ti a ṣẹda nikan fun igbesi aye ti podu naa. Rọrun lati lo fun idanwo tabi titoju data igba diẹ. Nigbati adarọ ese ba ti paarẹ, iwọn didunDir ti ṣofo tun ti paarẹ ati pe gbogbo data ti sọnu.

  • hostPath - ngbanilaaye lati gbe eyikeyi liana sori disiki agbegbe ti olupin lori eyiti ohun elo nṣiṣẹ ninu apo eiyan pẹlu ohun elo, pẹlu /etc/kubernetes. Eyi jẹ ẹya ti ko ni aabo, nitorinaa awọn ilana aabo ni igbagbogbo ṣe idiwọ lilo awọn iwọn didun ti iru yii. Bibẹẹkọ, ohun elo ikọlu yoo ni anfani lati gbe itọsọna HTC Kubernetes sinu apoti rẹ ki o ji gbogbo awọn iwe-ẹri iṣupọ naa. Ni deede, awọn ipele hostPath nikan ni a gba laaye lati lo nipasẹ awọn ohun elo eto ti o ṣiṣẹ ni aaye orukọ kube-system.

Awọn ọna ipamọ ti Kubernetes ṣiṣẹ pẹlu jade kuro ninu apoti ti wa ni fun ni awọn iwe aṣẹ.

Ọna 2. Asopọ si SC / PVC / PV hearths

Ọna asopọ omiiran jẹ imọran ti kilasi Ibi ipamọ, PersistentVolumeClaim, PersistentVolume.

kilasi ipamọ tọju awọn paramita asopọ si eto ipamọ data.

PersistentVolumeClaim ṣe apejuwe awọn ibeere fun ohun ti ohun elo nilo.
Iwọn didun itẹramọṣẹ tọjú wiwọle sile ati iwọn didun ipo.

Koko-ọrọ ti imọran: ninu iṣafihan podu wọn tọka iwọn didun ti iru PersistentVolumeClaim ati tọka orukọ nkan yii ni paramita NameName.

Nfi data pamọ sinu iṣupọ Kubernetes kan

PersistentVolumeClaim farahan ṣe apejuwe awọn ibeere fun iwọn didun data ti ohun elo naa nilo. Pẹlu:

  • iwọn disk;
  • wiwọle ọna: ReadWriteOnce tabi ReadWriteMany;
  • ọna asopọ si Ibi ipamọ kilasi - ninu eyiti eto ipamọ data ti a fẹ ṣẹda iwọn didun.

Kilasi Ibi ipamọ ṣafihan iru ati awọn ayeraye ti asopọ si eto ibi ipamọ naa. Cubelet nilo wọn lati gbe iwọn didun sori ipade rẹ.

Awọn ifihan iwọn didun Persistent tọkasi kilasi Ibi ipamọ ati awọn ayeraye wiwọle fun iwọn didun kan pato (ID iwọn didun, ọna, ati bẹbẹ lọ).

Nigbati o ba ṣẹda PVC kan, Kubernetes wo kini iwọn iwọn ati kini kilasi Ibi ipamọ ti o nilo, ati yan PersistentVolume ọfẹ kan.

Ti iru awọn PV ko ba wa, Kubernetes le ṣe ifilọlẹ eto pataki kan - Olupese (orukọ rẹ ni itọkasi ni kilasi Ibi ipamọ). Eto yii ṣopọ si eto ipamọ, ṣẹda iwọn didun ti iwọn ti a beere, gba idamo kan ati ṣẹda ifihan PersistentVolume ninu iṣupọ Kubernetes, eyiti o ni nkan ṣe pẹlu PersistentVolumeClaim.

Gbogbo ṣeto ti awọn abstractions gba ọ laaye lati yọ alaye kuro nipa iru eto ibi ipamọ ti ohun elo n ṣiṣẹ pẹlu lati ipele ifihan ohun elo si ipele iṣakoso.

Gbogbo awọn ayeraye fun sisopọ si eto ibi ipamọ data wa ni kilasi Ibi ipamọ, eyiti awọn alabojuto iṣupọ jẹ iduro fun. Gbogbo ohun ti o nilo lati ṣe nigbati o ba nlọ lati AWS si Google Cloud ni lati yi orukọ kilasi Ibi ipamọ pada si PVC ninu awọn ifihan ohun elo. Iwọn didun Iduro fun ibi ipamọ data yoo ṣẹda ninu iṣupọ laifọwọyi nipa lilo eto Olupese.

Ọna 3: Interface Ibi ipamọ Apoti

Gbogbo koodu ti o nlo pẹlu ọpọlọpọ awọn ọna ipamọ jẹ apakan ti Kubernetes mojuto. Itusilẹ awọn atunṣe kokoro tabi iṣẹ tuntun ti so si awọn idasilẹ tuntun; koodu naa gbọdọ yipada fun gbogbo awọn ẹya atilẹyin ti Kubernetes. Gbogbo eyi nira lati ṣetọju ati ṣafikun iṣẹ ṣiṣe tuntun.

Lati yanju iṣoro naa, awọn olupilẹṣẹ lati Cloud Foundry, Kubernetes, Mesos ati Docker ṣẹda Interface Ibi ipamọ Apoti (CSI) - wiwo iṣọkan ti o rọrun ti o ṣe apejuwe ibaraenisepo ti eto iṣakoso eiyan ati awakọ pataki kan (Iwakọ CSI) ti o ṣiṣẹ pẹlu kan pato ipamọ eto. Gbogbo koodu fun ibaraenisepo pẹlu awọn ọna ṣiṣe ipamọ ti gbe lati inu Kubernetes si eto lọtọ.

Eiyan Ibi Interface Documentation.

Ni deede, Awakọ CSI ni awọn paati meji: Ohun itanna Node ati Ohun itanna Adarí.

Ohun itanna Node nṣiṣẹ lori ipade kọọkan ati pe o jẹ iduro fun gbigbe awọn iwọn didun ati ṣiṣe awọn iṣẹ lori wọn. Ohun itanna Adarí ṣe ajọṣepọ pẹlu eto ibi ipamọ: ṣẹda tabi paarẹ awọn iwọn didun, fi awọn ẹtọ wiwọle si, ati bẹbẹ lọ.

Ni bayi, awọn awakọ atijọ wa ninu ekuro Kubernetes, ṣugbọn wọn ko ṣe iṣeduro lati lo ati pe a gba gbogbo eniyan niyanju lati fi awakọ CSI sori ẹrọ pataki fun eto ti wọn yoo ṣiṣẹ.

Ipilẹṣẹ tuntun le dẹruba awọn ti o ti mọ tẹlẹ lati ṣeto ibi ipamọ data nipasẹ kilasi Ibi ipamọ, ṣugbọn ni otitọ ko si ohun ẹru ti o ṣẹlẹ. Fun awọn pirogirama, ko si ohun ti o yipada gaan - wọn ti ṣiṣẹ nikan pẹlu kilasi Ibi ipamọ, ati pe yoo tẹsiwaju lati ṣe bẹ. Fun awọn alakoso, fifi sori iwe chart Helm ti ṣafikun ati pe eto ti awọn eto ti yipada. Ti tẹlẹ awọn eto ti wa ni titẹ taara sinu kilasi Ibi ipamọ, ni bayi wọn gbọdọ kọkọ ṣeto ni iwe-ipamọ Helm, ati lẹhinna ni kilasi Ibi ipamọ. Ti o ba wo inu rẹ, ko si ohun buburu ti o ṣẹlẹ.

Jẹ ki a ṣe apẹẹrẹ lati wo awọn anfani ti o le gba nipa yiyipada si sisopọ awọn ọna ipamọ Ceph ni lilo awakọ CSI.

Nigbati o ba n ṣiṣẹ pẹlu Ceph, ohun itanna CSI n pese awọn aṣayan diẹ sii fun ṣiṣẹ pẹlu awọn ọna ipamọ ju awọn awakọ ti a ṣe sinu.

  1. Ìmúdàgba disk ẹda. Ni deede awọn disiki RBD ni a lo ni ipo RWO nikan, ṣugbọn CSI fun Ceph gba wọn laaye lati lo ni ipo RWX. Orisirisi awọn podu lori awọn apa oriṣiriṣi le gbe disiki RDB kanna sori awọn apa wọn ki o ṣiṣẹ pẹlu wọn ni afiwe. Lati ṣe otitọ, kii ṣe ohun gbogbo ni imọlẹ tobẹẹ - disiki yii le sopọ nikan bi ẹrọ idina, eyiti o tumọ si pe iwọ yoo ni lati mu ohun elo mu lati ṣiṣẹ pẹlu rẹ ni ipo iwọle pupọ.
  2. Ṣiṣẹda snapshots. Ninu iṣupọ Kubernetes, o le ṣẹda ifihan kan pẹlu ibeere lati ṣẹda aworan kan. Ohun itanna CSI yoo rii ati ya aworan kan lati disiki naa. Da lori rẹ, o le ṣe boya afẹyinti tabi ẹda kan ti PersistentVolume.
  3. Npo iwọn disk lori ibi ipamọ ati PersistentVolume ninu iṣupọ Kubernetes.
  4. Awọn ipin. Awọn awakọ CephFS ti a ṣe sinu Kubernetes ko ṣe atilẹyin awọn ipin, ṣugbọn awọn afikun CSI tuntun pẹlu Ceph Nautilus tuntun le mu awọn ipin lori awọn ipin CephFS ṣiṣẹ.
  5. Awọn iwọn. Ohun itanna CSI le pese Prometheus pẹlu ọpọlọpọ awọn metiriki nipa eyiti awọn iwọn didun ti sopọ, kini awọn ibaraẹnisọrọ n waye, ati bẹbẹ lọ.
  6. Topology mọ. Gba ọ laaye lati ṣalaye ni awọn ifihan bi iṣupọ ti pin kaakiri ni agbegbe, ati yago fun sisopọ eto ipamọ ti o wa ni Amsterdam si awọn adarọ-ese ti nṣiṣẹ ni Ilu Lọndọnu.

Bii o ṣe le sopọ Ceph si iṣupọ Kubernetes nipasẹ CSI, wo ni apakan ti o wulo ti ikẹkọ ile-iwe aṣalẹ Slurm. O tun le ṣe alabapin si Ceph fidio dajudaju, eyi ti yoo ṣe ifilọlẹ ni Oṣu Kẹwa ọjọ 15th.

Onkọwe ti nkan naa: Sergey Bondarev, ayaworan adaṣe ni Southbridge, Alakoso Kubernetes ti a fọwọsi, ọkan ninu awọn olupilẹṣẹ ti kubespray.

Iwe-iwe ifiweranṣẹ kekere kan kii ṣe fun ipolowo, ṣugbọn fun anfani…

P.S. Sergey Bondarev ṣe itọsọna awọn ikẹkọ aladanla meji: imudojuiwọn Kubernetes Mimọ Oṣu Kẹsan 28-30 ati ilọsiwaju Kubernetes Mega Oṣu Kẹwa 14–16.

Nfi data pamọ sinu iṣupọ Kubernetes kan

orisun: www.habr.com

Fi ọrọìwòye kun