Kusunga deta mu gulu la Kubernetes

Pali njira zingapo zosinthira kusungirako deta kwa mapulogalamu omwe akuyenda pagulu la Kubernetes. Zina mwa izo ndi zachikale, zina zawonekera posachedwa. M'nkhaniyi, tiwona lingaliro la njira zitatu zolumikizira makina osungira, kuphatikiza yaposachedwa kwambiri - kulumikiza kudzera pa Container Storage Interface.

Kusunga deta mu gulu la Kubernetes

Njira 1: Nenani PV mu chiwonetsero cha pod

Chiwonetsero chodziwika bwino chofotokozera poto mugulu la Kubernetes:

Kusunga deta mu gulu la Kubernetes

Zigawo za chiwonetserochi zomwe zimafotokoza kuti ndi voliyumu iti yomwe yalumikizidwa komanso komwe imawonetsedwa ndi utoto.

gawo volumeMounts onetsani malo okwera (MountPath) - momwe chikwatu mkati mwa chidebecho chidzakwezedwa, komanso dzina la voliyumu.

gawo x perekani ma voliyumu onse omwe akugwiritsidwa ntchito pa pod. Tchulani dzina la voliyumu iliyonse, komanso mtundu wake (kwa ife: awsElasticBlockStore) ndi magawo olumikizirana. Ndi magawo ati omwe alembedwa mu chiwonetserochi zimatengera mtundu wa voliyumu.

Voliyumu yofananayo imatha kuyikidwa nthawi imodzi muzotengera zingapo. Mwanjira iyi, njira zosiyanasiyana zogwiritsira ntchito zimatha kupeza deta yomweyo.

Njira yolumikizira iyi idapangidwa koyambirira, pomwe Kubernetes anali atangoyamba kumene, ndipo lero njirayi ndi yachikale.

Pali zovuta zingapo mukamagwiritsa ntchito:

  1. Ma voliyumu onse ayenera kupangidwa pamanja; Kubernetes sangathe kutipangira chilichonse;
  2. magawo ofikira pa voliyumu iliyonse ndi apadera, ndipo ayenera kufotokozedwa m'mawonekedwe a ma pod onse omwe amagwiritsa ntchito voliyumuyo;
  3. kusintha makina osungira (mwachitsanzo, kuchoka ku AWS kupita ku Google Cloud), muyenera kusintha makonda ndi mtundu wa ma voliyumu okwera pamawonetsero onse.

Zonsezi ndizovuta kwambiri, kotero kwenikweni njirayi imagwiritsidwa ntchito kulumikiza mitundu ina yapadera ya mavoliyumu: configMap, secret, emptyDir, hostPath:

  • configMap ndi chinsinsi ndi ma voliyumu a ntchito omwe amakulolani kuti mupange voliyumu ndi mafayilo kuchokera ku Kubernetes akuwonetsa mu chidebe.

  • emptyDir ndi voliyumu yakanthawi, yopangidwira moyo wonse wa pod. Ndiosavuta kugwiritsa ntchito kuyesa kapena kusunga kwakanthawi kochepa. Pod ikachotsedwa, voliyumu yopanda kanthu yaDir imachotsedwanso ndipo deta yonse imatayika.

  • hostPath - imakulolani kuti muyike chikwatu chilichonse pa disk yakwanuko ya seva yomwe pulogalamuyo ikugwira ntchito mkati mwa chidebe ndi pulogalamuyo, kuphatikiza /etc/kubernetes. Ichi ndi chinthu chosatetezeka, kotero mfundo zachitetezo nthawi zambiri zimaletsa kugwiritsa ntchito mitundu yamtunduwu. Kupanda kutero, wowukira atha kuyika chikwatu cha HTC Kubernetes mkati mwa chidebe chake ndikuba ziphaso zonse zamagulu. Nthawi zambiri, ma voliyumu a hostPath amaloledwa kugwiritsidwa ntchito ndi mapulogalamu omwe amayenda mu kube-system namespace.

Makina osungira omwe Kubernetes amagwira nawo ntchito kunja kwa bokosi amaperekedwa mu zolembedwa.

Njira 2. Kulumikizanani ndi malo a SC/PVC/PV

Njira ina yolumikizirana ndi lingaliro la Storage class, PersistentVolumeClaim, PersistentVolume.

Kalasi yosungirako imasunga magawo olumikizirana ndi makina osungira deta.

PersistentVolumeClaim limafotokoza zofunikira zomwe pulogalamuyo ikufuna.
PersistentVolume imasunga magawo ofikira ndi kuchuluka kwa voliyumu.

Zofunikira za lingaliro: mu podi chiwonetsero amawonetsa kuchuluka kwa mtundu wa PersistentVolumeClaim ndikuwonetsa dzina la bungweli pagawo la claimName.

Kusunga deta mu gulu la Kubernetes

PersistentVolumeClaim manifest imalongosola zofunikira za kuchuluka kwa data yomwe pulogalamuyo ikufuna. Kuphatikizapo:

  • kukula kwa disk;
  • njira yofikira: ReadWriteOnce kapena ReadWriteMany;
  • ulalo ku kalasi ya Storage - momwe makina osungira deta tikufuna kupanga voliyumu.

Mawonekedwe a gulu la Storage amasunga mtundu ndi magawo a kulumikizana ndi makina osungira. Cubelet imawafunikira kuti akweze voliyumu pamfundo yake.

PersistentVolume ikuwonetsa kalasi ya Kusungirako ndi magawo ofikira a voliyumu inayake (ID ya voliyumu, njira, ndi zina).

Popanga PVC, Kubernetes amayang'ana kukula kwa voliyumu ndi zomwe Gulu la Storage likufunika, ndikusankha PersistentVolume yaulere.

Ngati ma PV awa sapezeka, Kubernetes akhoza kuyambitsa pulogalamu yapadera - Provisioner (dzina lake likuwonetsedwa mu kalasi ya Kusungirako). Pulogalamuyi imalumikizana ndi makina osungira, imapanga kuchuluka kwa kukula kofunikira, imalandira chizindikiritso ndikupanga chiwonetsero cha PersistentVolume mu gulu la Kubernetes, chomwe chimagwirizana ndi PersistentVolumeClaim.

Zotsalira zonsezi zimakupatsani mwayi wochotsa zidziwitso zamakina osungira omwe pulogalamuyo ikugwira nawo ntchito kuchokera pa chiwonetsero cha pulogalamu mpaka pamlingo wa oyang'anira.

Magawo onse olumikizana ndi makina osungira deta ali mu Gulu Losungirako, lomwe oyang'anira magulu ali ndi udindo. Zomwe muyenera kuchita mukachoka ku AWS kupita ku Google Cloud ndikusintha dzina la Storage class kukhala PVC muzowonetsera. Persistance Volume yosungiramo data idzapangidwa mgululi pogwiritsa ntchito pulogalamu ya Provisioner.

Njira 3. Cholumikizira Chosungira Chosungira

Ma code onse omwe amalumikizana ndi machitidwe osiyanasiyana osungira ndi gawo la Kubernetes pachimake. Kutulutsidwa kwa zokonza zolakwika kapena magwiridwe antchito atsopano kumalumikizidwa ndi kutulutsidwa kwatsopano; khodi iyenera kusinthidwa pamasinthidwe onse othandizidwa a Kubernetes. Zonsezi ndizovuta kusunga ndikuwonjezera magwiridwe antchito atsopano.

Kuti athetse vutoli, Madivelopa ochokera ku Cloud Foundry, Kubernetes, Mesos ndi Docker adapanga Container Storage Interface (CSI) - mawonekedwe osavuta ogwirizana omwe amafotokozera kuyanjana kwa kasamalidwe ka chidebe ndi woyendetsa wapadera (CSI Driver) yemwe amagwira ntchito ndi mtundu wina. dongosolo yosungirako. Khodi zonse zolumikizirana ndi makina osungira zidasunthidwa kuchokera pachimake cha Kubernetes kupita ku dongosolo lina.

Container Storage Interface Documentation.

Nthawi zambiri, CSI Driver imakhala ndi zigawo ziwiri: Node Plugin ndi Controller plugin.

Node Plugin imayenda pa node iliyonse ndipo imayang'anira kukweza ma voliyumu ndikuchitapo kanthu. Pulogalamu yowonjezera ya Controller imalumikizana ndi makina osungira: imapanga kapena kuchotsa mavoliyumu, imapatsa ufulu wopeza, ndi zina zotero.

Pakalipano, madalaivala akale amakhalabe mu kernel ya Kubernetes, koma sakulangizidwanso kuti agwiritsidwe ntchito ndipo aliyense akulangizidwa kuti akhazikitse CSI Driver makamaka pa dongosolo lomwe adzagwire ntchito.

Zatsopanozi zitha kuwopseza iwo omwe adazolowera kale kukhazikitsa kusungirako deta kudzera mu kalasi ya Storage, koma kwenikweni palibe choyipa chomwe chachitika. Kwa opanga mapulogalamu, palibe chomwe chimasintha - adangogwira ntchito ndi dzina la Storage class, ndipo apitiliza kutero. Kwa olamulira, kuyika kwa helm chart kwawonjezeredwa ndipo mawonekedwe a zosintha asintha. Ngati m'mbuyomu zosintha zidalowetsedwa mwachindunji mu kalasi ya Kusungirako, tsopano ziyenera kukhazikitsidwa poyamba pa tchati cha helm, ndiyeno mu Gulu Losungirako. Mukayang'ana, palibe choipa chomwe chinachitika.

Tiyeni titenge chitsanzo kuti tiwone zabwino zomwe mungapeze posinthira kulumikiza makina osungira a Ceph pogwiritsa ntchito dalaivala wa CSI.

Mukamagwira ntchito ndi Ceph, pulogalamu yowonjezera ya CSI imapereka njira zambiri zogwirira ntchito ndi makina osungira kuposa madalaivala omangidwa.

  1. Kupanga kwa Dynamic disk. Nthawi zambiri ma disks a RBD amagwiritsidwa ntchito mu RWO mode, koma CSI ya Ceph imawalola kugwiritsidwa ntchito mu RWX mode. Ma pod angapo pamanode osiyanasiyana amatha kuyika disk yofanana ya RDB pamanode awo ndikugwira nawo ntchito limodzi. Kunena zowona, sizinthu zonse zowala kwambiri - disk iyi imatha kulumikizidwa ngati chida chotchinga, zomwe zikutanthauza kuti muyenera kusintha pulogalamuyo kuti mugwire nayo ntchito zingapo.
  2. Kupanga zithunzi. Pagulu la Kubernetes, mutha kupanga chiwonetsero ndi chofunikira kuti mupange chithunzithunzi. Pulogalamu yowonjezera ya CSI idzawona ndikutenga chithunzithunzi kuchokera pa disk. Kutengera ndi izi, mutha kupanga zosunga zobwezeretsera kapena kukopera PersistentVolume.
  3. Kuchulukitsa kukula kwa disk pa storage ndi PersistentVolume mu gulu la Kubernetes.
  4. Magawo. Madalaivala a CephFS omangidwa mu Kubernetes samathandizira ma quotas, koma mapulagini atsopano a CSI okhala ndi Ceph Nautilus aposachedwa atha kuloleza magawo pamagawo a CephFS.
  5. Metrics. Pulagi ya CSI imatha kupatsa Prometheus ma metric osiyanasiyana okhudzana ndi ma voliyumu olumikizidwa, ndi mauthenga ati omwe akuchitika, ndi zina zambiri.
  6. Topology amadziwa. Imakulolani kuti mutchule m'mawonekedwe momwe gululi limagawidwira, ndikupewa kulumikiza makina osungira omwe ali ku Amsterdam ndi ma pod aku London.

Momwe mungalumikizire Ceph ku gulu la Kubernetes kudzera pa CSI, onani mu gawo lothandiza la Slurm madzulo nkhani ya sukulu. Mukhozanso kulembetsa ku Ceph video course, yomwe idzayambike pa October 15th.

Wolemba nkhaniyi: Sergey Bondarev, katswiri wazomangamanga ku Southbridge, Certified Kubernetes Administrator, m'modzi mwa omwe amapanga kubespray.

Post Scriptum yaying'ono osati yotsatsa, koma yopindulitsa...

PS Sergey Bondarev amatsogolera maphunziro awiri ovuta: kusinthidwa Kubernetes Base September 28-30 ndi patsogolo Kubernetes Mega October 14-16.

Kusunga deta mu gulu la Kubernetes

Source: www.habr.com

Kuwonjezera ndemanga