iconimage - Fotolia
Kubernetes-Beliebtheit treibt die Produktvielfalt für Backups
Das Wachstum von containerisierten Anwendungen zwingt Admins dazu, Backups und Disaster Recovery zu erstellen. Aber was müssen sie schützen, und wer bietet solche Produkte an?
Mit der zunehmenden Verwendung von Containern – und ihrer Orchestrierung über Kubernetes (auch bekannt als K8s oder Kube) – verändert sich die Anwendungslandschaft rapide. Traditionelle Anwendungen, sogar monolithische, sind natürlich in großer Zahl vorhanden, aber für webbasierte Anwendungsfälle, insbesondere dort, wo eine schnelle Skalierung nach oben und unten ein Thema ist, kommen Container zum Tragen.
Doch wie sieht es mit Backups von Containern und deren Disaster Recoery aus? Schließlich müssen Ihre Container-Infrastruktur und möglicherweise auch die von ihr erzeugten Daten geschützt werden. Was sind also die wichtigsten Optionen für Container-Backup und Disaster Recovery? In diesem Beitrag sehen wir uns an, was geschützt werden muss und wie man Backups umsetzt, mit einem kurzen Überblick über die wichtigsten Anbieter, die Container-Disaster-Recovery anbieten.
Container-Architektur: Neue Herausforderungen
Die traditionelle Anwendungsarchitektur ist wohlbekannt. Die Anwendungen laufen im Rechenzentrum auf ihrem Servermit ihrem Betriebssystem (OS), während die Daten auf der gleichen Hardware oder in einem gemeinsam genutzten Storage liegen.
All das – auch oder gerade wenn virtuelle Server verwendet werden – macht es ziemlich einfach, im Falle einer Katastrophe, die Ihre primäre Infrastruktur zum Erliegen bringt, eine neue Bereitstellung zu starten. Im einfachsten Fall können Sie Sicherungskopien der Images virtueller Maschinen und der zugehörigen Daten erstellen und von diesen einen bekannten Zustand wiederherstellen.
Container stellen neue Herausforderungen dar. Während virtuelle Server relativ einfach zu erstellen, zu verwenden und zu zerstören sind, ist die Lebensdauer von containerisierten Anwendungen im Vergleich dazu wie eine Eintagsfliege: Die meisten – etwa 85 Prozent laut einer Umfrage von Sysdig aus dem Jahr 2019 – werden weniger als einen Tag genutzt und danach gelöscht.
Dies spiegelt den großen Vorteil von Containern wider. Sie sind einfach aufgebaute Komponenten einer Anwendungsarchitektur, die einfach und schnell in Betrieb genommen, skaliert und außer Betrieb genommen werden können – sowohl in der Cloud als auch On-Premise – in den meisten Fällen heute unter Verwendung der Kubernetes-Orchestrierungsumgebung.
Warum ist dies gut für die Anwendungsentwicklung und -bereitstellung? Theoretisch können Anwendungen auf einem Laptop entwickelt und getestet und danach schnell in der Produktionsumgebung reproduziert werden.
Doch trotz der Einfachheit im Kern kann der Betrieb von containerisierten Anwendungen auch enorme Komplexität mit sich bringen. Sie können global verteilt sein und sich bei ungeplanten Ausfällen in einer enormen Vielfalt von Zuständen befinden. Containerisierte Anwendungen werden von einer Container-Orchestrierungsplattform wie Kubernetes bereitgestellt.
Für jeden Cluster von containerisierten Anwendungen werden zustandslose Master- und Worker-Knoten ausgeführt, die wiederum die Komponenten-Pods enthalten, aus denen die Anwendungen bestehen. Diese können aus den zustandsbehafteten (stateful) Komponenten, die in einer zentralen Schlüsselwertdatenbank (Key Value Database) gespeichert sind, gestartet werden. Diese wird in Kubernetes als etcd bezeichnet, und alle Änderungen an der Umgebung werden dort wiedergegeben.
Die etcd-Kontrollebene ist also das erste Schlüsselelement, das geschützt werden muss. Sie ist sozusagen das Gehirn der containerisierten Umgebung, das den Zustand der Infrastruktur und des zugehörigen persistenten Speichers aufrechterhält.
Die zweite Priorität sind alle persistenten Volumes, die zum Speichern von Daten verwendet werden. Im Katastrophenfall müssen Sie ganze Cluster wiederherstellen, aber es kann auch vorkommen, dass eine granulare Wiederherstellung erforderlich ist.
Backup und Recovery des Kubernetes-Kerns
Wenn Sie ein kleiner Betrieb sind, könnten Sie theoretisch Ihre Kubernetes-Bereitstellungen aus den Git Repos wiederherstellen. Es ist ganz im Sinne des DevOps-Ethos, den Code neu zu erstellen.
Dies gilt natürlich nicht für die in etcd gespeicherten Container-Konfigurationsinformationen oder die von Ihren Containern erzeugten Daten, die möglicherweise wiederhergestellt werden müssen. Theoretisch könnte man ectd von Kubernetes aus sichern, indem man Cronjobs ausführt und plant und diese Snapshots wiederherstellt.
In kleinen und mittelständischen Unternehmen (KMUs) oder größere Unternehmensumgebungen ist dies jedoch kaum praktikabel. Aus diesem Grund gibt es eine Reihe spezialisierter Startups, die das Kubernetes-Management mit Backup und Disaster Recovery auf der Grundlage von API-Verbindungen (Application Programming Interface) zur Container-Orchestrierungsplattform versorgen.
Hier ein Blick auf einige der Unternehmen, die entsprechende Produkte anbietet.
Spezialisierte Kubernetes-Verwaltungsprodukte
Kastens Datenmanagement-Plattform K10 ist angeblich speziell für Kubernetes entwickelt worden. Nach der Bereitstellung sucht sie nach Kubernetes-Komponenten, die geschützt werden müssen, und bietet kundenspezifische, richtlinienbasierte Datensicherung, Mobilität, Backup und Wiederherstellung sowie Disaster Recovery. Die Lösung wird in einem eigenen Namespace in Ihrem Kubernetes-Cluster ausgeführt, und ihre Reichweite erstreckt sich auch auf den Status von persistenten Speicher-Volumes und Datenbanken. Eine granulare Wiederherstellung ist zu einem bestimmten Zeitpunkt und für eine Teilmenge der Anwendung möglich. Es unterstützt AWS, Azure, GCP und IBM-Clouds und funktioniert auch am lokalen Standort.
Portworx war ein Pionier des persistenten Storage für Container. Ende 2022 wurde die Portworx Enterprise Storage Management Plattform um die Software PX-Backup erweitert. Die neue Funktionalität schützt einzelne Container, Gruppen von Containern oder einen kompletten Kubernetes-Namespace mit einem einzigen Befehl auf einen beliebigen S3-kompatiblen Objektspeicher. PX-Backup erfordert nicht die primäre Portworx Enterprise Storage Management Software-Plattform.
Rancher bietet eine Container-Management-Umgebung mit Zugriffskontrolle und ermöglicht DevOps-Ingenieuren die Verwaltung von Anwendungs-Workloads ohne tiefgreifende Kenntnisse von Kubernetes-Konzepten. Der Rancher-API-Server baut auf dem Kubernetes-API-Server und der etcd-Datenbank auf. In der Rancher-Benutzeroberfläche können etcd-Backups und -Wiederherstellungen für Rancher-Kubernetes-Cluster durchgeführt werden. Snapshots der etcd-Datenbank werden erstellt und lokal auf etcd-Knoten oder auf einem S3-kompatiblen Ziel gespeichert, das entfernt werden und zur Wiederherstellung des Clusters verwendet werden kann.
Velero ist ein Open Source Tool zur Sicherung, Wiederherstellung und Migration von Kubernetes-Clustern und zugehörigem persistenten Speicher am lokalen Standort und in einer Public Cloud. Velero besteht aus einem Serverprozess, der im Kubernetes-Cluster läuft, und einer Befehlszeilenschnittstelle (CLI), die es Administratorenermöglicht, geplante Backups zu konfigurieren, Ad-hoc-Backups auszulösen oder Wiederherstellungen durchzuführen. Velero nutzt die Kubernetes-API, um den Zustand der Cluster-Ressourcen bis auf granularer Ebene zu erfassen.