{"id":71858,"date":"2020-02-28T21:00:08","date_gmt":"2020-02-28T18:00:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/patterny-hraneniya-dannyh-v-kubernetes"},"modified":"2020-03-03T16:14:09","modified_gmt":"2020-03-03T13:14:09","slug":"patterny-hraneniya-dannyh-v-kubernetes","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","title":{"rendered":"Vzorci shranjevanja podatkov v Kubernetesu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/490180\/\"><img decoding=\"async\" alt=\"Vzorci shranjevanja podatkov v Kubernetesu\" src=\"\/wp-content\/uploads\/2020\/02\/148744e73101d47e7a5a76bdd3bb57e1.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nHello, Habr!<\/p>\n<p>Pripominjamo, da smo izdali novo izredno zanimivo in uporabno <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/new\/product\/patterny-kubernetes-shablony-razrabotki-sobstvennyh-oblachnyh-prilozheniy\">knjiga<\/a><\/noindex> o vzorih Kubernetes. Za\u010delo se je \u0161e s<noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/raspredelennye-sistemy-patterny-proektirovaniya\">Vzorci<\/a><\/noindex>Brendana Bernsa, in vendar pa je na\u0161e delo na tem segmentu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/new\/product\/kubernetes-dlya-devops-razvertyvanie-zapusk-i-masshtabirovanie-v-oblake\">brzostrelno poteka<\/a><\/noindex>. Danes vam ponujamo, da preberete \u010dlanek iz bloga MinIO, ki na kratko povzema trende in posebnosti vzorcev shranjevanja podatkov v Kubernetes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Kubernetes je temeljito spremenil tradicionalne vzorce razvoja in uvajanja aplikacij. Zdaj lahko ekipa v le nekaj dneh razvije, testira in uvaja aplikacijo \u2013 v razli\u010dnih okoljih, vse to znotraj Kubernetes grozdov. Tak\u0161na delo s tehnologijami prej\u0161njih generacij obi\u010dajno je zahtevalo tedne, \u010de ne mesece.<\/p>\n<p>Tak\u0161no pospe\u0161evanje je postalo mogo\u010de zaradi abstrakcije, ki jo zagotavlja Kubernetes \u2014 to je, zahvaljujo\u010d temu, da Kubernetes sam obravnava interakcije z nizkotnim tehni\u010dnim specifikacijam fizi\u010dnih ali virtualnih strojev, kar uporabnikom omogo\u010da, da na primer dolo\u010dijo potreben procesor, potrebne koli\u010dine pomnilnika in \u0161tevilo primerkov kontejnerjev. Ker je za podporo Kubernetes anga\u017eirana ogromna skupnost, ter ker se obseg uporabe Kubernetes nenehno \u0161iri, vodi dale\u010d pred vsemi platformami za orkestracijo kontejnerjev.<\/p>\n<p><i><b>S \u0161irjenjem uporabe Kubernetes se pove\u010duje tudi zmeda glede vzorcev shranjevanja podatkov, ki se uporabljajo.<\/b><\/i>.<\/p>\n<p>Pri vsej konkurenci za kos pite Kubernetes (tj. za shranjevanje podatkov), ko gre za shranjevanje podatkov, se signal tukaj potopi v mo\u010dan \u0161um.<br \/>\nKubernetes predstavlja sodobni model razvoja, uvajanja in upravljanja aplikacij. Ta sodoben model lo\u010duje shranjevanje podatkov od obdelave. Da bi popolnoma razumeli to lo\u010ditev v kontekstu Kubernetes, je treba prav tako razumeti, kaj so aplikacije, ki delujejo s trajnimi in netrajnimi shranjevanjem, ter kako se to usklajuje s shranjevanjem podatkov. Tu ima pristop REST API, ki se uporablja v S3, jasne prednosti v primerjavi s pristopom POSIX\/CSI, ki je zna\u010dilen za druge re\u0161itve.<\/p>\n<p>V tem \u010dlanku se bomo pogovorili o vzorcih shranjevanja podatkov v Kubernetesu in posebej obravnavali razpravo o aplikacijah, ki delujejo z shranjevanjem in brez shranjevanja stanja, da bomo temeljito razumeli, v \u010dem je razlika med njimi in zakaj je ta razlika pomembna. V nadaljevanju besedila bodo obravnavane aplikacije in vzorci shranjevanja podatkov, ki se uporabljajo v skladu z najbolj\u0161imi praksami dela s posodami in Kubernetesom.<\/p>\n<h4>Posode brez shranjevanja stanja<\/h4>\n<p>\nPosode so po naravi lahke in efemerne. Lahko jih enostavno ustavimo, izbri\u0161emo ali prenesemo na drugo vozli\u0161\u010de \u2013 to traja le sekunde. V velikem sistemu orkestracije posod se tak\u0161ne operacije nenehno dogajajo, uporabniki pa teh sprememb pogosto ne opazijo. Vendar pa so premiki mo\u017eni le, \u010de posoda nima nobenih odvisnosti od vozli\u0161\u010da, na katerem se nahaja. O tak\u0161nih posodah pravimo, da delujejo <i>brez shranjevanja stanja<\/i>.<\/p>\n<h4>Posode s shranjevanjem stanja<\/h4>\n<p>\n\u010ce posoda shranjuje podatke na lokalno priklju\u010denih napravah (ali na blokovni napravi), bo treba shranjevanje podatkov, na katerem se nahaja, prenesti na novo vozli\u0161\u010de skupaj s samo posodo \u2013 v primeru okvare. To je pomembno, saj v nasprotnem primeru aplikacija, ki te\u010de v posodi, ne bo mogla pravilno delovati, saj mora dostopati do podatkov, shranjenih na lokalnih medijih. O tak\u0161nih posodah pravimo, da delujejo <i>s shranjevanjem stanja<\/i>.<\/p>\n<p>Z \u010dist tehni\u010dnega vidika je mogo\u010de tudi posode s shranjevanjem stanja premikati na druga vozli\u0161\u010da. To se obi\u010dajno zagotavlja s pomo\u010djo porazdeljenih datote\u010dnih sistemov ali blokovnih omre\u017enih shranjevanj podatkov, pritrjenih na vsa vozli\u0161\u010da, na katerih delujejo posode. Tako posode dobijo dostop do volumov za trajno shranjevanje podatkov, informacije pa se shranjujejo na diskih, razporejenimi po celotnem omre\u017eju. Ta na\u010din bom poimenoval \u2018<i>pristop posod s shranjevanjem stanja<\/i>\u2019, in v preostanku \u010dlanka ga bom tako imenoval za enotnost.<\/p>\n<p><img decoding=\"async\" alt=\"Vzorci shranjevanja podatkov v Kubernetesu\" src=\"\/wp-content\/uploads\/2020\/02\/a5546db15801389d58476f50c8c66803.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV tipi\u010dnem pristopu kontejnerne tehnologije s shranjevanjem stanja so vse aplikacijske posode pripete na en razdeljen datote\u010dni sistem \u2013 ustvarja se nekak\u0161en skupni prostor za shranjevanje, kjer se zbirajo vse podatke aplikacij. \u010ceprav so mo\u017ene dolo\u010dene variacije, gre za visok nivo pristopa.<\/p>\n<p>Zdaj pa se podu\u010dimo, zakaj je pristop kontejnerne tehnologije s shranjevanjem stanja v svetu, usmerjenem v oblak, antipateren.<\/p>\n<h4>Obla\u010dno usmerjeno na\u010drtovanje aplikacij<\/h4>\n<p>\nTradicionalno so aplikacije uporabljale baze podatkov za strukturirano shranjevanje informacij ter lokalne diske ali razdeljene datote\u010dne sisteme, kamor so shranjevali vse nestrukturirane ali celo polstrukturirane podatke. Ko so se koli\u010dine nestrukturiranih podatkov pove\u010dale, so razvijalci spoznali, da je POSIX prenagljen, povezan z znatnimi stro\u0161ki in na koncu ovira delovanje aplikacije pri prehodu na resni\u010dno velike razse\u017enosti.<\/p>\n<p>To je v veliki meri prispevalo k nastanku novega standarda shranjevanja podatkov, torej obla\u010dno usmerjenih shranjevanj, ki delujejo predvsem na osnovi REST API in razbremenjujejo aplikacijo napornih nalog lokalnega shranjevanja podatkov. V takem primeru aplikacija pravzaprav prehaja v na\u010din delovanja brez shranjevanja stanja (ker je stanje v oddaljenem shranjevanju). Sodobne aplikacije so zasnovane od samega za\u010detka upo\u0161tevajo\u010d ta dejavnik. Na splo\u0161no je vsaka sodobna aplikacija, ki obdeluje podatke razli\u010dnih vrst (dnevniki, metapodatki, blobi itd.), zgrajena po obla\u010dno usmerjeni paradigmi, kjer se stanje prenese v posebno programsko opremo, namenjeno shranjevanju. <\/p>\n<p><i><b>Kontejnerski pristop s shranjevanjem stanja prisili celotno to paradigmo, da se vrne nazaj to\u010dno tja, kjer se je za\u010dela! <\/b><\/i><\/p>\n<p>Pri uporabi POSIX vmesnikov za shranjevanje podatkov aplikacije delujejo tako, kot da bi ohranjale stanje, kar jih oddaljuje od najpomembnej\u0161ih na\u010del oblikovanja v oblaku, tj. mo\u017enosti prilagajanja velikosti delovnih tokov aplikacije glede na prihajajo\u010do obremenitev, premikanja na nov vozli\u0161\u010de takoj, ko trenutno vozli\u0161\u010de odpove, in tako naprej.<\/p>\n<p>Ko se natan\u010dneje osredoto\u010dimo na to situacijo, ugotovimo, da se pri izbiri shranjevanja podatkov znova in znova soo\u010damo z dilemo \"POSIX proti REST API\", VENDAR s dodatnim ote\u017enjem te\u017eav POSIX, ki izhajajo iz porazdeljene narave okolij Kubernetes. Zlasti,<\/p>\n<ul>\n<li><b>POSIX pripoveden<\/b>: semantika POSIX zahteva, da se z vsako operacijo pove\u017eejo metapodatki in opisniki datotek, ki pomagajo ohranjati stanje operacije. To privede do znatnih stro\u0161kov, ki nimajo nobene resni\u010dne vrednosti. API-ji za shranjevanje objektov, zlasti S3 API, so se znebili teh zahtev, kar omogo\u010da aplikaciji, da izvede dejanje in nato \"pozabi\" na klic. Odgovor sistema za shranjevanje podatkov pove, ali je bila ta operacija uspe\u0161no zaklju\u010dena ali ne. V primeru neuspeha lahko aplikacija izvede ponovni poskus.<\/li>\n<li><b>Omre\u017ene omejitve<\/b>: V porazdeljenem sistemu je predvideno, da lahko obstaja ve\u010d aplikacij, ki posku\u0161ajo zapisati podatke na isti prilo\u017een nosilec. Zato ne le, da se aplikacije med seboj borijo za pasovno \u0161irino (da bi posredovale podatke na nosilec), temve\u010d se tudi sama sistema shranjevanja podatkov bori za to pasovno \u0161irino, razdeljuje podatke po fizi\u010dnih diskih. Zaradi besedne razsipnosti POSIX se \u0161tevilo omre\u017enih klicev pove\u010da ve\u010dkrat. Po drugi strani pa S3 API zagotavlja jasno lo\u010ditev omre\u017enih klicev med tistimi, ki prihajajo od stranke do stre\u017enika, in tistimi, ki se dogajajo znotraj stre\u017enika.<\/li>\n<li><b>Sigurnost<\/b>: Model varnosti POSIX predvideva aktivno sodelovanje \u010dloveka: skrbniki konfigurirajo specifi\u010dne ravni dostopa za vsakega uporabnika ali skupino. Tak\u0161na paradigma se te\u017eko prilagodi obla\u010dnemu svetu. Sodobne aplikacije so odvisne od modelov varnosti, ki temeljijo na API-ju, kjer se pravice dostopa dolo\u010dajo kot niz politik, dodeljujejo se servisni ra\u010duni, za\u010dasni poverilniki itd.<\/li>\n<li><b>Upravljivost<\/b>: Kontejnerji s shranjevanjem stanja prina\u0161ajo dolo\u010dene stro\u0161ke, povezane z upravljanjem. Gre za sinhronizacijo vzporednega dostopa do podatkov, zagotavljanje doslednosti podatkov, vse to zahteva skrbno premislek o tem, katere vzorce dostopa do podatkov uporabiti. Treba je namestiti, nadzorovati in konfigurirati dodatne programe, ne govorimo \u017ee o dodatnem delu, ki ga je treba vlo\u017eiti v razvoj.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Vmesnik kontejnerskega shranjevanja podatkov<\/h4>\n<p>\nMedtem ko je vmesnik kontejnerskega shranjevanja podatkov (CSI) odli\u010dno pomagal pri \u0161irjenju ravni volumenov Kubernetes, delno prenesejo\u010dega na zunanje dobavitelje shranjevanja podatkov, je hkrati slu\u010dajno prispeval k prepri\u010danju, da je kontejnerski pristop s shranjevanjem stanja priporo\u010dena metoda shranjevanja podatkov v Kubernetes.<\/p>\n<p>CSI je bil razvit kot standard za zagotavljanje poljubnih sistemov blokovnega in datote\u010dnega shranjevanja za dedi\u0161\u010dinske aplikacije pri delu s Kubernetes. In kot je bilo prikazano v tem \u010dlanku, je edina situacija, v kateri je kontejnerski pristop s shranjevanjem stanja (in CSI v svoji trenutni obliki) smiselna, kadar je sama aplikacija dedi\u0161\u010dinski sistem, v katerem ni mogo\u010de dodati podpore za API sistemov objektnega shranjevanja podatkov.<\/p>\n<p>Pomembno je razumeti, da ob uporabi CSI v njegovi trenutni obliki, torej ob montiranju volumenov pri delu s sodobnimi aplikacijami, naletimo na pribli\u017eno enake te\u017eave, kot so se pojavile v sistemih, kjer je shranjevanje podatkov organizirano v slogu POSIX.<\/p>\n<h4>Bolj kakovosten pristop<\/h4>\n<p>\nV tem primeru je pomembno razumeti, da ve\u010dina aplikacij sama po sebi ni zasnovana za delo z ohranjanjem ali brez ohranjanja stanja. Tak\u0161no vedenje je odvisno od splo\u0161ne arhitekture sistema in konkretnih mo\u017enosti, izbranih pri na\u010drtovanju. Malo se bomo pogovorili o aplikacijah, ki ohranjajo stanje.<\/p>\n<p>Na splo\u0161no lahko vse podatke aplikacij razdelimo v ve\u010d \u0161irokih kategoriij:<\/p>\n<ul>\n<li>Podatki o dnevnikih<\/li>\n<li>Podatki o \u010dasovnih \u017eigih<\/li>\n<li>Podatki o transakcijah<\/li>\n<li>Metapodatki<\/li>\n<li>Slikovni kontejnrji<\/li>\n<li>Podatki o blobih (velikih binarnih objektih)<\/li>\n<\/ul>\n<p>\nVse te vrste podatkov se odli\u010dno podpirajo na sodobnih platformah za shranjevanje podatkov, in obstaja ve\u010d obla\u010dno usmerjenih platform, prilagojenih za dostavljanje podatkov v vsakem od teh specifi\u010dnih formatov. Na primer, podatki o transakcijah in metapodatki so lahko shranjeni v sodobni obla\u010dno usmerjeni bazi podatkov, kot sta CockroachDB, YugaByte itd. Slikovni kontejnri ali podatki o blobih lahko shranimo v MinIO-ju osnovani docker registru. Podatki o \u010dasovnih \u017eigih se lahko shranijo v bazo podatkov \u010dasovnih serij, kot je InfluxDB itd. Ne bomo se spu\u0161\u010dali v podrobnosti vsake vrste podatkov in pripadajo\u010dih aplikacij, ampak osnovna ideja je, da se izognemo trajnemu shranjevanju podatkov, ki temelji na lokalnem montiranju diskov.<\/p>\n<p><img decoding=\"async\" alt=\"Vzorci shranjevanja podatkov v Kubernetesu\" src=\"\/wp-content\/uploads\/2020\/02\/8e39996ef159f09915802549d4e8ecd5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoleg tega se pogosto izka\u017ee, da je u\u010dinkovito nuditi raven za\u010dasnega predpomnjenja, ki slu\u017ei aplikacijam kot nekak\u0161no shranjevanje za\u010dasnih datotek, vendar aplikacije ne bi smele biti odvisne od te ravni kot od vira resnice.<\/p>\n<h4>Shranjevanje za aplikacije z ohranjanjem stanja<\/h4>\n<p>\nMedtem ko je v ve\u010dini primerov koristno ohranjati aplikacije brez ohranjanja stanja, morajo tiste aplikacije, ki so namenjene shranjevanju podatkov \u2013 kot so baze podatkov, objektna shranjevanja, shranjevanja klju\u010d-vrednost \u2013 ohranjati stanje. Poglejmo, zakaj te aplikacije name\u0161\u010dajo na Kubernetes. Kot primer bomo vzeli MinIO, vendar so podobna na\u010dela uporabna tudi za katere koli druge velike obla\u010dno usmerjene sisteme shranjevanja podatkov.<\/p>\n<p>Obla\u010dno usmerjene aplikacije so zasnovane za maksimalno u\u010dinkovito izkori\u0161\u010danje prilagodljivosti, zna\u010dilne za kontejnere. To pomeni, da ne predvidevajo nobenega okolja, v katerem bodo name\u0161\u010dene. Na primer, MinIO uporablja notranji mehanizem za redundantno kodiranje (erasure coding), ki zagotavlja sistemu ustrezno odpornost, da ostane delujo\u010d tudi ob okvari polovice diskov. Poleg tega MinIO upravlja celovitost in varnost podatkov z lastno hashe\u0161njo in \u0161ifriranjem na strani stre\u017enika.<\/p>\n<p>Za tak\u0161ne obla\u010dno usmerjene aplikacije so lokalni persistentni volumni (PV) najbolj primerni kot rezervno skladi\u0161\u010de. Lokalni PV omogo\u010da shranjevanje surovih podatkov, medtem ko aplikacije, ki delujejo na teh PV, samostojno zbirajo informacije, ki omogo\u010dajo skaliranje podatkov in upravljanje rasto\u010dih zahtev po podatkih.<\/p>\n<p>Taj pristop je veliko preprostej\u0161i in se bistveno bolje skalira v primerjavi s PV, ki temeljijo na CSI, ki v sistem prina\u0161ajo lastne ravni upravljanja podatkov in redundance; te\u017eava je v tem, da ta raven obi\u010dajno konfliktira z aplikacijami, zasnovanimi po na\u010delu ohranjanja stanja.<\/p>\n<h4>Zanesljiv premik k lo\u010devanju podatkov od izra\u010dunov<\/h4>\n<p>\nV tem \u010dlanku smo se pogovarjali o tem, kako se aplikacije preusmerjajo na delovanje brez ohranjanja stanja, oziroma, druga\u010de povedano, shranjevanje podatkov je lo\u010deno od izra\u010dunov nad njimi. Na koncu razmislimo o nekaj resni\u010dnih primerih te usmeritve.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/spark.apache.org\/\">Spark<\/a><\/noindex>, znana platforma za analizo podatkov, je bila tradicionalno uporabljena s ohranjanjem stanja in name\u0161\u010danjem v datote\u010dni sistem HDFS. Vendar pa se, ko se Spark seli v obla\u010dno usmerjen svet, ta platforma vse bolj uporablja brez ohranjanja stanja z uporabo `s3a`. Spark uporablja s3a za prenos stanja v druge sisteme, medtem ko samotne kontejnerje Spark delujejo v celoti brez ohranjanja stanja. Drugi veliki podjetni\u0161ki igralci na podro\u010dju analitike velikih podatkov, zlasti <noindex><a rel=\"nofollow\" href=\"https:\/\/www.vertica.com\/docs\/9.2.x\/HTML\/Content\/Authoring\/Eon\/Architecture.htm\">Vertica<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/min.io\/resources\/docs\/Teradata-solution-brief.pdf\">Teradata<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.pivotal.io\/partners\/minio-greenplum\/using.html\">Greenplum<\/a><\/noindex> prav tako prehajajo k delu z lo\u010devanjem shranjevanja podatkov in izra\u010dunov nad njimi.<\/p>\n<p>Podobni vzorci se pojavljajo tudi na drugih velikih analiti\u010dnih platformah, med katerimi so Presto, Tensorflow to R, Jupyter. Z izvozom stanja v oddaljene obla\u010dne sisteme za shranjevanje podatkov je upravljanje va\u0161ega aplikacije in njeno \u0161irjenje veliko la\u017eje. Poleg tega to spodbuja prenosljivost aplikacije v razli\u010dna okolja.<br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/490180\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u041d\u0430\u043f\u043e\u043c\u0438\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0432\u044b\u0448\u043b\u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u0430\u044f \u0447\u0440\u0435\u0437\u0432\u044b\u0447\u0430\u0439\u043d\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u0438 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043a\u043d\u0438\u0433\u0430 \u043e \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u0430\u0445 Kubernetes. \u041d\u0430\u0447\u0438\u043d\u0430\u043b\u043e\u0441\u044c \u0432\u0441\u0435 \u0435\u0449\u0435 \u0441 &quot;\u041f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432&quot; \u0411\u0440\u0435\u043d\u0434\u0430\u043d\u0430 \u0411\u0435\u0440\u043d\u0441\u0430, \u0438, \u0432\u043f\u0440\u043e\u0447\u0435\u043c, \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u044d\u0442\u043e\u043c \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0435 \u0443 \u043d\u0430\u0441 \u043a\u0438\u043f\u0438\u0442. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0436\u0435 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0432\u0430\u043c \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u044c\u044e \u0438\u0437 \u0431\u043b\u043e\u0433\u0430 MinIO, \u043a\u0440\u0430\u0442\u043a\u043e \u0438\u0437\u043b\u0430\u0433\u0430\u044e\u0449\u0443\u044e \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438 \u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0443 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u043e\u0432 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Kubernetes. Kubernetes \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":71859,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-71858","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.4 - aioseo.com -->\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\/sl\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\u041f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Kubernetes | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-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-02-28T18:00:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:09+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\udd47Vzorci shranjevanja podatkov v Kubernetesu | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\u041f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Kubernetes | ProHoster","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-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-02-28T18:00:08+00:00","article:modified_time":"2020-03-03T13:14:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"71858","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 18:55:27","updated":"2022-09-27 18:57:08","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/71858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=71858"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/71858\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/71859"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=71858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=71858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=71858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}