{"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\/sv\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","title":{"rendered":"M\u00f6nster f\u00f6r datalagring i Kubernetes","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=\"M\u00f6nster f\u00f6r datalagring i Kubernetes\" src=\"\/wp-content\/uploads\/2020\/02\/148744e73101d47e7a5a76bdd3bb57e1.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nHej, Habr!<\/p>\n<p>Vi p\u00e5minner om att vi har sl\u00e4ppt en ny, extremt intressant och anv\u00e4ndbar <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/new\/product\/patterny-kubernetes-shablony-razrabotki-sobstvennyh-oblachnyh-prilozheniy\">en bok<\/a><\/noindex> \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;<noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/raspredelennye-sistemy-patterny-proektirovaniya\">M\u00f6nster<\/a><\/noindex>&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 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/new\/product\/kubernetes-dlya-devops-razvertyvanie-zapusk-i-masshtabirovanie-v-oblake\">intensivt<\/a><\/noindex>. Idag erbjuder vi dig att l\u00e4sa ett inl\u00e4gg fr\u00e5n MinIO:s blogg som kortfattat redog\u00f6r f\u00f6r trenderna och specifikationen av datalagringsm\u00f6nster i Kubernetes.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Kubernetes har fundamentalt f\u00f6r\u00e4ndrat de traditionella m\u00f6nstren f\u00f6r utveckling och distribution av applikationer. Teamet kan nu ta bara n\u00e5gra dagar f\u00f6r att utveckla, testa och distribuera en applikation \u2013 i olika milj\u00f6er, allt inom Kubernetes-kluster. Ett s\u00e5dant arbete med tidigare generationers teknik tog vanligtvis flera veckor, om inte m\u00e5nader.<\/p>\n<p>Denna acceleration blev m\u00f6jlig tack vare den abstraktion som Kubernetes erbjuder \u2014 det vill s\u00e4ga, tack vare att Kubernetes sj\u00e4lv hanterar interaktionen med de l\u00e5gniv\u00e5detaljer av fysiska eller virtuella maskiner, vilket g\u00f6r att anv\u00e4ndarna kan specificera bland annat den \u00f6nskade processorn, den \u00f6nskade m\u00e4ngden minne och antalet instanser av containrar. Eftersom en enorm gemenskap \u00e4r engagerad i att st\u00f6dja Kubernetes och anv\u00e4ndningen av Kubernetes st\u00e4ndigt v\u00e4xer, leder den med stor marginal bland alla plattformar f\u00f6r orkestrering av containrar.<\/p>\n<p><i><b>I takt med att anv\u00e4ndningen av Kubernetes \u00f6kar, v\u00e4xer ocks\u00e5 f\u00f6rvirringen kring de datalagringsm\u00f6nster som anv\u00e4nds i den.<\/b><\/i>.<\/p>\n<p>Vid den allm\u00e4nna konkurrensen om en bit av kakan (dvs. datalagring), n\u00e4r det kommer till datalagring, drunknar signalen i ett starkt brus.<br \/>\nKubernetes representerar den moderna modellen f\u00f6r utveckling och distribution av applikationer samt hanteringen av dem. Denna moderna modell frikopplar datalagring fr\u00e5n ber\u00e4kningar. F\u00f6r att helt f\u00f6rst\u00e5 denna frikoppling i samband med Kubernetes \u00e4r det ocks\u00e5 n\u00f6dv\u00e4ndigt att f\u00f6rst\u00e5 vad som menas med applikationer som arbetar med och utan tillst\u00e5nd, samt hur datalagring passar in i detta. H\u00e4r har REST API-ansatsen, som anv\u00e4nds av S3, tydliga f\u00f6rdelar j\u00e4mf\u00f6rt med den POSIX\/CSI-ansats som \u00e4r typisk f\u00f6r andra l\u00f6sningar.<\/p>\n<p>I den h\u00e4r artikeln kommer vi att prata om m\u00f6nster f\u00f6r datalagring i Kubernetes och vi kommer s\u00e4rskilt att ber\u00f6ra diskussionen om applikationer som arbetar med och utan best\u00e5ende tillst\u00e5nd, f\u00f6r att verkligen f\u00f6rst\u00e5 vad som skiljer dem \u00e5t och varf\u00f6r det \u00e4r viktigt. H\u00e4refter kommer applikationer och de m\u00f6nster f\u00f6r datalagring som anv\u00e4nds i dem att diskuteras utifr\u00e5n b\u00e4sta praxis f\u00f6r arbete med containrar och Kubernetes.<\/p>\n<h4>Containrar utan best\u00e5ende tillst\u00e5nd<\/h4>\n<p>\nContainrar \u00e4r per definition l\u00e4tta och efem\u00e4ra. De kan l\u00e4tt stoppas, tas bort eller distribueras p\u00e5 en annan nod \u2013 allt detta tar bara n\u00e5gra sekunder. I stora system f\u00f6r orkestrering av containrar sker s\u00e5dana operationer hela tiden, och anv\u00e4ndarna l\u00e4gger knappt m\u00e4rke till dessa f\u00f6r\u00e4ndringar. Emellertid \u00e4r flyttningar m\u00f6jliga endast om containern inte har n\u00e5gra beroenden fr\u00e5n den nod d\u00e4r den \u00e4r placerad. S\u00e5dana containrar s\u00e4gs arbeta <i>utan best\u00e5ende tillst\u00e5nd<\/i>.<\/p>\n<h4>Containrar med best\u00e5ende tillst\u00e5nd<\/h4>\n<p>\nOm en container lagrar data p\u00e5 lokalt anslutna enheter (eller p\u00e5 blockenheter), m\u00e5ste datalagret som det ligger p\u00e5 flyttas till en ny nod tillsammans med sj\u00e4lva containern \u2013 vid ett fel. Detta \u00e4r viktigt, eftersom annars kan inte applikationen som k\u00f6rs i containern fungera korrekt, eftersom den m\u00e5ste komma \u00e5t data som lagras p\u00e5 lokala medium. S\u00e5dana containrar s\u00e4gs arbeta <i>med best\u00e5ende tillst\u00e5nd<\/i>.<\/p>\n<p>Ur en rent teknisk synvinkel kan containrar med best\u00e5ende tillst\u00e5nd ocks\u00e5 flyttas till andra noder. Detta uppn\u00e5s vanligtvis genom distribuerade filsystem eller blocklagringssystem knutna till alla noder d\u00e4r containrarna k\u00f6rs. P\u00e5 s\u00e5 s\u00e4tt f\u00e5r containrarna \u00e5tkomst till volymer f\u00f6r best\u00e5ende datalagring, och informationen lagras p\u00e5 diskar som finns spridda \u00f6ver hela n\u00e4tverket. Denna metod kommer jag att kalla \"<i>containeranslaget med best\u00e5ende tillst\u00e5nd<\/i>\", och i resten av artikeln kommer jag att referera till det p\u00e5 detta s\u00e4tt f\u00f6r enhetlighet.<\/p>\n<p><img decoding=\"async\" alt=\"M\u00f6nster f\u00f6r datalagring i Kubernetes\" src=\"\/wp-content\/uploads\/2020\/02\/a5546db15801389d58476f50c8c66803.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVid en typisk containeransats med beh\u00e5llning av tillst\u00e5nd binds alla applikationens pods till ett distribuerat filsystem \u2013 det blir en slags delad lagring d\u00e4r all applikationsdata finns. \u00c4ven om det kan finnas vissa variationer, \u00e4r detta en h\u00f6g niv\u00e5 av tillv\u00e4gag\u00e5ngss\u00e4tt.<\/p>\n<p>L\u00e5t oss nu utforska varf\u00f6r beh\u00e5llande av tillst\u00e5nd i en containeransats i en molncentrerad v\u00e4rld \u00e4r ett antipattern.<\/p>\n<h4>Molncentrerad applikationsdesign<\/h4>\n<p>\nTraditionellt anv\u00e4nde applikationer databaser f\u00f6r strukturerad informationslagring och lokala enheter eller distribuerade filsystem d\u00e4r all icke-strukturerad eller halvstrukturerad data sparades. I takt med att volymen av icke-strukturerad data \u00f6kade, ins\u00e5g utvecklarna att POSIX var alltf\u00f6r \"pratsam\", med betydande kostnader och, i slut\u00e4ndan, hindrade applikationens funktionalitet n\u00e4r det kom till verkligt stora skalor.<\/p>\n<p>Detta bidrog huvudsakligen till framv\u00e4xten av en ny datalagringsstandard, det vill s\u00e4ga molncentrerade lagringssystem som fr\u00e4mst fungerar via REST API och avlastar applikationen fr\u00e5n b\u00f6rdan av att underh\u00e5lla lokal datalagring. I det h\u00e4r fallet arbetar applikationen faktiskt i ett tillst\u00e5ndsl\u00f6st l\u00e4ge (eftersom tillst\u00e5ndet finns i det fj\u00e4rrlagrade systemet). Moderna applikationer byggs fr\u00e5n grunden med h\u00e4nsyn till denna faktor. Generellt sett \u00e4r varje modern applikation som hanterar data av olika slag (loggar, metadata, blobs etc.) konstruerad utifr\u00e5n en molncentrerad paradigm d\u00e4r tillst\u00e5ndet flyttas till ett specifikt programvarusystem avsett f\u00f6r dess lagring. <\/p>\n<p><i><b>Den containerbaserade ansatsen med beh\u00e5llning av tillst\u00e5nd tvingar hela denna paradigm att \u00e5terv\u00e4nda till exakt det d\u00e4r det b\u00f6rjade! <\/b><\/i><\/p>\n<p>N\u00e4r man anv\u00e4nder POSIX-gr\u00e4nssnitt f\u00f6r lagring av data fungerar applikationerna p\u00e5 samma s\u00e4tt som om de sparade tillst\u00e5nd, och p\u00e5 grund av detta avviker de fr\u00e5n de mest grundl\u00e4ggande postulaten f\u00f6r molnorienterad design, det vill s\u00e4ga m\u00f6jligheten att variera storlekarna p\u00e5 applikationens arbetsfl\u00f6den beroende p\u00e5 den inkommande belastningen, flytta till en ny nod s\u00e5 snart den aktuella noden misslyckas, och s\u00e5 vidare.<\/p>\n<p>N\u00e4r vi granskar denna situation mer noggrant uppt\u00e4cker vi att vi vid valet av datalagring g\u00e5ng p\u00e5 g\u00e5ng st\u00e4lls inf\u00f6r dilemmat \"POSIX kontra REST API\", MEN med en ytterligare f\u00f6rv\u00e4rring av POSIX-problemen, vilket beror p\u00e5 den distribuerade naturen hos Kubernetes-milj\u00f6er. Specifikt,<\/p>\n<ul>\n<li><b>POSIX pratsam<\/b>: semantiken f\u00f6r POSIX kr\u00e4ver att associera metadata och filhandtag med varje operation, vilket hj\u00e4lper till att uppr\u00e4tth\u00e5lla operationens tillst\u00e5nd. Detta leder till betydande kostnader utan n\u00e5got verkligt v\u00e4rde. API:er f\u00f6r objektlagring, s\u00e4rskilt S3 API, har tagit bort dessa krav, vilket g\u00f6r att applikationen kan fungera och sedan \"gl\u00f6mma\" anropet. Svar fr\u00e5n datalagringssystemet indikerar om denna \u00e5tg\u00e4rd utf\u00f6rdes framg\u00e5ngsrikt eller inte. Vid misslyckande kan applikationen g\u00f6ra ett f\u00f6rs\u00f6k igen.<\/li>\n<li><b>N\u00e4tverksbegr\u00e4nsningar<\/b>: I ett distribuerat system inneb\u00e4r det att det kan finnas m\u00e5nga applikationer som f\u00f6rs\u00f6ker skriva data p\u00e5 samma bifogade lagringsmedium. D\u00e4rf\u00f6r, inte bara kommer applikationer att konkurrera med varandra om bandbredd (f\u00f6r att skicka data till lagringsmediet), utan sj\u00e4lva lagringssystemet kommer ocks\u00e5 att konkurrera om denna bandbredd, samtidigt som det distribuerar data \u00f6ver fysiska diskar. P\u00e5 grund av POSIX:s pratighet \u00f6kar antalet n\u00e4tverksanrop flera g\u00e5nger. \u00c5 andra sidan erbjuder S3 API en tydlig uppdelning av n\u00e4tverksanrop mellan de som kommer fr\u00e5n klienten till servern och de som f\u00f6rekommer inom servern.<\/li>\n<li><b>S\u00e4kerhet<\/b>: POSIX-s\u00e4kerhetsmodellen \u00e4r utformad f\u00f6r aktivt m\u00e4nniskoinvolvering: administrat\u00f6rer konfigurerar specifika \u00e5tkomstniv\u00e5er f\u00f6r varje anv\u00e4ndare eller grupp. En s\u00e5dan paradigm \u00e4r sv\u00e5r att anpassa till en molnorienterad v\u00e4rld. Moderna applikationer \u00e4r beroende av s\u00e4kerhetsmodeller kopplade till API:er, d\u00e4r \u00e5tkomstr\u00e4ttigheter definieras som en upps\u00e4ttning policyer, tj\u00e4nstekonton, tillf\u00e4lliga autentiseringar osv.<\/li>\n<li><b>Hantera<\/b>: Tillst\u00e5ndshanterande containrar medf\u00f6r vissa kostnader i samband med hanteringen. Det handlar om att synkronisera parallell \u00e5tkomst till data, att s\u00e4kerst\u00e4lla datakonsistens \u2013 allt detta kr\u00e4ver att noggrant \u00f6verv\u00e4ga vilka dat\u00e5tkomstm\u00f6nster som anv\u00e4nds. Ytterligare program m\u00e5ste installeras, kontrolleras och konfigureras, f\u00f6r att inte n\u00e4mna den extra arbetsinsats som kr\u00e4vs f\u00f6r utveckling.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Containernas datalagringsgr\u00e4nssnitt<\/h4>\n<p>\nMedan det containerbaserade datalagringsgr\u00e4nssnittet (CSI) har bidragit till spridningen av volymlagret i Kubernetes, delvis genom att \u00f6verf\u00f6ra det till tredjeparts datalagringsleverant\u00f6rer, har det ocks\u00e5 oavsiktligt bidragit till \u00f6vertygelsen om att en containerbaserad tillst\u00e5ndshantering \u00e4r den rekommenderade metoden f\u00f6r datalagring i Kubernetes.<\/p>\n<p>CSI utvecklades som en standard f\u00f6r att tillhandah\u00e5lla godtyckliga block- och filbaserade datalagringssystem till \u00e4rvda applikationer i samband med Kubernetes. Och som visats i denna artikel \u00e4r den enda situation d\u00e4r en containerbaserad tillst\u00e5ndshantering (och CSI i dess nuvarande form) \u00e4r rimlig n\u00e4r sj\u00e4lva applikationen \u00e4r en \u00e4rvd system d\u00e4r det \u00e4r om\u00f6jligt att l\u00e4gga till st\u00f6d f\u00f6r API:er f\u00f6r objektlagring.<\/p>\n<p>Det \u00e4r viktigt att f\u00f6rst\u00e5 att n\u00e4r vi anv\u00e4nder CSI i dess nuvarande form, det vill s\u00e4ga monterar volymer n\u00e4r vi arbetar med moderna applikationer, kommer vi att st\u00f6ta p\u00e5 ungef\u00e4r samma problem som uppstod i system d\u00e4r datalagringen organiserades i POSIX-stil.<\/p>\n<h4>En mer kvalitativ strategi<\/h4>\n<p>\nI det h\u00e4r fallet \u00e4r det viktigt att f\u00f6rst\u00e5 att de flesta applikationer i grunden inte \u00e4r designade f\u00f6r att fungera med enhetligt tillst\u00e5nd eller utan bevarande av tillst\u00e5nd. Detta beteende beror p\u00e5 systemets \u00f6vergripande arkitektur och de specifika val som gjorts vid designen. L\u00e5t oss prata lite om applikationer som bevarar tillst\u00e5nd.<\/p>\n<p>I princip kan alla applikationsdata delas in i flera breda typer:<\/p>\n<ul>\n<li>Loggdata<\/li>\n<li>Tidsst\u00e4mpeldatan<\/li>\n<li>Transaktionsdata<\/li>\n<li>Metadat<\/li>\n<li>Containermallar<\/li>\n<li>Blobdata (stora bin\u00e4ra objekt)<\/li>\n<\/ul>\n<p>\nAlla dessa datatyper st\u00f6ds mycket v\u00e4l p\u00e5 moderna datalagringsplattformar, och det finns flera molnbaserade plattformar anpassade f\u00f6r att leverera data i vart och ett av dessa specifika format. Till exempel kan transaktionsdata och metadata finnas i en modern molnbaserad databas, s\u00e5som CockroachDB, YugaByte osv. Containermallar eller blobdata kan lagras i en docker-register baserat p\u00e5 MinIO. Tidsst\u00e4mpeldatan kan lagras i en tidsseriedatabas, exempelvis InfluxDB osv. Vi kommer inte att g\u00e5 in p\u00e5 detaljer om varje datatyp och motsvarande applikationer h\u00e4r, men den \u00f6vergripande id\u00e9n \u00e4r att undvika persistent datalagring baserat p\u00e5 lokal montering av diskar.<\/p>\n<p><img decoding=\"async\" alt=\"M\u00f6nster f\u00f6r datalagring i Kubernetes\" src=\"\/wp-content\/uploads\/2020\/02\/8e39996ef159f09915802549d4e8ecd5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDessutom visar det sig ofta vara effektivt att tillhandah\u00e5lla en niv\u00e5 av tillf\u00e4llig caching, som fungerar som ett slags lagring f\u00f6r tempor\u00e4ra filer f\u00f6r applikationer, men applikationerna b\u00f6r inte vara beroende av denna niv\u00e5 som en sanningens k\u00e4lla.<\/p>\n<h4>Lagring f\u00f6r applikationer med tillst\u00e5nd<\/h4>\n<p>\nN\u00e4r det i de flesta fall \u00e4r anv\u00e4ndbart att h\u00e5lla applikationer utan tillst\u00e5nd, b\u00f6r de applikationer som \u00e4r avsedda f\u00f6r datalagring \u2013 som databaser, objektlagringssystem, nyckel-v\u00e4rde-lagringssystem \u2013 bevara tillst\u00e5nd. L\u00e5t oss f\u00f6rst\u00e5 varf\u00f6r dessa applikationer deployeras p\u00e5 Kubernetes. Som exempel kan vi ta MinIO, men liknande principer g\u00e4ller f\u00f6r alla andra stora molnbaserade datalagringssystem.<\/p>\n<p>Molnbaserade applikationer designas f\u00f6r att maximalt utnyttja flexibiliteten hos containrar. Detta inneb\u00e4r att inga antaganden g\u00f6rs om den milj\u00f6 d\u00e4r de kommer att distribueras. Till exempel anv\u00e4nder MinIO en inbyggd mekanism f\u00f6r redundant kodning (erasure coding), vilket ger systemet tillr\u00e4cklig motst\u00e5ndskraft f\u00f6r att f\u00f6rbli operativt \u00e4ven om h\u00e4lften av diskarna g\u00e5r ner. Dessutom hanterar MinIO integriteten och s\u00e4kerheten hos data genom att anv\u00e4nda egen hashning och kryptering p\u00e5 serversidan.<\/p>\n<p>F\u00f6r s\u00e5dana molnbaserade applikationer \u00e4r lokala persistenta volymer (PV) det mest praktiska valet som backup-lagringsl\u00f6sning. En lokal PV ger m\u00f6jlighet att lagra r\u00e5data, medan applikationer som k\u00f6rs ovanp\u00e5 dessa PV: er sj\u00e4lvst\u00e4ndigt samlar information f\u00f6r att m\u00f6jligg\u00f6ra dataskalering och hantering av \u00f6kande datakrav.<\/p>\n<p>Denna strategi \u00e4r mycket enklare och skalar betydligt b\u00e4ttre j\u00e4mf\u00f6rt med PV baserade p\u00e5 CSI, som introducerar sina egna datastyrnings- och redundansniv\u00e5er i systemet; problemet \u00e4r att dessa niv\u00e5er vanligtvis krockar med applikationer designade f\u00f6r att vara stateful.<\/p>\n<h4>S\u00e4ker r\u00f6relse mot avkopplade data fr\u00e5n ber\u00e4kningar<\/h4>\n<p>\nI denna artikel har vi diskuterat hur applikationer omformuleras f\u00f6r att arbeta utan att vara stateful, eller med andra ord, hur datalagring avskiljs fr\u00e5n ber\u00e4kningar. Avslutningsvis kommer vi att titta p\u00e5 n\u00e5gra verkliga exempel p\u00e5 denna trend.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/spark.apache.org\/\">Spark<\/a><\/noindex>, den ber\u00f6mda plattformen f\u00f6r dataanalys, har traditionellt anv\u00e4nts med stateful drifts\u00e4ttning i filsystemet HDFS. Men i takt med att Spark g\u00e5r mot en molnbaserad v\u00e4rld anv\u00e4nds denna plattform alltmer utan stateful hantering med hj\u00e4lp av `s3a`. Spark anv\u00e4nder s3a f\u00f6r att \u00f6verf\u00f6ra tillst\u00e5nd till andra system, medan sj\u00e4lva Spark-containrarna arbetar helt utan att spara tillst\u00e5nd. Andra stora akt\u00f6rer inom analys av stora data, s\u00e4rskilt <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> , \u00f6verg\u00e5r ocks\u00e5 till att arbeta med separation av datalagring och ber\u00e4kningar.<\/p>\n<p>Liknande m\u00f6nster \u00e5terfinns ocks\u00e5 p\u00e5 andra stora analytiska plattformar, s\u00e5som Presto, Tensorflow till R, Jupyter. Genom att exportera tillst\u00e5ndet till fj\u00e4rrmolnlagringssystem blir det mycket enklare att hantera din applikation och skala den. Dessutom bidrar detta till applikationens portabilitet i olika milj\u00f6er.<br \/>\n<br \/>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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\udd47Data lagringsm\u00f6nster i Kubernetes | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/71858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=71858"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/71858\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/71859"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=71858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=71858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=71858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}