{"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\/fr\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","title":{"rendered":"Mod\u00e8les de stockage des donn\u00e9es dans 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=\"Mod\u00e8les de stockage des donn\u00e9es dans Kubernetes\" src=\"\/wp-content\/uploads\/2020\/02\/148744e73101d47e7a5a76bdd3bb57e1.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nSalut, Habr !<\/p>\n<p>Nous vous rappelons que nous avons publi\u00e9 un autre livre extr\u00eamement int\u00e9ressant et utile <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/new\/product\/patterny-kubernetes-shablony-razrabotki-sobstvennyh-oblachnyh-prilozheniy\">sur les mod\u00e8les Kubernetes. Tout a commenc\u00e9 avec \"<\/a><\/noindex> sur les mod\u00e8les Kubernetes. Tout a commenc\u00e9 avec \"<noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/all\/product\/raspredelennye-sistemy-patterny-proektirovaniya\">\" de Brendan Burns, et notre travail dans ce segment est d'ailleurs<\/a><\/noindex>\" de Brendan Burns, et d'ailleurs, notre travail dans ce segment a \u00e9t\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/new\/product\/kubernetes-dlya-devops-razvertyvanie-zapusk-i-masshtabirovanie-v-oblake\">. Aujourd'hui, nous vous proposons de lire un article du blog MinIO qui pr\u00e9sente bri\u00e8vement les tendances et les sp\u00e9cificit\u00e9s des mod\u00e8les de stockage des donn\u00e9es dans Kubernetes.<\/a><\/noindex>Kubernetes a fondamentalement chang\u00e9 les mod\u00e8les traditionnels de d\u00e9veloppement et de d\u00e9ploiement d'applications. D\u00e9sormais, une \u00e9quipe peut passer seulement quelques jours \u00e0 d\u00e9velopper, tester et d\u00e9ployer une application dans diff\u00e9rents environnements, le tout au sein de clusters Kubernetes. Ce type de travail avec les technologies des g\u00e9n\u00e9rations pr\u00e9c\u00e9dentes prenait g\u00e9n\u00e9ralement des semaines, voire des mois.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Cette acc\u00e9l\u00e9ration est rendue possible gr\u00e2ce \u00e0 l'abstraction fournie par Kubernetes \u2014 c'est-\u00e0-dire gr\u00e2ce au fait que Kubernetes se charge des interactions avec les d\u00e9tails de bas niveau des machines physiques ou virtuelles, permettant aux utilisateurs de d\u00e9clarer, parmi d'autres param\u00e8tres, le processeur n\u00e9cessaire, la quantit\u00e9 de m\u00e9moire requise, et le nombre d'instances de conteneurs. \u00c9tant donn\u00e9 que le soutien de Kubernetes est assur\u00e9 par une \u00e9norme communaut\u00e9 et que l'adoption de Kubernetes ne cesse de cro\u00eetre, il est de loin le leader parmi toutes les plateformes d'orchestration de conteneurs.<\/p>\n<p>\u00c0 mesure que l'utilisation de Kubernetes s'\u00e9tend, la confusion concernant les mod\u00e8les de stockage des donn\u00e9es appliqu\u00e9s augmente \u00e9galement.<\/p>\n<p><i><b>Dans une comp\u00e9tition g\u00e9n\u00e9rale pour une part de march\u00e9 dans Kubernetes (c'est-\u00e0-dire pour le stockage des donn\u00e9es), lorsqu'il s'agit de parler de stockage de donn\u00e9es, le signal se perd dans un bruit fort.<\/b><\/i>.<\/p>\n<p>Kubernetes incarne un mod\u00e8le moderne de d\u00e9veloppement et de d\u00e9ploiement d'applications, ainsi que de gestion de celles-ci. Ce mod\u00e8le moderne dissocie le stockage des donn\u00e9es des calculs. Pour comprendre pleinement cette dissociation dans le contexte de Kubernetes, il est \u00e9galement n\u00e9cessaire de comprendre ce que sont les applications \u00e0 \u00e9tat et sans \u00e9tat, ainsi que la mani\u00e8re dont cela s'articule avec le stockage des donn\u00e9es. C'est ici que l'approche REST API utilis\u00e9e par S3 pr\u00e9sente des avantages clairs par rapport \u00e0 l'approche POSIX\/CSI, typique d'autres solutions.<br \/>\nKubernetes incarne un mod\u00e8le moderne de d\u00e9veloppement et de d\u00e9ploiement d'applications, ainsi que de leur gestion. Ce mod\u00e8le moderne dissocie le stockage des donn\u00e9es des calculs. Pour comprendre pleinement cette dissociation dans le contexte de Kubernetes, il est \u00e9galement n\u00e9cessaire de comprendre ce que sont les applications qui g\u00e8rent l'\u00e9tat et celles qui ne le g\u00e8rent pas, ainsi que la mani\u00e8re dont cela s'associe au stockage des donn\u00e9es. C'est ici que l'approche REST API, appliqu\u00e9e par S3, pr\u00e9sente des avantages \u00e9vidents par rapport \u00e0 l'approche POSIX\/CSI, caract\u00e9ristique d'autres solutions.<\/p>\n<p>Dans cet article, nous allons parler des sch\u00e9mas de stockage des donn\u00e9es dans Kubernetes et aborderons s\u00e9par\u00e9ment le d\u00e9bat sur les applications fonctionnant avec et sans \u00e9tat, afin de bien comprendre la diff\u00e9rence entre elles et pourquoi elle est importante. Par la suite, nous examinerons les applications et les sch\u00e9mas de stockage des donn\u00e9es qui les concernent \u00e0 la lumi\u00e8re des meilleures pratiques en mati\u00e8re de conteneurs et de Kubernetes.<\/p>\n<h4>Conteneurs sans \u00e9tat<\/h4>\n<p>\nLes conteneurs sont, par nature, l\u00e9gers et \u00e9ph\u00e9m\u00e8res. Ils peuvent \u00eatre arr\u00eat\u00e9s, supprim\u00e9s ou d\u00e9ploy\u00e9s sur un autre n\u0153ud en quelques secondes. Dans un grand syst\u00e8me d'orchestration de conteneurs, ces op\u00e9rations se produisent constamment, et les utilisateurs ne remarquent m\u00eame pas ces changements. Cependant, les d\u00e9placements ne sont possibles que si le conteneur n'a aucune d\u00e9pendance vis-\u00e0-vis du n\u0153ud sur lequel il se trouve. Ces conteneurs sont dits fonctionner <i>sans \u00e9tat<\/i>.<\/p>\n<h4>Conteneurs avec \u00e9tat<\/h4>\n<p>\nSi un conteneur stocke des donn\u00e9es sur des dispositifs locaux connect\u00e9s (ou sur un dispositif de bloc), le stockage o\u00f9 il se trouve devra \u00eatre d\u00e9plac\u00e9 vers un nouveau n\u0153ud avec le conteneur lui-m\u00eame en cas de d\u00e9faillance. C'est crucial, car sinon, l'application ex\u00e9cut\u00e9e dans le conteneur ne pourra pas fonctionner correctement, car elle a besoin d'acc\u00e9der aux donn\u00e9es stock\u00e9es sur des supports locaux. Ces conteneurs sont dits fonctionner <i>avec \u00e9tat<\/i>.<\/p>\n<p>D'un point de vue purement technique, les conteneurs avec \u00e9tat peuvent \u00e9galement \u00eatre d\u00e9plac\u00e9s vers d'autres n\u0153uds. Cela est g\u00e9n\u00e9ralement r\u00e9alis\u00e9 \u00e0 l'aide de syst\u00e8mes de fichiers distribu\u00e9s ou de stockage en r\u00e9seau de blocs attach\u00e9 \u00e0 tous les n\u0153uds sur lesquels les conteneurs fonctionnent. Ainsi, les conteneurs peuvent acc\u00e9der aux volumes pour le stockage persistant des donn\u00e9es, et l'information est stock\u00e9e sur des disques r\u00e9partis sur le r\u00e9seau. J'appellerai cette m\u00e9thode \u00ab<i>approche conteneur avec \u00e9tat<\/i>\u00bb, et je l'appellerai ainsi pour le reste de l'article afin d'assurer une uniformit\u00e9.<\/p>\n<p><img decoding=\"async\" alt=\"Mod\u00e8les de stockage des donn\u00e9es dans Kubernetes\" src=\"\/wp-content\/uploads\/2020\/02\/a5546db15801389d58476f50c8c66803.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDans une approche typique des conteneurs avec \u00e9tat, tous les pods d'application sont attach\u00e9s \u00e0 un syst\u00e8me de fichiers distribu\u00e9 unique - on obtient une sorte de stockage partag\u00e9, o\u00f9 toutes les donn\u00e9es des applications sont rassembl\u00e9es. Bien que des variations soient possibles, c'est une approche de haut niveau.<\/p>\n<p>Voyons maintenant pourquoi l'approche des conteneurs avec \u00e9tat est un anti-mod\u00e8le dans un monde ax\u00e9 sur le cloud.<\/p>\n<h4>Conception d'applications ax\u00e9e sur le cloud<\/h4>\n<p>\nTraditionnellement, les applications utilisaient des bases de donn\u00e9es pour le stockage structur\u00e9 des informations et des disques locaux ou des syst\u00e8mes de fichiers distribu\u00e9s o\u00f9 toutes les donn\u00e9es non structur\u00e9es, voire semi-structur\u00e9es, \u00e9taient d\u00e9pos\u00e9es. \u00c0 mesure que les volumes de donn\u00e9es non structur\u00e9es augmentaient, les d\u00e9veloppeurs ont r\u00e9alis\u00e9 que POSIX \u00e9tait trop 'bavard', entra\u00eenant des co\u00fbts significatifs et, en fin de compte, entravant le fonctionnement des applications lors de la transition vers des \u00e9chelles v\u00e9ritablement larges.<\/p>\n<p>Cela a principalement contribu\u00e9 \u00e0 l'\u00e9mergence d'une nouvelle norme de stockage de donn\u00e9es, \u00e0 savoir les stockages ax\u00e9s sur le cloud, fonctionnant principalement sur la base d'API REST et lib\u00e9rant l'application de l'entretien fastidieux du stockage de donn\u00e9es local. Dans ce cas, l'application fonctionne en mode sans \u00e9tat (puisque l'\u00e9tat se trouve dans un stockage distant). Les applications modernes sont construites d\u00e8s le d\u00e9part en tenant compte de ce facteur. En g\u00e9n\u00e9ral, toute application moderne qui traite des donn\u00e9es de tout type (logs, m\u00e9tadonn\u00e9es, blobs, etc.) est bas\u00e9e sur une parologie ax\u00e9e sur le cloud, o\u00f9 l'\u00e9tat est transf\u00e9r\u00e9 dans un syst\u00e8me logiciel sp\u00e9cifiquement d\u00e9di\u00e9 \u00e0 son stockage. <\/p>\n<p><i><b>L'approche des conteneurs avec \u00e9tat ram\u00e8ne toute cette parologie \u00e0 son point de d\u00e9part ! <\/b><\/i><\/p>\n<p>Lors de l'utilisation des interfaces POSIX pour le stockage des donn\u00e9es, les applications fonctionnent de mani\u00e8re similaire \u00e0 la mani\u00e8re dont elles sauvegardent l'\u00e9tat. Cette approche s'\u00e9loigne des postulats les plus importants de la conception cloud-native, \u00e0 savoir la capacit\u00e9 d'ajuster la taille des flux de travail des applications en fonction de la charge d'entr\u00e9e, de basculer vers un nouveau n\u0153ud d\u00e8s qu'un n\u0153ud actuel \u00e9choue, et ainsi de suite.<\/p>\n<p>En examinant cette situation de plus pr\u00e8s, nous d\u00e9couvrons qu'en choisissant un stockage de donn\u00e9es, nous rencontrons encore et encore le dilemme \u00ab POSIX contre REST API \u00bb, MAIS avec des probl\u00e8mes suppl\u00e9mentaires li\u00e9s \u00e0 POSIX en raison de la nature distribu\u00e9e des environnements Kubernetes. En particulier,<\/p>\n<ul>\n<li><b>POSIX bavard<\/b>: La s\u00e9mantique POSIX exige d'associer des m\u00e9tadonn\u00e9es et des descripteurs de fichiers \u00e0 chaque op\u00e9ration, ce qui aide \u00e0 maintenir l'\u00e9tat de l'op\u00e9ration. Cela entra\u00eene des co\u00fbts significatifs, sans r\u00e9elle valeur ajout\u00e9e. Les API de stockage d'objets, en particulier l'API S3, se sont d\u00e9barrass\u00e9es de ces exigences, permettant \u00e0 l'application d'agir, puis d'\u00ab oublier \u00bb l'appel. La r\u00e9ponse du syst\u00e8me de stockage indique si l'action a \u00e9t\u00e9 ex\u00e9cut\u00e9e avec succ\u00e8s ou non. En cas d'\u00e9chec, l'application peut essayer \u00e0 nouveau.<\/li>\n<li><b>Limitations r\u00e9seau<\/b>: Dans un syst\u00e8me distribu\u00e9, on suppose qu'il peut exister de nombreuses applications essayant d'\u00e9crire des donn\u00e9es sur un m\u00eame support attach\u00e9. Par cons\u00e9quent, non seulement les applications vont rivaliser entre elles pour la bande passante (pour envoyer des donn\u00e9es sur le support), mais le syst\u00e8me de stockage lui-m\u00eame va \u00e9galement rivaliser pour cette bande passante, r\u00e9partissant les donn\u00e9es sur des disques physiques. En raison du caract\u00e8re bavard de POSIX, le nombre d'appels r\u00e9seau augmente de plusieurs fois. D'autre part, l'API S3 fournit une s\u00e9paration claire des appels r\u00e9seau entre ceux qui proviennent du client au serveur et ceux qui se produisent \u00e0 l'int\u00e9rieur du serveur.<\/li>\n<li><b>S\u00e9curit\u00e9<\/b>: Le mod\u00e8le de s\u00e9curit\u00e9 POSIX n\u00e9cessite une participation active de l'utilisateur : les administrateurs configurent des niveaux d'acc\u00e8s sp\u00e9cifiques pour chaque utilisateur ou groupe. Cette approche est difficile \u00e0 adapter \u00e0 un monde ax\u00e9 sur le cloud. Les applications modernes s'appuient sur des mod\u00e8les de s\u00e9curit\u00e9 bas\u00e9s sur des API, o\u00f9 les droits d'acc\u00e8s sont d\u00e9finis comme un ensemble de politiques, des comptes de service sont cr\u00e9\u00e9s, des identifiants temporaires, etc.<\/li>\n<li><b>Gestion<\/b>: Les conteneurs avec \u00e9tat impliquent certains co\u00fbts de gestion. Il s'agit de synchroniser l'acc\u00e8s parall\u00e8le aux donn\u00e9es, d'assurer la coh\u00e9rence des donn\u00e9es, tout cela n\u00e9cessite de r\u00e9fl\u00e9chir attentivement aux mod\u00e8les d'acc\u00e8s aux donn\u00e9es \u00e0 utiliser. Il faut installer, contr\u00f4ler et configurer des programmes suppl\u00e9mentaires, sans parler des efforts suppl\u00e9mentaires consacr\u00e9s au d\u00e9veloppement.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Interface de stockage de conteneurs de donn\u00e9es<\/h4>\n<p>\nAlors que l'interface de stockage de conteneurs (CSI) a bien aid\u00e9 \u00e0 la distribution du niveau des volumes Kubernetes, en le transf\u00e9rant en partie \u00e0 des fournisseurs de stockage tiers, elle a \u00e9galement contribu\u00e9 par inadvertance \u00e0 la conviction que l'approche des conteneurs avec \u00e9tat est la m\u00e9thode recommand\u00e9e pour le stockage de donn\u00e9es dans Kubernetes.<\/p>\n<p>Le CSI a \u00e9t\u00e9 con\u00e7u comme un standard pour offrir des syst\u00e8mes de stockage de donn\u00e9es en bloc et de fichiers \u00e0 des applications h\u00e9rit\u00e9es fonctionnant avec Kubernetes. Et, comme le montre cet article, la seule situation dans laquelle l'approche des conteneurs avec \u00e9tat (et le CSI dans sa forme actuelle) est justifi\u00e9e, c'est lorsque l'application elle-m\u00eame est un syst\u00e8me h\u00e9rit\u00e9 pour lequel il est impossible d'ajouter le support des API de stockage d'objets.<\/p>\n<p>Il est important de comprendre qu'en utilisant le CSI dans sa forme actuelle, c'est-\u00e0-dire en montant des volumes lors de l'utilisation d'applications modernes, nous rencontrerons \u00e0 peu pr\u00e8s les m\u00eames probl\u00e8mes que ceux rencontr\u00e9s dans les syst\u00e8mes o\u00f9 le stockage de donn\u00e9es est organis\u00e9 selon le style POSIX.<\/p>\n<h4>Une approche de meilleure qualit\u00e9<\/h4>\n<p>\nDans ce cas, il est important de comprendre que la plupart des applications ne sont pas con\u00e7ues pour fonctionner avec ou sans \u00e9tat. Ce comportement d\u00e9pend de l'architecture g\u00e9n\u00e9rale du syst\u00e8me et des choix sp\u00e9cifiques faits lors de la conception. Parlons un peu des applications qui conservent l'\u00e9tat.<\/p>\n<p>En principe, toutes les donn\u00e9es des applications peuvent \u00eatre r\u00e9parties en plusieurs types vastes :<\/p>\n<ul>\n<li>Donn\u00e9es de logs<\/li>\n<li>Donn\u00e9es de tampons temporels<\/li>\n<li>Donn\u00e9es de transactions<\/li>\n<li>M\u00e9tadonn\u00e9es<\/li>\n<li>Images de conteneurs<\/li>\n<li>Donn\u00e9es de blobs (objets binaires volumineux)<\/li>\n<\/ul>\n<p>\nTous ces types de donn\u00e9es sont tr\u00e8s bien pris en charge sur les plateformes de stockage modernes, et il existe plusieurs plateformes orient\u00e9es cloud adapt\u00e9es pour fournir des donn\u00e9es dans chacun de ces formats sp\u00e9cifiques. Par exemple, les donn\u00e9es de transactions et les m\u00e9tadonn\u00e9es peuvent se trouver dans une base de donn\u00e9es orient\u00e9e cloud moderne telle que CockroachDB, YugaByte, etc. Les images de conteneurs ou les donn\u00e9es de blobs peuvent \u00eatre stock\u00e9es dans un registre docker bas\u00e9 sur MinIO. Les donn\u00e9es de tampons temporels peuvent \u00eatre stock\u00e9es dans une base de donn\u00e9es de s\u00e9ries temporelles, par exemple InfluxDB, etc. Nous n'entrerons pas ici dans les d\u00e9tails de chaque type de donn\u00e9es et des applications correspondantes, mais l'id\u00e9e g\u00e9n\u00e9rale est d'\u00e9viter le stockage persistant des donn\u00e9es bas\u00e9 sur le montage local des disques.<\/p>\n<p><img decoding=\"async\" alt=\"Mod\u00e8les de stockage des donn\u00e9es dans Kubernetes\" src=\"\/wp-content\/uploads\/2020\/02\/8e39996ef159f09915802549d4e8ecd5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDe plus, il s'av\u00e8re souvent efficace de fournir un niveau de mise en cache temporaire, servant d'espace de stockage pour les fichiers temporaires des applications, mais celles-ci ne doivent pas d\u00e9pendre de ce niveau comme source de v\u00e9rit\u00e9.<\/p>\n<h4>Stockage pour les applications avec \u00e9tat<\/h4>\n<p>\nAlors que dans la plupart des cas, il est utile de garder les applications sans \u00e9tat, celles qui sont destin\u00e9es \u00e0 stocker des donn\u00e9es \u2013 par exemple, les bases de donn\u00e9es, les stockages d'objets, les stockages cl\u00e9-valeur \u2013 doivent conserver l'\u00e9tat. Comprenons pourquoi ces applications se d\u00e9ploient sur Kubernetes. Prenons MinIO comme exemple, mais des principes similaires s'appliquent \u00e0 tout autre grand syst\u00e8me de stockage orient\u00e9 cloud.<\/p>\n<p>Les applications orient\u00e9es vers le cloud sont con\u00e7ues pour maximiser l'utilisation de la flexibilit\u00e9 inh\u00e9rente aux conteneurs. Cela signifie qu'aucune hypoth\u00e8se n'est faite concernant l'environnement dans lequel elles seront d\u00e9ploy\u00e9es. Par exemple, MinIO utilise un m\u00e9canisme interne de codage d'effacement, garantissant que le syst\u00e8me reste op\u00e9rationnel m\u00eame en cas de pannes de la moiti\u00e9 des disques. MinIO g\u00e8re \u00e9galement l'int\u00e9grit\u00e9 et la s\u00e9curit\u00e9 des donn\u00e9es en utilisant son propre hachage et le chiffrement c\u00f4t\u00e9 serveur.<\/p>\n<p>Pour de telles applications orient\u00e9es vers le cloud, les volumes persistants locaux (PV) sont particuli\u00e8rement adapt\u00e9s comme stockage de secours. Un PV local permet le stockage de donn\u00e9es brutes, tandis que les applications fonctionnant au-dessus de ces PV collectent elles-m\u00eames des informations permettant de mettre \u00e0 l'\u00e9chelle les donn\u00e9es et de g\u00e9rer les exigences croissantes en mati\u00e8re de donn\u00e9es.<\/p>\n<p>Cette approche est beaucoup plus simple et s'\u00e9chelonne bien mieux que les PV bas\u00e9s sur CSI, qui apportent leurs propres niveaux de gestion des donn\u00e9es et de redondance dans le syst\u00e8me ; ces niveaux entrent g\u00e9n\u00e9ralement en conflit avec les applications con\u00e7ues sur le principe de conservation de l'\u00e9tat.<\/p>\n<h4>Un mouvement s\u00fbr vers le d\u00e9couplage des donn\u00e9es et du calcul<\/h4>\n<p>\nDans cet article, nous avons discut\u00e9 de la mani\u00e8re dont les applications se r\u00e9orientent vers des op\u00e9rations sans \u00e9tat, ou en d'autres termes, comment le stockage des donn\u00e9es est s\u00e9par\u00e9 des calculs qui leur sont appliqu\u00e9s. En conclusion, examinons quelques exemples r\u00e9els de cette tendance.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/spark.apache.org\/\">Spark<\/a><\/noindex>, la c\u00e9l\u00e8bre plateforme d'analyse de donn\u00e9es, a traditionnellement \u00e9t\u00e9 utilis\u00e9e avec \u00e9tat et d\u00e9ploy\u00e9e dans le syst\u00e8me de fichiers HDFS. Cependant, \u00e0 mesure que Spark entre dans le monde orient\u00e9 vers le cloud, cette plateforme est de plus en plus utilis\u00e9e sans \u00e9tat en utilisant `s3a`. Spark utilise s3a pour transmettre des \u00e9tats \u00e0 d'autres syst\u00e8mes, tandis que les conteneurs Spark eux-m\u00eames fonctionnent enti\u00e8rement sans \u00e9tat. D'autres grands acteurs de l'analyse des grandes donn\u00e9es, notamment <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> font \u00e9galement la transition vers une s\u00e9paration du stockage des donn\u00e9es et des calculs qui s'y appliquent.<\/p>\n<p>Des mod\u00e8les similaires peuvent \u00e9galement \u00eatre observ\u00e9s sur d'autres grandes plateformes d'analyse, telles que Presto, Tensorflow to R, Jupyter. En extrayant l'\u00e9tat vers des syst\u00e8mes de stockage cloud distants, il devient beaucoup plus facile de g\u00e9rer votre application et de l'\u00e9voluer. De plus, cela favorise la portabilit\u00e9 de l'application dans divers environnements.<br \/>\n<br \/>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Mod\u00e8les de stockage de donn\u00e9es dans Kubernetes | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/71858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=71858"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/71858\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/71859"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=71858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=71858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=71858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}