Kuchengeta data muKubernetes cluster

Pane nzira dzinoverengeka dzekugadzirisa kuchengetedza data kune maapplication ari kushanda paKubernetes cluster. Mamwe acho atove ekare, mamwe akaonekwa munguva pfupi yapfuura. Muchikamu chino, tichatarisa pfungwa yezvitatu zvingasarudzwa zvekubatanidza masisitimu ekuchengetedza, kusanganisira ichangoburwa - yekubatanidza kuburikidza neContainer Storage Interface.

Kuchengeta data muKubernetes cluster

Nzira 1: Rondedzera PV mune podhi manifest

Yakajairika kuratidza inotsanangura pod muKubernetes cluster:

Kuchengeta data muKubernetes cluster

Zvikamu zvemanifest zvinotsanangura kuti ivhoriyamu yakabatana kupi uye kwakaiswa pachena neruvara.

chidimbu volumeMounts ratidza mapoinzi egomo (mountPath) - mune iyo dhairekitori mukati memudziyo vhoriyamu yekusingaperi ichaiswa, pamwe chete nezita revhoriyamu.

chidimbu x inonyora mavhoriyamu ese anoshandiswa mupodhi. Taura zita revhoriyamu yega yega, pamwe nerudzi (munyaya yedu: awsElasticBlockStore) uye maparamendi ekubatanidza. Ndeapi maparamita akanyorwa mumanifest zvinoenderana nerudzi rwevhoriyamu.

Iro vhoriyamu imwechete inogona kuiswa panguva imwe chete mune akawanda pod midziyo. Nenzira iyi, maitiro akasiyana ekushandisa anogona kuwana iyo yakafanana data.

Iyi nzira yekubatanidza yakagadzirwa pakutanga, apo Kubernetes yakanga ichiri mudiki, uye nhasi nzira yacho ndeyekare.

Pane matambudziko akawanda kana uchishandisa:

  1. mavhoriyamu ese anofanirwa kugadzirwa nemaoko; Kubernetes haagone kutigadzirira chero chinhu;
  2. maparamendi ekuwana evhoriyamu yega yega akasiyana, uye anofanirwa kutsanangurwa mumaratidziro emapodhi ese anoshandisa vhoriyamu;
  3. kushandura sisitimu yekuchengetera (semuenzaniso, famba kubva kuAWS kuenda kuGoogle Cloud), unofanirwa kushandura marongero uye mhando yemavhoriyamu akaiswa mune zvese zvinoratidzira.

Zvese izvi hazvina kunaka, saka muchokwadi nzira iyi inoshandiswa kubatanidza mamwe akakosha marudzi emavhoriyamu: configMap, chakavanzika, isina chinhuDir, hostPath:

  • configMap uye chakavanzika mavhoriyamu esevhisi anotendera iwe kuti ugadzire vhoriyamu nemafaira kubva Kubernetes inoratidzira mumudziyo.

  • emptyDir ivhoriyamu yenguva pfupi, yakagadzirirwa chete kwehupenyu hwepodhi. Yakanakira kushandisa kuyedza kana kuchengetedza data renguva pfupi. Kana pod yadzimwa, vhoriyamu yeDir isina chinhu inobviswawo uye data rese rinorasika.

  • hostPath - inokutendera iwe kuti uise chero dhairekitori pane yemuno dhisiki yeseva pane iyo application iri kushanda mukati memudziyo nechishandiso, kusanganisira /etc/kubernetes. Ichi chinhu chisina kuchengeteka, saka mitemo yekuchengetedza inowanzorambidza kushandiswa kwemavhoriyamu emhando iyi. Zvikasadaro, application yeanorwisa ichakwanisa kukwidza HTC Kubernetes dhairekitori mukati memudziyo wayo uye kuba zvese zvitupa zvesumbu. Kazhinji, hostPath mavhoriyamu anongotenderwa kushandiswa nesystem application inomhanya mukube-system namespace.

Kuchengetedza masisitimu ayo Kubernetes anoshanda nawo kunze kwebhokisi zvinopihwa muzvinyorwa.

Nzira 2. Kubatanidza kune SC/PVC/PV heartths

Imwe nzira yekubatanidza ndiyo pfungwa yeKuchengeta kirasi, PersistentVolumeClaim, PersistentVolume.

Kirasi yekuchengetedza inochengetedza ma parameter ekubatanidza kune data data system.

PersistentVolumeClaim inotsanangura zvinodiwa pane zvinodiwa neapplication.
PersistentVolume inochengetedza maparameter ekuwana uye vhoriyamu mamiriro.

Izvo zvakakosha zvepfungwa: mune iyo pod manifest vanoratidza huwandu hwemhando PersistentVolumeClaim uye vanoratidza zita rechinhu ichi muclaimName parameter.

Kuchengeta data muKubernetes cluster

Iyo PersistentVolumeClaim manifest inotsanangura zvinodikanwa zvehuwandu hwedata hunodiwa neapplication. Kusanganisira:

  • disk size;
  • nzira yekuwana: ReadWriteOnce or ReadWriteMany;
  • chinongedzo kuKuchengeta kirasi - mune iyo yekuchengetedza data system yatinoda kugadzira vhoriyamu.

Iyo Storage class manifest inochengetedza mhando uye paramita yekubatanidza kune yekuchengetedza system. Iyo cubelet inoda ivo kukwidza vhoriyamu pane node yayo.

PersistentVolume inoratidza inoratidza Kuchengeta kirasi uye maparamita ekuwana yevhoriyamu chaiyo (vhoriyamu ID, nzira, nezvimwewo).

Paunenge uchigadzira PVC, Kubernetes anotarisa kuti isaizi vhoriyamu uye chii Chekuchengetedza kirasi inodiwa, uye inosarudza yemahara PersistentVolume.

Kana maPV akadaro asingawanikwe, Kubernetes anogona kutanga chirongwa chakakosha - Provisioner (zita rayo rinoratidzwa mukirasi yekuchengeta). Ichi chirongwa chinobatana neyekuchengetera sisitimu, inogadzira vhoriyamu yehukuru hunodiwa, inogamuchira identifier uye inogadzira PersistentVolume manifest muKubernetes cluster, iyo yakabatana nePersistentVolumeClaim.

Yese iyi seti yekubvisa inobvumidza iwe kubvisa ruzivo nezve iyo yekuchengetedza sisitimu iyo application iri kushanda nayo kubva padanho rekuratidzira rekushandisa kusvika padanho rekutonga.

Yese ma paramita ekubatanidza kune yekuchengetedza data system ari muKuchengeta kirasi, iyo iyo cluster administrator vane basa. Zvese zvaunoda kuti uite kana uchifamba kubva kuAWS uchienda kuGoogle Cloud kushandura zita reKuchengeta kirasi kuita PVC mukuratidzira kwekushandisa. Persistance Vhoriyamu yekuchengetedza data ichagadzirwa musumbu otomatiki uchishandisa Provisioner chirongwa.

Nzira 3. Container Storage Interface

Yese kodhi inodyidzana neakasiyana ekuchengetedza masisitimu chikamu cheKubernetes musimboti. Kuburitswa kwezvigadziriso zvebug kana kushanda kutsva kwakasungirirwa kune zvitsva zvinoburitswa; iyo kodhi inofanirwa kuchinjirwa kune ese anotsigirwa shanduro dzeKubernetes. Zvese izvi zvakaoma kuchengetedza uye kuwedzera mashandiro matsva.

Kugadzirisa dambudziko iri, vanogadzira kubva kuCloud Foundry, Kubernetes, Mesos uye Docker vakagadzira iyo Container Storage Interface (CSI) - yakapusa yakabatana interface inotsanangura kupindirana kweiyo mudziyo manejimendi system uye akasarudzika mutyairi (CSI Driver) anoshanda neimwe nzira. kuchengetedza system. Yese kodhi yekudyidzana neyekuchengetera masisitimu yakafambiswa kubva kuKubernetes musimboti kuenda kune yakaparadzana system.

Container Storage Interface Documentation.

Kazhinji, CSI Driver ine zvikamu zviviri: Node Plugin uye Controller plugin.

Node Plugin inomhanya pane imwe neimwe node uye ine basa rekukwirisa mavhoriyamu uye kuita mashandiro paari. Iyo Controller plugin inopindirana neyekuchengetedza sisitimu: inogadzira kana kudzima mavhoriyamu, inopa kodzero dzekuwana, nezvimwe.

Parizvino, vatyairi vekare vanoramba vari muKubernetes kernel, asi havachakurudzirwi kushandiswa uye munhu wese anorairwa kuisa CSI Driver zvakanangana nehurongwa hwavachashanda nahwo.

Iyo innovation inogona kutyisa avo vakatojaira kumisikidza kuchengetedza data kuburikidza neClass Storage, asi chokwadi hapana chinotyisa chakaitika. Kune vanogadzira zvirongwa, hapana chinonyatso chinja - vakashanda chete nezita rekuti Storage class, uye vacharamba vachidaro. Kune vatariri, iyo helm chati yekumisikidza yakawedzerwa uye chimiro chezvirongwa zvachinja. Kana kare zvigadziriso zvakapinzwa zvakananga mukirasi yeKuchengeta, zvino ivo vanofanirwa kutanga vaiswa mune helm chati, uyezve mukirasi yekuchengeta. Kana iwe ukatarisa mazviri, hapana chakaipa chakaitika.

Ngatitorei muenzaniso kutarisa mabhenefiti aunogona kuwana nekuchinja kubatanidza maCeph ekuchengetedza masisitimu uchishandisa mutyairi weCSI.

Paunenge uchishanda neCeph, iyo CSI plugin inopa dzimwe sarudzo dzekushanda nemasisitimu ekuchengetedza pane akavakirwa-mukati madhiraivha.

  1. Dynamic disk kusikwa. Kazhinji maRBD disks anoshandiswa chete muRWO modhi, asi CSI yeCeph inoabvumira kushandiswa muRWX modhi. Mapodhi akati wandei pamanodhi akasiyana anogona kukwira imwechete RDB dhisiki pane yavo node uye kushanda navo mukufanana. Kuti uve wakanaka, hazvisi zvese zvinopenya - iyi dhisiki inogona kungobatanidzwa sechivharo chemudziyo, izvo zvinoreva kuti iwe uchafanirwa kugadzirisa iyo application kuti ushande nayo mune yakawanda yekuwana mode.
  2. Kugadzira snapshots. Mune Kubernetes cluster, unogona kugadzira manifest ine chinodiwa kugadzira mufananidzo. Iyo CSI plugin inozviona uye inotora mufananidzo kubva kudhisiki. Zvichienderana nazvo, unogona kuita backup kana kopi yePersistentVolume.
  3. Kuwedzera disk size pakuchengetedza uye PersistentVolume muKubernetes cluster.
  4. Quotas. Iwo madhiraivha eCephFS akavakirwa muKubernetes haatsigire quotas, asi nyowani CSI plugins ine yazvino Ceph Nautilus inogona kugonesa quotas paCephFS zvikamu.
  5. Metrics. Iyo CSI plugin inogona kupa Prometheus akasiyana metrics pamusoro pekuti mavhoriyamu akabatana, ndeapi kutaurirana kuri kuitika, nezvimwe.
  6. Topology vanoziva. Inokutendera kuti utsanangure muzviratidzo kuti sumbu racho rakagovaniswa sei munzvimbo, uye dzivirira kubatanidza sisitimu yekuchengetera iri muAmsterdam kumapodhi ari kushanda muLondon.

Maitiro ekubatanidza Ceph kune Kubernetes cluster kuburikidza neCSI, ona muchikamu chinoshanda cheSlurm manheru chikoro hurukuro. Iwe unogona zvakare kunyoresa ku Ceph vhidhiyo kosi, iyo ichatanga muna Gumiguru 15th.

Munyori wechinyorwa: Sergey Bondarev, anodzidzira dhizaini kuSouthbridge, Certified Kubernetes Administrator, mumwe wevagadziri ve kubespray.

A little Post Scriptum kwete yekushambadzira, asi yekubatsira...

PS Sergey Bondarev anotungamira makosi maviri akasimba: akagadziridzwa Kubernetes Base September 28-30 uye mberi Kubernetes Mega Gumiguru 14–16.

Kuchengeta data muKubernetes cluster

Source: www.habr.com

Voeg