[k3s] Back-Up für die Datenbanken
User Story
Als DevOps Engineer,
möchte ich ein automatisiertes Backup-System für meine PostgreSQL-Datenbanken innerhalb eines Kubernetes-Clusters implementieren,
damit ich im Falle eines Datenverlusts oder einer Beschädigung der Daten schnell eine funktionierende Kopie meiner Datenbank wiederherstellen kann, um Ausfallzeiten zu minimieren und die Geschäftsoperationen kontinuierlich aufrechtzuerhalten.
Warum
Die täglichen Snapshots unserer VMs reichen nicht aus, um unsere Datenbanken effektiv zu sichern. Eine Wiederherstellung eines Snapshots ist nur im äußersten Notfall sinnvoll, da sie keine gezielte Datenwiederherstellung ermöglicht und den Verlust von bis zu einem kompletten Tag an Daten zur Folge haben kann. Ein kontinuierliches Backup der Datenbanken wäre daher wesentlich effektiver.
Darum möchte ich ein kontinuierliches Backup der Datenbanken haben. Der einfachste Weg wäre aus meiner Sicht, dass wir unser DB-Deployment auf den Cloudnative-PG Kubernetes Operator umstellen. Der Operator hat direkt eine Hot-Backup-Methode implementiert. Diese erlaubt uns, PITR Recovery einzelner Datenbanken zu machen.
Für die Speicherung der Backups wäre zunächst ein S3-Bucket oder eine MinIO-Instanz innerhalb des Clusters geplant. Dies sollte jedoch so schnell wie möglich überarbeitet werden, um die Backups extern zu speichern und somit zusätzliche Sicherheit zu gewährleisten. Allerdings ist das für den Moment die einfachste und schnellste Methode, um überhaupt ein kontinuierliches Backup zu implementieren.
Links, Hinweise, Bemerkungen
Akzeptanzkriterien
-
Automatisierung: Das Backup-System muss die Backups automatisch in einem definierten Intervall durchführen, ohne manuelles Eingreifen. -
Versionierung: Das System sollte mehrere Versionen von Backups speichern, um verschiedene Wiederherstellungspunkte zur Verfügung zu haben. -
Einfache Wiederherstellung: Es muss ein einfacher Prozess existieren, um die Datenbank aus einem Backup wiederherstellen zu können. -
Dokumentation: Es sollten klare Anleitungen zur Einrichtung und Wartung des Backup-Systems bereitgestellt werden.
Mögliche Folgeaktivitäten (vom Entwickler zu ergänzen)
-
Definition of Done was checked.