Zum Inhalt

Backup-Übersicht

Übersicht

Die Polycrate API bietet eine zentrale Read-Only-Ansicht auf Velero- und **CloudNativePG-**Backups und -Schedules in verbundenen Clustern.

Read-Only-Integration

Die API zeigt Status, triggert aber keine Backups oder Restores. Ausführung: Velero-CLI, CNPG-CRs, Block-Actions. How-to: Backup & Restore · Disaster Recovery.

Architektur

Das Backup-Monitoring ist in den Polycrate Operator integriert. Der Operator erkennt Velero-Installationen im Cluster und synchronisiert Backup-Status automatisch mit der Polycrate API.

graph TB
    subgraph cluster1[Kubernetes Cluster 1]
        VELERO1[Velero]
        OP1[Polycrate Operator]
        BACKUP_CRD1[Backup CRs]

        VELERO1 --> BACKUP_CRD1
        OP1 -->|Liest| BACKUP_CRD1
    end

    subgraph cluster2[Kubernetes Cluster 2]
        VELERO2[Velero]
        OP2[Polycrate Operator]
        BACKUP_CRD2[Backup CRs]

        VELERO2 --> BACKUP_CRD2
        OP2 -->|Liest| BACKUP_CRD2
    end

    subgraph api[Polycrate API]
        OVERVIEW[Aggregierte Übersicht]
        DASHBOARD[Status-Dashboard]
        ALERTS[Alerts bei Problemen]
        HISTORY[Historie & Trends]
    end

    OP1 -->|Push Status| api
    OP2 -->|Push Status| api

Operator-basiertes Backup-Monitoring (Standard)

In Kubernetes-Clustern mit installiertem Polycrate Operator werden Backups automatisch erkannt und an die API übermittelt:

  1. Velero-Erkennung: Operator prüft bei Cluster-Reconciliation auf Velero-Installation
  2. CRD-Lesen: Liest Backup, Schedule und BackupStorageLocation CRs
  3. Status-Push: Synchronisiert Backup-Status an die Polycrate API
  4. S3-Verknüpfung: Verknüpft Backups mit S3-Buckets aus BackupStorageLocation

Vorteile des Operator-basierten Ansatzes:

  • ✅ Automatische Velero-Erkennung
  • ✅ Echtzeit-Updates bei Backup-Status-Änderungen
  • ✅ Keine manuelle Konfiguration erforderlich
  • ✅ Funktioniert auch bei temporären API-Ausfällen

Fallback: API-Pull (ohne Operator)

Für Workspaces ohne verbundenen Polycrate Operator kann die API Backup-Status direkt vom Cluster abrufen:

graph LR
    subgraph cluster[Cluster ohne Operator]
        VELERO[Velero]
        BACKUP_CRD[Backup CRs]
    end

    API[Polycrate API]

    API -->|Pull Status| BACKUP_CRD

Empfehlung

Für optimale Backup-Überwachung wird der Polycrate Operator empfohlen. Der Fallback-Modus bietet weniger Echtzeit-Updates und erfordert API-Zugriff auf den Cluster.

Was Sie sehen können

Backup-Dashboard

Unter Kubernetes → Backups finden Sie:

Information Beschreibung
Alle Backups Übersicht aller Velero-Backups über alle Cluster
Status completed, running, failed, partial
Cluster-Zuordnung Welches Backup gehört zu welchem Cluster
Zeitstempel Wann wurde das Backup gestartet/beendet
Ablauf Wann läuft das Backup ab (Retention)

Backup-Status

Status Bedeutung
pending Backup geplant aber noch nicht gestartet
running Backup läuft gerade
completed Backup erfolgreich abgeschlossen
partial Backup mit Warnungen abgeschlossen
failed Backup fehlgeschlagen
expired Backup abgelaufen

Backup-Details

Für jedes Backup sichtbar:

  • Erstellungszeitpunkt: Wann wurde gesichert?
  • Ablaufzeit (Expiration): Wann wird das Backup gelöscht?
  • Retention Policy: TTL-Konfiguration (z.B. "96h")
  • Provider: Backup-Tool (Velero, CloudnativePG, etc.)
  • S3-Bucket: Wo wird das Backup gespeichert?
  • Velero-Statistiken: Volume Snapshots, Warnings, Errors

Backup-Arten

Art Beschreibung
cluster Full Cluster Backup (alle Namespaces)
app Application-spezifisches Backup
database Datenbank-spezifisches Backup (z.B. CloudnativePG)

Backup Schedules

Der Operator erkennt auch Velero Schedules und zeigt diese im Cluster-Detail. Polycrate überwacht jeden Schedule und zeigt an, ob das letzte Backup überfällig ist.

Überfällig-Status

Ein Backup Schedule gilt als überfällig (overdue), wenn seit dem letzten erfolgreichen Backup mehr Zeit vergangen ist als das konfigurierte Intervall. Polycrate prüft diesen Status alle 5 Minuten anhand des tatsächlichen letzten Backups (last_backup_at).

Überfällige Schedules werden im Operations-Dashboard unter "Overdue Backup Schedules" hervorgehoben und lösen eine Benachrichtigung aus – so werden verpasste Backups sofort sichtbar, ohne manuell suchen zu müssen.

Verbesserung in API 0.23.0

Die Erkennung überfälliger Backup Schedules wurde in Version 0.23.0 korrigiert: Bisher wurde fälschlicherweise der updated_at-Timestamp als Referenz genutzt, was zu falschen Überfällig-Meldungen führen konnte. Seit 0.23.0 wird korrekt last_backup_at verwendet.

# Beispiel: Erkannter Schedule
name: daily-backup
schedule: "0 2 * * *"
template:
  includedNamespaces: ["*"]
  snapshotVolumes: true
status:
  phase: Enabled
  lastBackup: "2025-01-27T02:00:00Z"

Cluster-übergreifende Übersicht

Die Polycrate API zeigt Backups aller verbundenen Cluster in einer einzigen Ansicht:

Cluster Letztes Backup Status Nächstes geplant
prod-eu vor 2 Stunden ✅ completed in 22 Stunden
prod-us vor 3 Stunden ✅ completed in 21 Stunden
staging vor 1 Tag ⚠️ partial in 23 Stunden

Vorteile der zentralen Übersicht

  • Schnelle Problemerkennung: Fehlgeschlagene Backups sofort sichtbar
  • Kein Cluster-Hopping: Alle Backup-Status an einem Ort
  • Trend-Analyse: Erkennen von wiederkehrenden Problemen
  • Compliance-Nachweis: Dokumentation der Backup-Ausführung

Das Dashboard zeigt aggregierte Informationen:

  • Backup-Erfolgsrate: % erfolgreiche Backups (letzte 7/30 Tage)
  • Fehler-Trend: Nehmen Backup-Fehler zu oder ab?
  • Durchschnittliche Backup-Größe: Pro Cluster/Namespace
  • Letzte erfolgreiche Backups: Pro kritischem Namespace

Velero-Konfiguration (im Cluster)

Außerhalb der Polycrate API

Die folgenden Aktionen werden direkt im Kubernetes-Cluster durchgeführt, nicht in der Polycrate API.

Backup triggern

# Im Kubernetes-Cluster
velero backup create manual-backup-$(date +%Y%m%d) \
  --include-namespaces production

Restore ausführen

# Im Kubernetes-Cluster
velero restore create --from-backup daily-backup-20250115

Schedule konfigurieren

# Im Kubernetes-Cluster
velero schedule create daily-backup \
  --schedule="0 2 * * *" \
  --include-namespaces production \
  --ttl 168h

Best Practices

Monitoring-Empfehlungen

  1. Polycrate Operator installieren: Für automatisches Backup-Monitoring
  2. Alert-Konfiguration prüfen: Stellen Sie sicher, dass Backup-Alerts aktiviert sind
  3. Regelmäßige Dashboard-Checks: Täglicher Blick auf Backup-Status
  4. Trend-Beobachtung: Achten Sie auf abnehmende Erfolgsraten

Bei Backup-Fehlern

  1. In der Polycrate API: Alert-Details und Fehlermeldung prüfen
  2. Im Cluster: Velero-Logs analysieren
    kubectl logs -n velero deployment/velero
    
  3. Storage prüfen: Ist der Backup-Storage erreichbar?
  4. Manuelles Retry: Backup manuell neu starten

Wichtige Namespaces überwachen

Stellen Sie sicher, dass kritische Namespaces regelmäßig gesichert werden:

  • Produktions-Workloads
  • Datenbanken und stateful Services
  • Konfigurationen und Secrets

Unterstützte Backup-Provider

Provider Status Beschreibung
Velero Unterstützt Cluster- und Application-Backups (Backup, Schedule)
CloudNativePG Unterstützt PostgreSQL (Backup, ScheduledBackup) — Operator ab CLI 0.49.0

Siehe auch