Start Cloud Warum sollten Sie Ihre Datenbank in Kubernetes ausführen?

Warum sollten Sie Ihre Datenbank in Kubernetes ausführen? [Q&A]

13
0


Geschäftsdatenbank

Kubernetes ist eine der am weitesten verbreiteten Plattformen für die Ausführung containerisierter Anwendungen. Viele Unternehmen betreiben ihre Datenbanken jedoch immer noch in einer traditionelleren Umgebung.

Natürlich gibt es keinen Grund, warum Sie eine Datenbank nicht in Kubernetes betreiben können, und es gibt viele Vorteile, dies zu tun. Wir sprachen mit Karthik Ranganathan, Gründer und CTO des Cloud-nativen Datenbankspezialisten Yugabyteum die Vor- und Nachteile zu diskutieren.

BN: Wann wird Kubernetes am besten zum Ausführen einer Datenbank eingesetzt? Was ist der ideale Anwendungsfall?

KR: Das beste Anwendungsszenario für Kubernetes ist, wenn Sie eine große Anzahl von Datenbanken in einer mandantenfähigen Umgebung ausführen. Um mit der Nachfrage nach Diensten Schritt zu halten, übernehmen viele Unternehmen Microservice-Architekturen, in denen Anwendungen als lose gekoppelte, unabhängig einsetzbare Dienste strukturiert sind, die über APIs kommunizieren. Dadurch entstehen viele relativ kleine Datenbanken, die sich innerhalb einer endlichen Gruppe von Knoten anhäufen, was die Verwaltung dieser Datenbanken erschwert.

In einer Multi-Tenant-Cloud-Umgebung, in der Server gemeinsam genutzt werden und Softwareinstanzen mehrere unterschiedliche Gruppen bedienen, wird die Herausforderung komplexer. Hier kann Kubernetes den größten Unterschied machen, indem es die Verwaltung vereinfacht, indem es die effiziente Platzierung von Diensten innerhalb von Knoten ermöglicht.

BN: Welchen Vorteil hat der Betrieb einer Datenbank in Kubernetes im Hinblick auf die Ressourcennutzung?

KR: Massenbereitstellungen von Microservices können Unternehmen mit suboptimalen Zuordnungen von Datenbanken auf einer begrenzten Anzahl von Knoten belasten, was die Ressourcen belastet.

Kubernetes wendet an Infrastruktur als Code Herangehensweise an die Herausforderungen bei der Verwaltung dieser Bereitstellungen. Es ermöglicht den zugrunde liegenden Systemen, die besten Orte zum Platzieren der Datenbanken zu bestimmen und gleichzeitig die Ressourcen zu optimieren, die zum Platzieren dieser Knoten verwendet werden. Seine Orchestrierungsplattform kann verwendet werden, um die Größe von Pods dynamisch zu ändern, wodurch eine elastische Skalierung nach Bedarf ermöglicht wird, um die Workload-Anforderungen zu erfüllen.

Die sofort einsatzbereite Infrastruktur-Orchestrierung ermöglicht es Ihnen, zustandsbehaftete Richtlinien festzulegen, um Datenverluste zu verhindern, beispielsweise im Falle eines Hardwareausfalls. Unternehmen, die Kubernetes einsetzen, sparen auf diese Weise nicht nur Kosten, sondern benötigen auch weniger Knoten, um dieselben Datenbanken auszuführen.

BN: Wie geht Kubernetes die Probleme im Zusammenhang mit Legacy-Code an?

KR: Die meisten Organisationen sind mit großen Mengen an Legacy-Code belastet, was ihre Fähigkeit erschweren kann, Workloads an mehreren Standorten zu erstellen, bereitzustellen und zu verwalten. Dieser Code kann Unternehmen auch daran hindern, Workloads von Cloud zu Cloud zu verschieben.

Mit Kubernetes können Sie Ihre Infrastruktur konsistent als Code im gesamten Unternehmen bereitstellen und so Portabilität zwischen Clouds und am Rand sowie vor Ort bereitstellen. Es ermöglicht Ihnen, ein bisschen Code zu schreiben – sagen wir, die Ressourcenanforderungen zu beschreiben, die für die Kubernetes-Engine bereitgestellt werden – und die Plattform sich um die Verteilung kümmern zu lassen. Kubernetes gibt Ihnen bei Cloud-Bereitstellungen effektiv die gleiche Kontrolle wie auf Bare-Metal-Servern im Rechenzentrum.

BN: Sind einige Arten von Datenbanken besser für Kubernetes geeignet als andere?

KR: Es gibt viele Vorteile, eine Datenbank in Kubernetes zu betreiben. Kubernetes ermöglicht beispielsweise automatisierte Backups und Datenbank-Software-Upgrades, was besonders bei der Arbeit mit einem Datenbank-Cluster von Vorteil ist. Kubernetes vereinfacht das Patchen einer Sicherheitslücke in einem Cluster. Einige Datenbanken – insbesondere ältere Modelle – können jedoch Probleme haben, auf einer neuen Plattform zu laufen.

Eine robuste, verteilte Datenbank kann die Herausforderungen beim Ausführen von Kubernetes mindern und gleichzeitig sicherstellen, dass Daten immer verfügbar sind. Eine verteilte SQL-Datenbank wird beispielsweise auf einem Cluster von Servern als einzelne logische relationale Datenbank bereitgestellt. Es repliziert und verteilt Daten automatisch auf mehrere Server und sorgt so für Konsistenz über alle Verfügbarkeitszonen und geografischen Zonen hinweg. Dies hält die Dinge am Laufen, selbst wenn ein Pod, Knoten oder die zugrunde liegende Infrastruktur ausfällt. Der Cluster kann einen Fehler erkennen, behandeln und ohne Daten- oder Zugriffsverlust wiederherstellen. Es arbeitet auch hinter den Kulissen, ohne dass ein Bedienereingriff erforderlich ist.

Zusätzlich zur geografischen Verteilung bieten verteilte SQL-Datenbanken Ausfallsicherheit. Sie bieten kontinuierliche Verfügbarkeit und horizontale Skalierbarkeit, sodass Betriebsteams Knoten nach Bedarf ohne Ausfallzeiten hinzufügen oder zurückskalieren können. Sie sind außerdem funktionskompatibel mit SQL- und RDBMS-Funktionen und bereit für Hybrid- und Multi-Clouds. Sie können die Dateninfrastruktur in jeder Umgebung betreiben.

BN: Bietet Kubernetes Automatisierungsvorteile im Vergleich zu einem herkömmlichen RDBMS?

KR: Tag-zwei-Operationen, die Wartungsarbeiten wie Konfigurationsanpassungen und Upgrades umfassen, können für ein traditionelles relationales Datenbankverwaltungssystem (RDBMS) kompliziert sein. Wenn Sie beispielsweise einen Pod verlieren, während Sie ein herkömmliches RDBMS verwenden, ist der Benutzer für die Migration und erneute Synchronisierung von Daten zwischen Pods verantwortlich. Bei der manuellen Migration wird auch überprüft, ob der Cluster stark ausgelastet ist. Wenn dies der Fall ist, müssen Sie warten, bis die Last gelöscht ist, bevor Sie die Daten verschieben. Sogar die automatische Migration von Daten erfordert, dass Sie diese Überprüfungen einbauen.

Die von Kubernetes bereitgestellte Automatisierung vereinfacht Cluster-übergreifende Prozesse wie Sicherungen und Upgrades, während die Verteilung von Daten über Knoten in einem Cluster automatisiert und Daten auf konsistente Weise repliziert werden.

BN: Was sind einige der Nachteile/Kompromisse, die mit dem Betrieb Ihrer Datenbank in Kubernetes verbunden sind?

KR: Kubernetes hat zwar erhebliche Vorteile, aber kein System ist vollkommen perfekt, und Sie müssen einige potenzielle Kompromisse eingehen.

Beispielsweise besteht die Möglichkeit eines Pod-Absturzes trotz der Orchestrierungsfähigkeiten von Kubernetes. Abstürze können durch Out-of-Memory-Fehler (OOM) sowie beim Verschieben von Pods verursacht werden. Beim Verschieben von Pods, wenn ein neuer Pod hinzugefügt wird, ist auf dem neuen Pod kein lokal angeschlossener Speicher vorhanden, was zu Datenverlust führt.

Lokal angeschlossener Speicher bietet die schnellste Leistung, was ideal ist, wenn eine niedrige Latenz Priorität hat. Aber es reist nicht mit einem Pod, wenn es bewegt wird. Externer persistenter Speicher, in irgendeiner Form auf Network-Attached Storage, löst dieses Problem, aber es gibt einen Kompromiss bei der Leistung.

Einige Kubernetes-Bereitstellungen erfordern möglicherweise einen Load Balancer, um Netzwerkeinschränkungen zu lösen. Bei der Replikation von Daten über verschiedene Rechenzentren hinweg kann es auch zu Netzwerkkomplexitäten kommen – beispielsweise wenn versucht wird, im Falle einer Naturkatastrophe geografische Redundanz sicherzustellen. Dies kann komplexe Lösungen erfordern, wie z DNS-Verkettungoder die Implementierung von a Servicenetzdie den Dienst beeinträchtigen kann, da sie über HTTP und nicht über TCP ausgeführt wird.

Es gibt einige Feinheiten bei der Ausführung von Kubernetes, aber viele der Herausforderungen und Kompromisse können durch eine verteilte SQL-Datenbank mit ihrer automatisierten Replikation und Verteilung von Daten gemildert werden. Dieser Ansatz kann Organisationen dabei helfen, die großen Vorteile von Kubernetes zu nutzen und gleichzeitig viele der damit verbundenen Risiken zu reduzieren.

Bildnachweis: Wellenbrechermedien / Shutterstock



Vorheriger ArtikelTuring-Test passé durch moderne KI? | c’t uplink 44.4
Nächster ArtikelGroßbritannien ruft in Teilen des Landes Dürrenotstand aus

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein