{"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\/de\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","title":{"rendered":"Datenablage-Muster in 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=\"Datenablage-Muster in Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/148744e73101d47e7a5a76bdd3bb57e1.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nHallo, Habr!<\/p>\n<p>Wir erinnern Sie daran, dass wir einen weiteren \u00e4u\u00dferst interessanten und n\u00fctzlichen <noindex><a rel=\"nofollow\" href=\"https:\/\/www.piter.com\/collection\/new\/product\/patterny-kubernetes-shablony-razrabotki-sobstvennyh-oblachnyh-prilozheniy\">Buch<\/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\">Patterns<\/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\">sehr aktiv<\/a><\/noindex>. Heute m\u00f6chten wir Ihnen einen Beitrag aus dem MinIO Blog vorstellen, der die Trends und Besonderheiten der Datenspeicher-Patterns in Kubernetes zusammenfasst.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Kubernetes hat die traditionellen Patterns f\u00fcr die Entwicklung und Bereitstellung von Anwendungen grundlegend ver\u00e4ndert. Nun kann das Team in nur wenigen Tagen eine Anwendung entwickeln, testen und bereitstellen \u2013 in verschiedenen Umgebungen, und das alles innerhalb von Kubernetes-Clustern. Mit Technologien fr\u00fcherer Generationen ben\u00f6tigte man daf\u00fcr in der Regel Wochen, wenn nicht Monate.<\/p>\n<p>Diese Beschleunigung wurde durch die Abstraktion erm\u00f6glicht, die Kubernetes bietet \u2013 das hei\u00dft, Kubernetes \u00fcbernimmt selbst die Interaktion mit den niedrigstufigen Details physischer oder virtueller Maschinen. Benutzer k\u00f6nnen unter anderem die ben\u00f6tigte CPU, den gew\u00fcnschten Arbeitsspeicher und die Anzahl der Containerinstanzen angeben. Da eine riesige Gemeinschaft die Unterst\u00fctzung von Kubernetes \u00fcbernimmt und der Umfang seiner Anwendung st\u00e4ndig w\u00e4chst, f\u00fchrt es mit gro\u00dfem Abstand unter allen Plattformen zur Orchestrierung von Containern.<\/p>\n<p><i><b>Mit der zunehmenden Verbreitung von Kubernetes w\u00e4chst auch die Verwirrung \u00fcber die angewandten Datenmuster.<\/b><\/i>.<\/p>\n<p>In einem wettbewerbsintensiven Umfeld um das Datenlager Kubernetes (also um den Speicher) geht das Signal beim Thema Datenspeicherung im starken Rauschen unter.<br \/>\nKubernetes verk\u00f6rpert ein modernes Modell f\u00fcr die Entwicklung und Bereitstellung von Anwendungen sowie deren Verwaltung. Dieses moderne Modell trennt die Datenspeicherung von den Rechenoperationen. Um diese Trennung im Kontext von Kubernetes vollst\u00e4ndig zu verstehen, ist es auch notwendig zu erkennen, was zustandsbehaftete und zustandslose Anwendungen sind und wie dies mit der Datenspeicherung zusammenh\u00e4ngt. Hierbei bietet der REST-API-Ansatz von S3 klare Vorteile im Vergleich zu dem POSIX\/CSI-Ansatz, der f\u00fcr andere L\u00f6sungen charakteristisch ist.<\/p>\n<p>In diesem Artikel werden wir die Muster der Datenspeicherung in Kubernetes besprechen und speziell auf die Debatte \u00fcber zustandsbehaftete und zustandslose Anwendungen eingehen, um die Unterschiede zwischen ihnen richtig zu verstehen und deren Bedeutung zu erl\u00e4utern. Weiterhin werden die in Anwendungen verwendeten Datenspeicherungsmuster im Lichte der besten Praktiken f\u00fcr den Umgang mit Containern und Kubernetes betrachtet.<\/p>\n<h4>Zustandslose Container<\/h4>\n<p>\nContainer sind von Natur aus leicht und verg\u00e4nglich. Sie k\u00f6nnen problemlos gestoppt, entfernt oder auf einem anderen Knoten bereitgestellt werden \u2013 all dies geschieht in wenigen Sekunden. In einem umfangreichen System zur Orchestrierung von Containern kommen solche Vorg\u00e4nge st\u00e4ndig vor, und die Benutzer bemerken diese Ver\u00e4nderungen nicht einmal. Allerdings sind Verschiebungen nur m\u00f6glich, wenn der Container keine Abh\u00e4ngigkeiten von dem Knoten hat, auf dem er sich befindet. Man spricht von Containern, die arbeiten <i>ohne Zustandsspeicherung<\/i>.<\/p>\n<h4>Container mit Zustandsspeicherung<\/h4>\n<p>\nWenn ein Container Daten auf lokal angeschlossenen Ger\u00e4ten (oder auf einem Blockger\u00e4t) speichert, muss der Datenspeicher, auf dem er sich befindet, zusammen mit dem Container auf einen neuen Knoten verschoben werden \u2013 im Falle eines Ausfalls. Dies ist wichtig, da die in dem Container ausgef\u00fchrte Anwendung ansonsten nicht korrekt funktionieren kann, da sie auf die auf den lokalen Speichermedien gespeicherten Daten zugreifen muss. Man spricht von Containern, die arbeiten <i>mit Zustandsspeicherung<\/i>.<\/p>\n<p>Aus rein technischer Sicht k\u00f6nnen auch zustandsbehaftete Container auf andere Knoten verschoben werden. Dies wird normalerweise durch verteilte Dateisysteme oder blockbasierte Netzwerkdatenspeicher erm\u00f6glicht, die an alle Knoten angeschlossen sind, auf denen die Container laufen. Dadurch erhalten die Container Zugriff auf Volumes f\u00fcr die persistente Speicherung von Daten, und die Informationen werden auf Festplatten gespeichert, die im gesamten Netzwerk verteilt sind. Ich nenne diese Methode \u00ab<i>zustandsbehafteter Containeransatz<\/i>\u00bb, und im weiteren Verlauf des Artikels werde ich ihn so zur Einheitlichkeit benennen.<\/p>\n<p><img decoding=\"async\" alt=\"Datenablage-Muster in Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/a5546db15801389d58476f50c8c66803.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBei dem typischen zustandsbehafteten Containeransatz werden alle Pods der Anwendungen an ein einziges verteiltes Dateisystem angeh\u00e4ngt \u2013 es entsteht eine Art gemeinsamer Speicher, in dem alle Anwendungsdaten verwaltet werden. Obwohl es einige Variationen geben kann, ist dies ein hochgradiger Ansatz.<\/p>\n<p>Lassen Sie uns nun untersuchen, warum der zustandsbehaftete Containeransatz in einer cloudorientierten Welt ein Antipattern ist.<\/p>\n<h4>Cloud-orientierte Anwendungsarchitektur<\/h4>\n<p>\nTraditionell verwendeten Anwendungen Datenbanken f\u00fcr die strukturierte Speicherung von Informationen und lokale Laufwerke oder verteilte Dateisysteme, in die alle unstrukturierten oder sogar halbstrukturierten Daten abgelegt wurden. Mit dem Wachstum der unstrukturierten Datenmengen erkannten die Entwickler, dass POSIX zu \"gespr\u00e4chig\" ist, erhebliche Kosten verursacht und letztlich die Leistung der Anwendung bei der Skalierung auf wirklich gro\u00dfe Umf\u00e4nge behindert.<\/p>\n<p>Dies hat in erster Linie zur Entstehung eines neuen Standards f\u00fcr die Datenspeicherung beigetragen, n\u00e4mlich cloudbasierter Speicher, der haupts\u00e4chlich auf REST-APIs basiert und Anwendungen von der belastenden Wartung lokaler Datenspeicher befreit. In diesem Fall arbeitet die Anwendung faktisch im Zustand ohne Speicherung (da der Zustand in einem entfernten Speicher liegt). Moderne Anwendungen werden von Grund auf unter Ber\u00fccksichtigung dieses Faktors entwickelt. In der Regel basiert jede moderne Anwendung, die irgendeine Art von Daten verarbeitet (Protokolle, Metadaten, Blobs usw.), auf dem cloudbasierten Paradigma, bei dem der Zustand in ein speziell daf\u00fcr vorgesehenes Softwaresystem \u00fcbertragen wird. <\/p>\n<p><i><b>Der containerbasierte Ansatz mit Zustandsspeicherung zwingt dieses gesamte Paradigma genau dorthin zur\u00fcck, wo es urspr\u00fcnglich begonnen hat! <\/b><\/i><\/p>\n<p>Wenn Anwendungen POSIX-Schnittstellen zur Datenspeicherung verwenden, verhalten sie sich \u00e4hnlich, als w\u00fcrden sie ihren Zustand speichern. Dadurch weichen sie von den wichtigsten Grunds\u00e4tzen des cloudbasierten Designs ab \u2014 insbesondere von der F\u00e4higkeit, die Gr\u00f6\u00dfe der Arbeitslasten an die eingehende Nachfrage anzupassen, auf einen neuen Knoten zu wechseln, sobald der aktuelle Knoten ausf\u00e4llt, und so weiter.<\/p>\n<p>Ein genauerer Blick auf diese Situation zeigt, dass wir bei der Auswahl eines Datenspeichers immer wieder mit dem Dilemma \u201ePOSIX gegen REST API\u201c konfrontiert werden, wobei es jedoch zus\u00e4tzliche Probleme gibt, die durch die verteilte Natur von Kubernetes-Umgebungen verst\u00e4rkt werden. Insbesondere<\/p>\n<ul>\n<li><b>POSIX ist problematisch<\/b>: Die Semantik von POSIX erfordert die Assoziation von Metadaten und Dateideskriptoren mit jeder Operation, was hilft, den Status der Operation aufrechtzuerhalten. Dies f\u00fchrt zu erheblichen Kosten, die keinen echten Wert haben. Die API f\u00fcr Objektspeicher, insbesondere die S3-API, hat sich von diesen Anforderungen befreit, sodass die Anwendung ausgef\u00fchrt werden kann und dann den Aufruf vergessen kann. Die R\u00fcckmeldung des Speichersystems zeigt an, ob die jeweilige Aktion erfolgreich war oder nicht. Im Falle eines Fehlers kann die Anwendung einen erneuten Versuch durchf\u00fchren.<\/li>\n<li><b>Netzwerkbeschr\u00e4nkungen<\/b>: In einem verteilten System wird davon ausgegangen, dass es viele Anwendungen geben kann, die versuchen, Daten auf dasselbe angeschlossene Medium zu schreiben. Daher werden nicht nur die Anwendungen um die Bandbreite konkurrieren (um Daten auf das Medium zu senden), sondern auch das Speichersystem selbst wird um diese Bandbreite konkurrieren, indem es Daten auf physische Laufwerke verteilt. Aufgrund der Wortlastigkeit von POSIX steigen die Anzahl der Netzwerkaufrufe erheblich an. Andererseits sorgt die S3 API f\u00fcr eine klare Trennung der Netzwerkaufrufe zwischen denen, die vom Client an den Server gesendet werden, und denen, die innerhalb des Servers stattfinden.<\/li>\n<li><b>Sicherheit<\/b>: Das Sicherheitsmodell von POSIX ist darauf ausgelegt, dass der Mensch aktiv beteiligt ist: Administratoren konfigurieren spezifische Zugriffslevels f\u00fcr jeden Benutzer oder jede Gruppe. Ein solches Paradigma l\u00e4sst sich schwer auf eine cloudbasierte Welt anpassen. Moderne Anwendungen sind auf Sicherheitsmodelle angewiesen, die an APIs gebunden sind, wobei Zugriffsrechte als eine Sammlung von Richtlinien definiert werden, Servicekonten zugewiesen und tempor\u00e4re Anmeldeinformationen vergeben werden, usw.<\/li>\n<li><b>Verwaltbarkeit<\/b>: Zustandsbehaftete Container bringen bestimmte Kosten f\u00fcr das Management mit sich. Es geht um die Synchronisation des parallelen Zugriffs auf Daten und die Gew\u00e4hrleistung der Datenkonsistenz, was alles sorgf\u00e4ltige \u00dcberlegungen zu den zu verwendenden Datenzugriffsstrategien erfordert. Man muss zus\u00e4tzliche Programme installieren, \u00fcberwachen und konfigurieren, ganz zu schweigen von den zus\u00e4tzlichen Bem\u00fchungen, die in die Entwicklung investiert werden.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Container-Speicher-Interface<\/h4>\n<p>\nW\u00e4hrend das Container Storage Interface (CSI) gro\u00dfartig dabei geholfen hat, die Kubernetes-Volumes zu verbreiten, indem es teilweise an Drittanbieter von Datenspeicherl\u00f6sungen \u00fcbergeben wurde, hat es auch unabsichtlich zur \u00dcberzeugung beigetragen, dass der zustandsbehaftete Containeransatz die empfohlene Methode zur Datenspeicherung in Kubernetes ist.<\/p>\n<p>CSI wurde als Standard zur Bereitstellung von beliebigen Block- und Dateispeichersystemen f\u00fcr Legacy-Anwendungen in Kubernetes entwickelt. Wie in diesem Artikel gezeigt, ist der containerbasierte Ansatz mit persistentem Speicher (und CSI in seiner aktuellen Form) nur sinnvoll, wenn die Anwendung selbst ein Legacy-System ist, dem es an Unterst\u00fctzung f\u00fcr eine objektbasierte Datenspeicher-API mangelt.<\/p>\n<p>Es ist wichtig zu verstehen, dass die Verwendung von CSI in seiner aktuellen Form \u2013 das Mappen von Volumes in modernen Anwendungen \u2013 uns mit \u00e4hnlichen Problemen konfrontieren wird wie in Systemen, in denen die Datenspeicherung im POSIX-Stil organisiert ist.<\/p>\n<h4>Ein qualitativ besserer Ansatz<\/h4>\n<p>\nIn diesem Fall ist es wichtig zu verstehen, dass die meisten Anwendungen im Grunde nicht daf\u00fcr ausgelegt sind, mit persistentem oder nicht persistentem Speicher zu arbeiten. Dieses Verhalten h\u00e4ngt von der Gesamtarchitektur des Systems und den spezifischen Optionen ab, die bei der Planung gew\u00e4hlt wurden. Lassen Sie uns ein wenig \u00fcber zustandsbehaftete Anwendungen sprechen.<\/p>\n<p>Grunds\u00e4tzlich k\u00f6nnen alle Anwendungsdaten in mehrere umfassende Typen unterteilt werden:<\/p>\n<ul>\n<li>Protokolldaten<\/li>\n<li>Zeitstempeldaten<\/li>\n<li>Transaktionsdaten<\/li>\n<li>Metadaten<\/li>\n<li>Container-Images<\/li>\n<li>Blob-Daten (Binary Large Objects)<\/li>\n<\/ul>\n<p>\nAlle diese Datentypen werden auf modernen Datenhaltungssystemen sehr gut unterst\u00fctzt, und es gibt mehrere cloudbasierte Plattformen, die an die Bereitstellung von Daten in jedem dieser speziellen Formate angepasst sind. Beispielsweise k\u00f6nnen Transaktionsdaten und Metadaten in einer modernen cloudbasierten Datenbank wie CockroachDB, YugaByte usw. gespeichert werden. Container-Images oder Blob-Daten k\u00f6nnen in einem auf MinIO basierenden Docker-Registry gespeichert werden. Zeitstempeldaten k\u00f6nnen in einer Zeitreihendatenbank wie InfluxDB usw. gespeichert werden. Hier wollen wir nicht auf die Details jedes Datentyps und der entsprechenden Anwendungen eingehen, aber die Grundidee besteht darin, persistenten Datenspeicher zu vermeiden, der auf lokalen Laufwerks-Mounts basiert.<\/p>\n<p><img decoding=\"async\" alt=\"Datenablage-Muster in Kubernetes.\" src=\"\/wp-content\/uploads\/2020\/02\/8e39996ef159f09915802549d4e8ecd5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZudem erweist es sich oft als effektiv, eine tempor\u00e4re Cache-Ebene bereitzustellen, die als eine Art Speicher f\u00fcr tempor\u00e4re Dateien f\u00fcr Anwendungen dient. Allerdings sollten Anwendungen nicht von dieser Ebene als Quelle der Wahrheit abh\u00e4ngen.<\/p>\n<h4>Speicher f\u00fcr zustandsbehaftete Anwendungen<\/h4>\n<p>\nW\u00e4hrend es in den meisten F\u00e4llen vorteilhaft ist, Anwendungen ohne Zustand zu halten, sollten solche Anwendungen, die zum Speichern von Daten bestimmt sind \u2013 wie beispielsweise Datenbanken, Objektspeicher und Schl\u00fcssel-Wert-Speicher \u2013 ihren Zustand behalten. Lassen Sie uns untersuchen, warum diese Anwendungen auf Kubernetes bereitgestellt werden. Als Beispiel nehmen wir MinIO, aber \u00e4hnliche Prinzipien gelten auch f\u00fcr andere gro\u00df angelegte Cloud-orientierte Datenspeichersysteme.<\/p>\n<p>Cloud-nativen Anwendungen werden mit dem Ziel entwickelt, die Flexibilit\u00e4t von Containern maximal effektiv zu nutzen. Das bedeutet, dass keine Annahmen \u00fcber die Umgebung getroffen werden, in der sie bereitgestellt werden. Beispielsweise verwendet MinIO einen internen Mechanismus zur Redundanzkodierung (erasure coding), der dem System ausreichend Widerstandsf\u00e4higkeit verleiht, damit es selbst bei dem Ausfall der H\u00e4lfte der Festplatten funktionsf\u00e4hig bleibt. Zudem verwaltet MinIO die Integrit\u00e4t und Sicherheit von Daten durch eigene Hashing- und Verschl\u00fcsselungsverfahren auf Serverseite.<\/p>\n<p>F\u00fcr solche cloud-nativen Anwendungen sind lokale persistente Volumes (PV) als Backup-Speicher besonders geeignet. Ein lokales PV erm\u00f6glicht die Speicherung von Rohdaten, w\u00e4hrend Anwendungen, die auf diesen PVs basieren, selbst Informationen zusammentragen, um Daten zu skalieren und wachsenden Datenanforderungen gerecht zu werden.<\/p>\n<p>Dieser Ansatz ist viel einfacher und skalierbarer im Vergleich zu PV auf Basis von CSI, die eigene Datenmanagement- und Redundanzebenen in das System einbringen; das Problem ist, dass diese Ebenen normalerweise mit Anwendungen in Konflikt stehen, die im Sinne der Zustandserhaltung entworfen wurden.<\/p>\n<h4>Ein selbstbewusster Schritt in Richtung Entkopplung von Daten und Berechnungen<\/h4>\n<p>\nIn diesem Artikel haben wir dar\u00fcber gesprochen, wie Anwendungen sich darauf umorientieren, ohne Zustand zu arbeiten, oder anders ausgedr\u00fcckt, die Datenspeicherung von den Berechnungen zu trennen. Abschlie\u00dfend betrachten wir einige echte Beispiele f\u00fcr diesen Trend.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/spark.apache.org\/\">Spark<\/a><\/noindex>, die bekannte Plattform f\u00fcr Datenanalysen, wurde traditionell mit Zustandserhaltung und einer Bereitstellung im HDFS-Dateisystem verwendet. Mit dem \u00dcbergang von Spark in eine cloudorientierte Welt wird diese Plattform jedoch zunehmend ohne Zustand mit der Verwendung von `s3a` genutzt. Spark verwendet s3a, um den Zustand in andere Systeme zu \u00fcbertragen, w\u00e4hrend die Spark-Container vollst\u00e4ndig zustandslos betrieben werden. Andere gro\u00dfe Unternehmen im Bereich der Analyse von Big Data, insbesondere, <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> gehen auch zur Arbeit mit der Trennung von Datenspeicherung und Berechnungen \u00fcber diese.<\/p>\n<p>\u00c4hnliche Muster sind auch bei anderen gro\u00dfen Analyseplattformen wie Presto, Tensorflow zu R und Jupyter zu beobachten. Wenn der Zustand in entfernte Cloud-Datenspeichersysteme exportiert wird, wird es viel einfacher, Ihre Anwendung zu verwalten und zu skalieren. Dar\u00fcber hinaus f\u00f6rdert es die Portabilit\u00e4t der Anwendung in verschiedene Umgebungen.<br \/>\n<br \/>Quelle: <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 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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\" \/>\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\/de\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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:description\" content=\"\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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/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\udd47Muster der Datenspeicherung in Kubernetes | ProHoster","description":"Hallo, Habr! Wir m\u00f6chten Sie daran erinnern, dass wir ein weiteres \u00e4u\u00dferst interessantes und n\u00fctzliches Buch \u00fcber Kubernetes-Muster ver\u00f6ffentlicht haben. Alles begann mit \"Muster\" von Brendan Burns, und wir sind in diesem Bereich nach wie vor aktiv. Heute bieten wir Ihnen einen Artikel aus dem MinIO-Blog an, der die Trends und Besonderheiten der Datenspeicherungsmuster in Kubernetes kurz zusammenfasst. Kubernetes ist grundlegend","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/patterny-hraneniya-dannyh-v-kubernetes","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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:description":"\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","og:url":"https:\/\/prohoster.info\/de\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/71858","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=71858"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/71858\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/71859"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=71858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=71858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=71858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}