Ajiye bayanai a cikin gungu na Kubernetes

Akwai hanyoyi da yawa don saita ma'ajiyar bayanai don aikace-aikacen da ke gudana akan gungu na Kubernetes. Wasu daga cikinsu sun riga sun tsufa, wasu sun bayyana kwanan nan. A cikin wannan labarin, za mu dubi manufar zaɓuɓɓuka uku don haɗa tsarin ajiya, ciki har da na baya-bayan nan - haɗi ta hanyar Interface Storage Container.

Ajiye bayanai a cikin gungu na Kubernetes

Hanyar 1: Ƙayyade PV a cikin bayanin kwafsa

Bayyanuwa na yau da kullun da ke kwatanta kwafsa a cikin gungu na Kubernetes:

Ajiye bayanai a cikin gungu na Kubernetes

Sassan bayyanuwa waɗanda ke bayyana wane ƙarar da aka haɗa da kuma inda aka haskaka a launi.

sashe VolumeMouns nuna wuraren tsaunuka (MountPath) - a cikin wanne directory a cikin akwati za a saka ƙarar dindindin, da kuma sunan ƙarar.

sashe x yana lissafin duk kundin da aka yi amfani da su a cikin kwasfa. Ƙayyade sunan kowane ƙara, da nau'in (a cikin yanayin mu: awsElasticBlockStore) da sigogin haɗi. Waɗanne sigogin da aka jera a cikin bayyanuwa sun dogara da nau'in ƙara.

Za'a iya saka ƙarar guda ɗaya a lokaci guda a cikin kwantena masu yawa. Ta wannan hanyar, hanyoyin aikace-aikacen daban-daban na iya samun damar bayanai iri ɗaya.

An ƙirƙira wannan hanyar haɗin gwiwa a farkon farkon, lokacin da Kubernetes ke cikin ƙuruciya, kuma a yau hanyar ta ƙare.

Akwai matsaloli da yawa yayin amfani da shi:

  1. dole ne a ƙirƙira duk kundin da hannu; Kubernetes ba zai iya ƙirƙirar mana komai ba;
  2. sigogin samun damar kowane ƙarar na musamman ne, kuma dole ne a ƙayyade su a cikin bayanan duk kwas ɗin da ke amfani da ƙarar;
  3. don canza tsarin ajiya (misali, matsawa daga AWS zuwa Google Cloud), kuna buƙatar canza saituna da nau'in juzu'i da aka ɗora a cikin duk bayyanar.

Duk wannan bai dace ba, don haka a zahiri ana amfani da wannan hanyar don haɗa wasu nau'ikan juzu'i na musamman: configMap, secret, emptyDir, hostPath:

  • configMap da asiri su ne kundin sabis waɗanda ke ba ka damar ƙirƙirar ƙarar tare da fayiloli daga Kubernetes bayyana a cikin akwati.

  • emptyDir ƙaramin ɗan lokaci ne, wanda aka ƙirƙira don rayuwar kwafsa kawai. Mai dacewa don amfani don gwaji ko adana bayanan wucin gadi. Lokacin da aka share kwasfa, ana share ƙarar emptyDir kuma duk bayanai sun ɓace.

  • hostPath - yana ba ku damar hawa kowane directory akan faifan gida na uwar garken wanda aikace-aikacen ke gudana a cikin akwati tare da aikace-aikacen, gami da /etc/kubernetes. Wannan siffa ce mara aminci, don haka manufofin tsaro yawanci suna hana amfani da kundin nau'in. In ba haka ba, aikace-aikacen mai kai hari zai iya hawa kundin adireshi na HTC Kubernetes a cikin kwandon sa kuma ya sace duk takaddun takaddun tari. Yawanci, kundin hostPath ana ba da izinin amfani da shi ta aikace-aikacen tsarin da ke gudana a cikin tsarin sunan kube-system.

Tsarin ajiya wanda Kubernetes ke aiki tare da su daga cikin akwatin an bayar a cikin takardun.

Hanyar 2. Haɗi zuwa SC/PVC/PV hearths

Wata hanyar haɗi ita ce manufar ajin Adana, PersistentVolumeClaim, PersistentVolume.

Ajin ajiya yana adana sigogin haɗin kai zuwa tsarin ajiyar bayanai.

Dagewar VolumeClaim ya bayyana buƙatun abin da aikace-aikacen ke buƙata.
Juyin Juya yana adana sigogin samun dama da matsayin ƙara.

Mahimman ra'ayin: a cikin fassarori suna nuna ƙarar nau'in PersistentVolumeClaim kuma suna nuna sunan wannan mahaɗan a cikin sigar suna da'awar.

Ajiye bayanai a cikin gungu na Kubernetes

Bayanin PersistentVolumeClaim yana bayyana buƙatun girman bayanan da aikace-aikacen ke buƙata. Ciki har da:

  • girman diski;
  • Hanyar samun damar: ReadWriteOnce ko ReadWriteMany;
  • hanyar haɗi zuwa ajin Adana - a cikin wane tsarin ajiyar bayanai muke son ƙirƙirar ƙarar.

Bayyanar aji na Ma'aji yana adana nau'i da sigogin haɗin kai zuwa tsarin ajiya. Cubelet yana buƙatar su don ɗaga ƙarar a kullin sa.

Mahimman ƙididdiga na Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙwalwar Ƙaƙƙarfan Ƙaƙwalwa)

Lokacin ƙirƙirar PVC, Kubernetes yana duba girman girman girman da abin da ake buƙata ajin Ajiye, kuma ya zaɓi PersistentVolume kyauta.

Idan irin waɗannan PVs ba su samuwa, Kubernetes na iya ƙaddamar da wani shiri na musamman - Mai ba da kyauta (sunansa yana nuna a cikin ajiyar ajiya). Wannan shirin yana haɗawa da tsarin ajiya, yana ƙirƙirar ƙarar girman da ake buƙata, karɓar mai ganowa kuma ya haifar da PersistentVolume bayyananne a cikin gungu na Kubernetes, wanda ke da alaƙa da PersistentVolumeClaim.

Duk wannan saitin abstractions yana ba ku damar cire bayanai game da wane tsarin ajiya aikace-aikacen ke aiki da su daga matakin bayyanar aikace-aikacen zuwa matakin gudanarwa.

Duk sigogi don haɗawa da tsarin ajiyar bayanai suna cikin ajin Adana, wanda masu kula da gungu ke da alhakinsa. Duk abin da kuke buƙatar yi lokacin ƙaura daga AWS zuwa Google Cloud shine canza sunan ajin Adana zuwa PVC a cikin aikace-aikacen. Za a ƙirƙiri ƙarar dagewar don ajiyar bayanai a cikin tarin ta atomatik ta amfani da shirin Mai bayarwa.

Hanyar 3. Interface Ma'ajiyar Kwantena

Duk lambar da ke hulɗa tare da tsarin ajiya daban-daban wani ɓangare ne na ainihin Kubernetes. Sakin gyare-gyaren kwaro ko sabbin ayyuka an ɗaure su da sabbin abubuwan fitarwa; dole ne a canza lambar don duk nau'ikan Kubernetes da aka goyan baya. Duk wannan yana da wuyar kulawa da ƙara sabon ayyuka.

Don magance matsalar, masu haɓakawa daga Cloud Foundry, Kubernetes, Mesos da Docker sun ƙirƙiri Interface Storage Interface (CSI) - ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun ƙayyadaddun yanayin da ke bayyana ma'amalar tsarin sarrafa kwantena da direba na musamman (CSI Driver) wanda ke aiki tare da takamaiman. tsarin ajiya. Dukkan lambobi don hulɗa tare da tsarin ajiya an motsa su daga ainihin Kubernetes zuwa tsarin daban.

Takardun Ma'ajiya ta Kwantena.

Yawanci, Direban CSI ya ƙunshi abubuwa guda biyu: Node Plugin da plugin Controller.

Node Plugin yana gudana akan kowane kulli kuma yana da alhakin hawan juzu'i da aiwatar da ayyuka akan su. Plugin Mai Sarrafa yana hulɗa tare da tsarin ajiya: ƙirƙira ko goge juzu'i, sanya haƙƙin samun dama, da sauransu.

A yanzu, tsofaffin direbobi sun kasance a cikin kernel Kubernetes, amma ba a ba da shawarar yin amfani da su ba kuma ana shawartar kowa da kowa ya shigar da CSI Driver musamman don tsarin da zai yi aiki da shi.

Ƙirƙirar na iya tsoratar da waɗanda suka riga sun saba da kafa ma'ajin bayanai ta hanyar Ajiye, amma a gaskiya babu wani mummunan abu da ya faru. Ga masu shirye-shirye, babu wani abu da gaske ya canza - sun yi aiki ne kawai da sunan Ajiye, kuma za su ci gaba da yin hakan. Ga masu gudanarwa, an ƙara shigarwar ginshiƙi kuma an canza tsarin saitunan. Idan a baya an shigar da saitunan kai tsaye a cikin ajin Storage, yanzu dole ne a fara saita su a cikin ginshiƙi, sannan a cikin ajin Storage. Idan ka duba, babu wani mugun abu da ya faru.

Bari mu ɗauki misali don duba fa'idodin da za ku iya samu ta hanyar canzawa zuwa haɗa tsarin ajiyar Ceph ta amfani da direban CSI.

Lokacin aiki tare da Ceph, plugin ɗin CSI yana ba da ƙarin zaɓuɓɓuka don aiki tare da tsarin ajiya fiye da ginanniyar direbobi.

  1. Ƙirƙirar faifai mai ƙarfi. Yawanci ana amfani da diski na RBD a yanayin RWO kawai, amma CSI don Ceph yana ba su damar amfani da su a yanayin RWX. Yawancin kwasfa a kan nodes daban-daban na iya hawa faifan RDB iri ɗaya akan nodes ɗin su kuma suyi aiki tare da su a layi daya. Don yin gaskiya, ba komai yana da haske sosai ba - wannan faifai za a iya haɗa shi azaman na'urar toshe, wanda ke nufin dole ne ku daidaita aikace-aikacen don yin aiki tare da shi a cikin yanayin samun dama.
  2. Ƙirƙirar hotunan hoto. A cikin gungu na Kubernetes, zaku iya ƙirƙirar bayyananni tare da buƙatu don ƙirƙirar hoto. CSI plugin ɗin zai gan shi kuma ya ɗauki hoto daga faifan. Dangane da shi, zaku iya yin ko dai madadin ko kwafin PersistentVolume.
  3. Ƙara girman faifai akan ma'ajiya da dawwamar Volume a cikin gungu na Kubernetes.
  4. Ƙidaya. Direbobin CephFS da aka gina a cikin Kubernetes ba sa goyan bayan ƙididdiga, amma sabbin abubuwan plugins na CSI tare da sabuwar Ceph Nautilus na iya ba da damar ƙididdigewa akan sassan CephFS.
  5. Ma'auni. Kayan aikin CSI na iya samar da Prometheus tare da ma'auni iri-iri game da waɗanne kundin da aka haɗa, abin da sadarwa ke faruwa, da dai sauransu.
  6. Topology sani. Yana ba ku damar bayyana a cikin bayanan yadda ake rarraba gungu a geographically, kuma ku guji haɗa tsarin ajiya da ke Amsterdam zuwa kwas ɗin da ke gudana a London.

Yadda ake haɗa Ceph zuwa gungu na Kubernetes ta hanyar CSI, duba a cikin aikace-aikacen karatun makarantar Slurm maraice. Hakanan zaka iya biyan kuɗi zuwa Tsarin bidiyo na Ceph, wanda za a kaddamar a ranar 15 ga Oktoba.

Marubucin labarin: Sergey Bondarev, masanin gine-gine a Southbridge, Certified Kubernetes Administrator, daya daga cikin masu haɓaka kubespray.

Kadan Post Scriptum ba don talla ba, amma don fa'ida ...

PS Sergey Bondarev yana jagorantar darussa masu zurfi guda biyu: sabuntawa Kubernetes Base Satumba 28-30 kuma ya ci gaba Kubernetes Mega Oktoba 14-16.

Ajiye bayanai a cikin gungu na Kubernetes

source: www.habr.com

Add a comment