{"id":94388,"date":"2020-09-16T07:43:39","date_gmt":"2020-09-16T05:43:39","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/hranenie-dannyh-v-klastere-kubernetes"},"modified":"2020-09-16T07:43:39","modified_gmt":"2020-09-16T05:43:39","slug":"hranenie-dannyh-v-klastere-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/hranenie-dannyh-v-klastere-kubernetes","title":{"rendered":"Ukladanie d\u00e1t v Kubernetes klastri","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nastavi\u0165 ukladanie \u00fadajov aplik\u00e1ci\u00ed, ktor\u00e9 s\u00fa spusten\u00e9 v klastri Kubernetes, je mo\u017en\u00e9 viacer\u00fdmi sp\u00f4sobmi. Niektor\u00e9 z nich s\u00fa u\u017e zastaran\u00e9, in\u00e9 sa objavili len ned\u00e1vno. V tomto \u010dl\u00e1nku sa pozrieme na koncept troch mo\u017enost\u00ed pripojenia \u00falo\u017eiska, vr\u00e1tane najnov\u0161ej \u2014 pripojenia cez Container Storage Interface.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ukladanie d\u00e1t v Kubernetes klastri\" src=\"\/wp-content\/uploads\/2020\/09\/c045dc02cc4db1a0693730574a02eb4a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"sposob-1-ukazanie-pv-v-manifeste-poda\">Sp\u00f4sob 1. Ur\u010denie PV v manifeste podu<\/h2>\n<p><\/p>\n<p>Typick\u00fd manifest, ktor\u00fd popisuje pod v klastri Kubernetes: <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ukladanie d\u00e1t v Kubernetes klastri\" src=\"\/wp-content\/uploads\/2020\/09\/1df1b236df758f4a4a18905d31413617.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Farba zv\u00fdraz\u0148uje \u010dasti manifestu, kde je op\u00edsan\u00e9, ktor\u00fd zv\u00e4zok sa pripojuje a kam.<\/p>\n<p><\/p>\n<p>V sekcii <strong>volumeMounts<\/strong> uv\u00e1dza body pripojenia (mountPath) \u2013 do ktor\u00e9ho adres\u00e1ra vn\u00fatri kontajnera sa pripoj\u00ed trval\u00fd zv\u00e4zok, ako aj meno zv\u00e4zku.<\/p>\n<p><\/p>\n<p>V sekcii <strong>x<\/strong> vypisuj\u00fa v\u0161etky zv\u00e4zky, ktor\u00e9 sa pou\u017e\u00edvaj\u00fa v pode. Uv\u00e1dzaj\u00fa n\u00e1zov ka\u017ed\u00e9ho zv\u00e4zku, ako aj typ (v na\u0161om pr\u00edpade: awsElasticBlockStore) a parametre pripojenia. Ak\u00e9 presne parametre s\u00fa uveden\u00e9 v manifeste, z\u00e1vis\u00ed od typu zv\u00e4zku.<\/p>\n<p><\/p>\n<p>Ten ist\u00fd zv\u00e4zok m\u00f4\u017ee by\u0165 pripojen\u00fd s\u00fa\u010dasne v nieko\u013ek\u00fdch kontajneroch podu. Takto m\u00f4\u017eu ma\u0165 r\u00f4zne procesy aplik\u00e1cie pr\u00edstup k rovnak\u00fdm \u00fadajom. <\/p>\n<p><\/p>\n<p>Tento sp\u00f4sob pripojenia bol navrhnut\u00fd na za\u010diatku, ke\u010f sa Kubernetes pr\u00e1ve rozv\u00edjal, a dnes je u\u017e zastaran\u00fd.<\/p>\n<p><\/p>\n<p>Pri jeho pou\u017eit\u00ed vznik\u00e1 nieko\u013eko probl\u00e9mov: <\/p>\n<p><\/p>\n<ol>\n<li>v\u0161etky zv\u00e4zky je potrebn\u00e9 vytvori\u0165 ru\u010dne, Kubernetes za n\u00e1s ni\u010d nevytvor\u00ed;<\/li>\n<li>parametre pr\u00edstupu k ka\u017ed\u00e9mu zo zv\u00e4zkov s\u00fa jedine\u010dn\u00e9 a treba ich uvies\u0165 v manifestoch v\u0161etk\u00fdch podov, ktor\u00e9 zv\u00e4zok pou\u017e\u00edvaj\u00fa;<\/li>\n<li>pre zmenu syst\u00e9mu ukladania (napr\u00edklad presun z AWS do Google Cloud) je potrebn\u00e9 upravi\u0165 nastavenia a typ pripojen\u00fdch zv\u00e4zkov vo v\u0161etk\u00fdch manifestoch.<\/li>\n<\/ol>\n<p><\/p>\n<p>To v\u0161etko je ve\u013emi nepr\u00edjemn\u00e9, preto sa v praxi tento sp\u00f4sob pou\u017e\u00edva iba na pripojenie niektor\u00fdch \u0161peci\u00e1lnych typov zv\u00e4zkov: configMap, secret, emptyDir, hostPath:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>configMap a secret \u2013 slu\u017eobn\u00e9 zv\u00e4zky, umo\u017e\u0148uj\u00fa vytvori\u0165 v kontajneri zv\u00e4zok s s\u00fabormi z manifestov Kubernetes.<\/p>\n<p>\n<\/li>\n<li>\n<p>emptyDir \u2014 do\u010dasn\u00fd zv\u00e4zok, vytv\u00e1ra sa iba na \u010das \u017eivotnosti podu. Je vhodn\u00e9 ho pou\u017e\u00edva\u0165 na testovanie alebo ukladanie do\u010dasn\u00fdch \u00fadajov. Ke\u010f je pod odstr\u00e1nen\u00fd, zv\u00e4zok typu emptyDir tie\u017e zmizne a v\u0161etky \u00fadaje sa strat\u00ed.<\/p>\n<p>\n<\/li>\n<li>\n<p>hostPath \u2014 umo\u017e\u0148uje pripoji\u0165 ak\u00fdko\u013evek adres\u00e1r lok\u00e1lneho disku servera, na ktorom aplik\u00e1cia be\u017e\u00ed, dovn\u00fatra kontajnera s aplik\u00e1ciou, vr\u00e1tane \/etc\/kubernetes. Toto je nebezpe\u010dn\u00e1 funkcia, a preto politiky zabezpe\u010denia zvy\u010dajne zakazuj\u00fa pou\u017e\u00edvanie objemov tohto typu. Inak m\u00f4\u017ee \u00fato\u010dn\u00edkova aplik\u00e1cia pripoji\u0165 do svojho kontajnera adres\u00e1r HTC Kubernetes a ukradn\u00fa\u0165 v\u0161etky certifik\u00e1ty klastre. Zvy\u010dajne sa objemy hostPath umo\u017e\u0148uj\u00fa pou\u017e\u00edva\u0165 len syst\u00e9mov\u00fdm aplik\u00e1ci\u00e1m, ktor\u00e9 sa sp\u00fa\u0161\u0165aj\u00fa v namespace kube-system.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/storage\/volumes\/#types-of-volumes\">Syst\u00e9my ukladania \u00fadajov, s ktor\u00fdmi Kubernetes pracuje priamo z krabice<\/a><\/noindex> s\u00fa uveden\u00e9 v dokument\u00e1cii.<\/p>\n<p><\/p>\n<h2 id=\"sposob-2-podklyuchenie-k-podam-scpvcpv\">Sp\u00f4sob 2. Pripojenie k podom SC\/PVC\/PV<\/h2>\n<p><\/p>\n<p>Alternat\u00edvny sp\u00f4sob pripojenia \u2014 koncept Storage class, PersistentVolumeClaim, PersistentVolume.<\/p>\n<p><\/p>\n<p><u>Storage class<\/u> uchov\u00e1va parametre pripojenia k syst\u00e9mu ukladania \u00fadajov.<\/p>\n<p><\/p>\n<p><u>PersistentVolumeClaim<\/u> popisuje po\u017eiadavky na objem, ktor\u00fd aplik\u00e1cia potrebuje.<br \/>\n<u>PersistentVolume<\/u> uchov\u00e1va parametre pr\u00edstupu a stav objemu.<\/p>\n<p><\/p>\n<p>Podstatou my\u0161lienky je: v manifeste podu sa uv\u00e1dza objem typu PersistentVolumeClaim a uv\u00e1dza sa n\u00e1zov tejto entity v parametri claimName.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ukladanie d\u00e1t v Kubernetes klastri\" src=\"\/wp-content\/uploads\/2020\/09\/08b0460be887d39801d1acb9ee1bbd2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>V manifeste PersistentVolumeClaim sa popisuj\u00fa po\u017eiadavky na objem \u00fadajov, ktor\u00fd je potrebn\u00fd aplik\u00e1cii. A to vr\u00e1tane:<\/p>\n<p><\/p>\n<ul>\n<li>ve\u013ekos\u0165 disku; <\/li>\n<li>sp\u00f4sob pr\u00edstupu: ReadWriteOnce alebo ReadWriteMany;<\/li>\n<li>odkaz na Storage class \u2014 v ktorom syst\u00e9me ukladania \u00fadajov chceme vytvori\u0165 objem.<\/li>\n<\/ul>\n<p><\/p>\n<p>V manifeste Storage class sa uchov\u00e1vaj\u00fa typ a parametre pripojenia k syst\u00e9mu ukladania \u00fadajov. S\u00fa potrebn\u00e9 kubeletu na pripojenie objemu k sebe na uzol. <\/p>\n<p><\/p>\n<p>V manifestoch PersistentVolume sa uv\u00e1dza Storage class a parametre pr\u00edstupu k konkr\u00e9tnemu objemu (ID objemu, cesta at\u010f.).<\/p>\n<p><\/p>\n<p>Pri vytv\u00e1ran\u00ed PVC Kubernetes kontroluje, ak\u00fd objem a z ak\u00e9ho Storage class bude potrebn\u00fd a vyber\u00e1 vo\u013en\u00fd PersistentVolume.<\/p>\n<p><\/p>\n<p>Ak tak\u00e9to PV nie s\u00fa k dispoz\u00edcii, Kubernetes m\u00f4\u017ee spusti\u0165 \u0161peci\u00e1lny program \u2014 Provisioner (jeho n\u00e1zov sa uv\u00e1dza v Storage class). Tento program sa pripoj\u00ed k SHTD, vytvor\u00ed objem po\u017eadovanej ve\u013ekosti, z\u00edska identifik\u00e1tor a vytvor\u00ed v klastri Kubernetes manifest PersistentVolume, ktor\u00fd sa via\u017ee s PersistentVolumeClaim.<\/p>\n<p><\/p>\n<p>Toto mno\u017estvo abstrakci\u00ed umo\u017e\u0148uje odstr\u00e1ni\u0165 inform\u00e1cie o tom, s ktor\u00fdm SHTD aplik\u00e1cia pracuje, z \u00farovne manifestov aplik\u00e1ci\u00ed na \u00farove\u0148 administr\u00e1cie. <\/p>\n<p><\/p>\n<p>V\u0161etky pripojovacie parametre k syst\u00e9mu ukladania \u00fadajov sa nach\u00e1dzaj\u00fa v Storage class, za ktor\u00fd zodpovedaj\u00fa spr\u00e1vcovia klastra. V\u0161etko, \u010do treba urobi\u0165 pri presune z AWS do Google Cloud, je zmeni\u0165 n\u00e1zov Storage class v PVC v manifestoch aplik\u00e1cie. Persisten\u010dn\u00fd objem na ukladanie \u00fadajov sa v klastri automaticky vytvor\u00ed pomocou programu Provisioner.<\/p>\n<p><\/p>\n<h2 id=\"sposob-3-container-storage-interface\">Sp\u00f4sob 3. Rozhranie \u00falo\u017eiska kontajnerov<\/h2>\n<p><\/p>\n<p>Cel\u00fd k\u00f3d, ktor\u00fd interaguje s r\u00f4znymi syst\u00e9mami ukladania \u00fadajov, je s\u00fa\u010das\u0165ou jadra Kubernetes. Vyd\u00e1vanie opr\u00e1v ch\u00fdb alebo novej funk\u010dnosti je viazan\u00e9 na nov\u00e9 verzie, \u010do znamen\u00e1, \u017ee k\u00f3d je potrebn\u00e9 meni\u0165 pre v\u0161etky podporovan\u00e9 verzie Kubernetes. V\u0161etko toto je \u0165a\u017ek\u00e9 udr\u017eiava\u0165 a prid\u00e1va\u0165 nov\u00fa funk\u010dnos\u0165.<\/p>\n<p><\/p>\n<p>Aby sa probl\u00e9m vyrie\u0161il, v\u00fdvoj\u00e1ri z Cloud Foundry, Kubernetes, Mesos a Docker vytvorili Rozhranie \u00falo\u017eiska kontajnerov (CSI) \u2014 jednoduch\u00e9 jednotn\u00e9 rozhranie, ktor\u00e9 popisuje interakciu syst\u00e9mu spr\u00e1vy kontajnerov a \u0161peci\u00e1lneho ovl\u00e1da\u010da (CSI Driver), ktor\u00fd pracuje so \u0161pecifick\u00fdm \u00falo\u017en\u00fdm syst\u00e9mom. Cel\u00fd k\u00f3d interakcie so S\u00daD presunuli z jadra Kubernetes do samostatn\u00e9ho syst\u00e9mu.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/blog\/2019\/01\/15\/container-storage-interface-ga\/\">Dokument\u00e1cia k Rozhraniu \u00falo\u017eiska kontajnerov<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Zvy\u010dajne pozost\u00e1va CSI Driver z dvoch komponentov: Node Plugin a Controller plugin.<\/p>\n<p><\/p>\n<p>Node Plugin sa sp\u00fa\u0161\u0165a na ka\u017edom uzle a zodpoved\u00e1 za pripojenie objemov a oper\u00e1cie na nich. Controller plugin interaguje so S\u00daD: vytv\u00e1ra alebo odstra\u0148uje objemy, prira\u010fuje pr\u00edstupov\u00e9 pr\u00e1va at\u010f.<\/p>\n<p><\/p>\n<p>K\u00fdm v jadre Kubernetes zost\u00e1vaj\u00fa star\u00e9 ovl\u00e1da\u010de, ich pou\u017e\u00edvanie u\u017e nie je odpor\u00fa\u010dan\u00e9 a v\u0161etk\u00fdm sa doporu\u010duje nain\u0161talova\u0165 CSI Driver konkr\u00e9tne pre syst\u00e9m, s ktor\u00fdm sa m\u00e1 pracova\u0165.<\/p>\n<p><\/p>\n<p>Toto novinky m\u00f4\u017eu vystra\u0161i\u0165 t\u00fdch, ktor\u00ed si u\u017e zvykli na nastavenie ukladania \u00fadajov prostredn\u00edctvom Storage class, ale v skuto\u010dnosti sa ni\u010d zl\u00e9 nestalo. Pre program\u00e1torov sa presne ni\u010d nemen\u00ed \u2014 bud\u00fa sa aj na\u010falej zaobera\u0165 iba menom Storage class. Pre spr\u00e1vcov pribudla in\u0161tal\u00e1cia helm chart a zmenila sa \u0161trukt\u00fara nastaven\u00ed. Zatia\u013e \u010do predt\u00fdm sa nastavenia zad\u00e1vali priamo v Storage class, teraz ich najprv treba zada\u0165 v helm chart a a\u017e potom v Storage class. Ak sa do toho \u010dlovek pono\u0159\u00ed, ni\u010d zl\u00e9 sa nestalo.<\/p>\n<p><\/p>\n<p>Po\u010fme si na pr\u00edklade uk\u00e1za\u0165, ak\u00e9 v\u00fdhody m\u00f4\u017eeme z\u00edska\u0165 prechodom na pripojenie \u00falo\u017eiska Ceph pomocou ovl\u00e1da\u010da CSI.<\/p>\n<p><\/p>\n<p>Pri pr\u00e1ci s Ceph poskytuje plugin CSI viac mo\u017enost\u00ed pre pr\u00e1cu so S\u00daD ne\u017e zabudovan\u00e9 ovl\u00e1da\u010de.<\/p>\n<p><\/p>\n<ol>\n<li><strong>Dynamick\u00e9 vytv\u00e1ranie diskov.<\/strong> Disky RBD sa zvy\u010dajne pou\u017e\u00edvaj\u00fa len v re\u017eime RWO, a CSI pre Ceph umo\u017e\u0148uje ich pou\u017eitie v re\u017eime RWX. Nieko\u013eko pod&#8217;ov na r\u00f4znych uzloch m\u00f4\u017ee pripoji\u0165 jeden a ten ist\u00fd RDB disk na svoje uzly a pracova\u0165 s n\u00edm s\u00fa\u010dasne. Pre spravodlivos\u0165, nie je v\u0161etko tak ru\u017eov\u00e9 \u2014 tento disk je mo\u017en\u00e9 pripoji\u0165 iba ako blokov\u00e9 zariadenie, \u010do znamen\u00e1, \u017ee je potrebn\u00e9 prisp\u00f4sobi\u0165 aplik\u00e1ciu na pr\u00e1cu s n\u00edm v re\u017eime viacer\u00fdch pr\u00edstupov.<\/li>\n<li><strong>Vytvorenie snapshotov.<\/strong> V klastre Kubernetes je mo\u017en\u00e9 vytvori\u0165 manifest s po\u017eiadavkou na vytvorenie snapshotu. Plugin CSI si to v\u0161imne a vytvor\u00ed snapshot z disku. Na jeho z\u00e1klade bude mo\u017en\u00e9 urobi\u0165 bu\u010f z\u00e1lohu alebo k\u00f3piu PersistentVolume. <\/li>\n<li><strong>Zv\u00e4\u010d\u0161enie ve\u013ekosti disku<\/strong> na S\u00daZD a PersistentVolume v klastre Kubernetes.<\/li>\n<li><strong>Kv\u00f3ty.<\/strong> Vstavan\u00e9 ovl\u00e1da\u010de CephFS v Kubernetes nepodporuj\u00fa kv\u00f3ty, zatia\u013e \u010do nov\u00e9 CSI pluginy s nov\u00fdm Ceph Nautilus dok\u00e1\u017eu povoli\u0165 kv\u00f3ty na CephFS oddieloch.<\/li>\n<li><strong>Metriky.<\/strong> CSI plugin m\u00f4\u017ee poskytova\u0165 v Prometheus mno\u017estvo metrik o tom, ak\u00e9 zv\u00e4zky s\u00fa pripojen\u00e9, ak\u00e9 interakcie prebiehaj\u00fa at\u010f.<\/li>\n<li><strong>Geograficky vedom\u00e9.<\/strong> Umo\u017e\u0148uje \u0161pecifikova\u0165 v manifestoch, ako je geograficky rozlo\u017een\u00fd klaster a vyhn\u00fa\u0165 sa pripojeniu k podom, ktor\u00e9 s\u00fa spusten\u00e9 v Lond\u00fdne, k syst\u00e9mu ukladania d\u00e1t umiestnen\u00e9mu v Amsterdame. <\/li>\n<\/ol>\n<p><\/p>\n<p>Ako pripoji\u0165 Ceph k klastru Kubernetes cez CSI, pozrite si <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/DteNn-1f-WI\">v praktickej \u010dasti predn\u00e1\u0161ky ve\u010dernej \u0161koly Slyrm<\/a><\/noindex>. Taktie\u017e sa m\u00f4\u017eete prihl\u00e1si\u0165 na <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/Ssx7pg\">video kurz Ceph<\/a><\/noindex>, ktor\u00fd za\u010dne 15. okt\u00f3bra. <\/p>\n<p><\/p>\n<p><em>Autor \u010dl\u00e1nku: Sergey Bondarev, praktizuj\u00faci architekt Southbridge, Certified Kubernetes Administrator, jeden z v\u00fdvoj\u00e1rov kubespray.<\/em><\/p>\n<p><\/p>\n<p>                        <b class=\"spoiler_title\">Trochu Post Scriptum nie je reklama, ale pre u\u017eito\u010dnos\u0165&#8230;<\/b><\/p>\n<p>P.S. Sergey Bondarev vedie dva intenz\u00edvy: aktualizovan\u00fd <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/1WIJFg\">Z\u00e1klady Kubernetes<\/a><\/noindex> 28-30. septembra a pokro\u010dil\u00fd <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/Wbqz5g\">Mega Kubernetes<\/a><\/noindex> 14.-16. okt\u00f3bra.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Ukladanie d\u00e1t v Kubernetes klastri\" src=\"\/wp-content\/uploads\/2020\/09\/69752ee9f7c9caf887011564139baf16.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/519130\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes, \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041e\u0434\u043d\u0438 \u0438\u0437 \u043d\u0438\u0445 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0438, \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u0442\u0440\u0451\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0421\u0425\u0414, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u0430\u043c\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u2014 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 Container Storage Interface. \u0421\u043f\u043e\u0441\u043e\u0431 1. \u0423\u043a\u0430\u0437\u0430\u043d\u0438\u0435 PV \u0432 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0435 \u043f\u043e\u0434\u0430 \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043f\u043e\u0434 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes: \u0426\u0432\u0435\u0442\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94389,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94388","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes, \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041e\u0434\u043d\u0438 \u0438\u0437 \u043d\u0438\u0445 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0438, \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/hranenie-dannyh-v-klastere-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes, \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041e\u0434\u043d\u0438 \u0438\u0437 \u043d\u0438\u0445 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0438, \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/hranenie-dannyh-v-klastere-kubernetes\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-16T05:43:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-16T05:43:39+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ulo\u017eenie d\u00e1t v klastre Kubernetes | ProHoster","description":"Ulo\u017eenie d\u00e1t aplik\u00e1ci\u00ed spusten\u00fdch v klastre Kubernetes je mo\u017en\u00e9 viacero sp\u00f4sobmi. Niektor\u00e9 z nich s\u00fa u\u017e zastaran\u00e9, in\u00e9 sa objavili predned\u00e1vnom.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/hranenie-dannyh-v-klastere-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes | ProHoster","og:description":"\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0445 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes, \u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438. \u041e\u0434\u043d\u0438 \u0438\u0437 \u043d\u0438\u0445 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u0440\u0435\u043b\u0438, \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/hranenie-dannyh-v-klastere-kubernetes","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-16T05:43:39+00:00","article:modified_time":"2020-09-16T05:43:39+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94388","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:27:34","updated":"2022-10-02 10:35:39","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/94388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=94388"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/94388\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/94389"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=94388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=94388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=94388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}