Velero sichert Kubernetes-Ressourcen und Persistent Volumes

Velero ist ein unverichtbares Open-Source-Tool für Kubernetes-Backups, das Ressourcen und Persistent Volumes sichert und migriert.

Der CNCF-Sandbox-Projekt Velero sichert Kubernetes-Cluster durch Backups im Objektspeicher.

Velero, ein Sandbox-Projekt der Cloud Native Computing Foundation (CNCF), sichert Kubernetes-Ressourcen und Persistent Volumes, erstellt Backups, migriert Cluster und legt die Daten im Objektspeicher ab. Das in Go geschriebene Open-Source-Tool ging aus Heptio Ark hervor und verzeichnet auf GitHub mehr als 10.000 Sterne. Es läuft als Controller im Cluster und wird über einen lokalen CLI-Client gesteuert. Für DevOps-Teams ist Velero ein unverzichtbares Werkzeug, um Cluster gegen Datenverlust abzusichern und Workloads zwischen Umgebungen zu verschieben.

Wie Velero Kubernetes-Ressourcen und Persistent Volumes sichert

Die Architektur von Velero basiert auf einem Server, der als eine Reihe von Controllern im Kubernetes-Cluster läuft. Bei einem Backup fragt der Server die Kubernetes-API nach den ausgewählten Objekten ab, serialisiert sie als JSON und speichert sie im konfigurierten Objektspeicher. Als Ablage dienen S3-kompatible Speicher, Google Cloud Storage, Azure Blob Storage sowie weitere S3-kompatible Ziele. Der CLI-Client (velero) ermöglicht die Steuerung von Backups, Migrationen und Replikationen direkt vom Terminal aus. Der Server arbeitet vollständig im Cluster und nutzt die Kubernetes-RBAC-Mechanismen für die Authentifizierung und Autorisierung.

Backup, Migration und Replikation

Die Auswahl der zu sichernden Objekte erfolgt über Namespaces, Label-Selektoren oder den gesamten Cluster. Mit Namespaces lassen sich ganze Anwendungsbereiche abgrenzen, Label-Selektoren ermöglichen eine granulare Filterung, etwa nach Umgebungstyp (Produktion, Staging) oder Applikationskomponente. Zeitpläne starten Backups in festen Abständen, eine TTL steuert die Aufbewahrung und löscht abgelaufene Sicherungen automatisch aus dem Speicher. Pre- und Post-Backup-Hooks führen eigene Aktionen vor und nach einer Sicherung aus, etwa das Stilllegen einer Datenbank für einen konsistenten Stand oder das Auslösen von Benachrichtigungen. Dieselben Mechanismen ermöglichen auch die Migration von Ressourcen auf ein anderes Cluster oder die Spiegelung einer Produktivumgebung in Entwicklungs- und Testsysteme. Velero unterstützt IPv4, IPv6 und Dual-Stack, sodass es in gemischten Netzwerkumgebungen eingesetzt werden kann.

Wiederherstellung im Ernstfall

Für die Wiederherstellung greift Velero auf die im Objektspeicher abgelegten JSON-Serialisierungen der Kubernetes-Ressourcen sowie auf die Volume-Snapshots oder Dateisystem-Backups zurück. Der Restore-Vorgang kann selektiv auf bestimmte Namespaces oder Ressourcen beschränkt werden. Dabei stellt Velero die Abhängigkeiten der Objekte, etwa PersistentVolumeClaims zu PersistentVolumes, automatisch wieder her. Der Administrator kann den gesamten Cluster oder einzelne Workloads in einem anderen Cluster wiederherstellen, was auch für Migrationen und Disaster-Recovery-Szenarien genutzt wird. Die Wiederherstellung erfolgt entweder über die CLI oder über Schedule-Trigger, die im Vorfeld definiert wurden.

Volume-Daten sichern: Snapshots und Dateisystem-Backup

Für die Persistent Volumes bietet Velero zwei Verfahren. Bei vorhandener CSI-Unterstützung erstellt der Backup-Server Volume-Snapshots des Storage-Providers, darunter Amazon EBS, GCE Persistent Disk, Ceph RBD und Longhorn. Das zweite Verfahren nutzt den Node-Agent, der auf Datei-Ebene aus den gemounteten Volumes liest und die Daten in den Objektspeicher kopiert. Diese „File System Backup“ genannte Methode setzt auf Module der Backup-Tools restic und kopia und arbeitet mit beliebigen Backends, auch mit NFS oder lokalen Pfaden. Ein Plug-in-System ergänzt weitere Backup- und Snapshot-Plattformen, ohne dass der Kern angepasst werden muss. Die Wahl zwischen Snapshots und Dateisystem-Backup hängt von der verfügbaren Storage-Infrastruktur und den Anforderungen an die Konsistenz ab.

Neuerungen der aktuellen Hauptversion

Die jüngste Hauptversion von Velero bringt mehrere Verbesserungen. Sie verarbeitet mehrere Backups gleichzeitig, sodass parallele Anfragen verschiedener Nutzer ohne gegenseitige Behinderung ablaufen – ein wichtiger Fortschritt für Multi-Team-Umgebungen. Cache-Volumes für die Data-Mover-Pods verhindern Abbrüche, wenn der ephemere Speicher eines Knotens knapp wird, und erhöhen den Durchsatz bei der Wiederherstellung. Glob-Ausdrücke filtern Namespaces im Stapel, eine VolumePolicy steuert Aktionen nach der Phase eines PersistentVolumeClaim und überspringt etwa PVCs im Status „Pending“. Ausgelagerte Repository-Operationen entlasten den Velero-Server und vermeiden einen OOM-Kill, der bei großen Datenmengen auftreten kann. Die Tests laufen gegen Kubernetes 1.33 bis 1.35, der Upgrade-Pfad deckt zwei Minor-Versionen rückwärts ab, sodass bestehende Installationen ohne Brüche aktualisiert werden können.

Mit seiner Kombination aus Ressourcen-Backup, Volume-Snapshots und Dateisystem-Backup deckt Velero die wichtigsten Sicherungsanforderungen in Kubernetes-Umgebungen ab. Die Integration in den Objektspeicher und die Unterstützung gängiger Cloud-Provider machen es zu einer flexiblen Lösung für Unternehmen, die ihre Cluster-Daten dauerhaft sichern und im Disaster-Recovery-Fall schnell wiederherstellen müssen. Die kontinuierliche Weiterentwicklung unter dem Dach der CNCF sichert langfristige Kompatibilität und Community-Unterstützung. Mit der zunehmenden Verbreitung von Kubernetes in Produktionsumgebungen wird ein zuverlässiges Backup-Tool wie Velero zur Pflicht – die aktive Community und die regelmäßigen Releases versprechen auch in Zukunft neue Funktionen und eine breite Palette an Integrationsmöglichkeiten.

Diesen Artikel teilen