Zum Hauptinhalt springen
Version: 3.0.0-alpha (Diátaxis)

Automatische Sicherungen konfigurieren

Diese Anleitung erklärt, wie Sie automatische Sicherungen Ihrer PostgreSQL-Datenbank auf einen S3-kompatiblen Speicher aktivieren und konfigurieren, über den CloudNativePG-Operator.

Voraussetzungen

  • kubectl konfiguriert mit Ihrer Hikube-Kubeconfig
  • Eine PostgreSQL-Instanz auf Hikube bereitgestellt (oder ein Manifest zur Bereitstellung)
  • Ein zugänglicher S3-kompatibler Bucket (Hikube Object Storage, AWS S3, etc.)
  • Die S3-Anmeldedaten: Access Key, Secret Key, Endpoint-URL

Schritte

1. S3-Anmeldedaten vorbereiten

Bevor Sie die Sicherungen aktivieren, sammeln Sie die folgenden Informationen:

ParameterBeschreibungBeispiel
destinationPathS3-Pfad des Ziel-Bucketss3://backups/postgresql/production/
endpointURLURL des S3-Endpointshttps://prod.s3.hikube.cloud
s3AccessKeyS3-ZugriffsschlüsseloobaiRus9pah8PhohL1ThaeTa4UVa7gu
s3SecretKeyS3-Geheimschlüsselju3eum4dekeich9ahM1te8waeGai0oog
Tipp

Wenn Sie den Hikube Object Storage verwenden, ist der Standard-Endpoint https://prod.s3.hikube.cloud. Für einen externen Anbieter (AWS S3, Scaleway, etc.) geben Sie die entsprechende URL an.

2. PostgreSQL-Manifest mit aktiviertem Backup erstellen

Erstellen oder ändern Sie Ihr Manifest, um den Abschnitt backup einzufügen:

postgresql-with-backup.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Postgres
metadata:
name: my-database
spec:
replicas: 3
resourcesPreset: medium
size: 20Gi

users:
admin:
password: SecureAdminPassword

databases:
myapp:
roles:
admin:
- admin

backup:
enabled: true
schedule: "0 2 * * *"
retentionPolicy: 30d
destinationPath: s3://backups/postgresql/my-database/
endpointURL: https://prod.s3.hikube.cloud
s3AccessKey: oobaiRus9pah8PhohL1ThaeTa4UVa7gu
s3SecretKey: ju3eum4dekeich9ahM1te8waeGai0oog

Details der Backup-Parameter:

ParameterBeschreibungStandardwert
backup.enabledAutomatische Sicherungen aktivierenfalse
backup.scheduleCron-Zeitplan (hier: täglich um 2 Uhr)"0 2 * * * *"
backup.retentionPolicyAufbewahrungsdauer der Sicherungen"30d"
backup.destinationPathS3-Zielpfad(erforderlich)
backup.endpointURLURL des S3-Endpoints(erforderlich)
backup.s3AccessKeyS3-Zugriffsschlüssel(erforderlich)
backup.s3SecretKeyS3-Geheimschlüssel(erforderlich)
Hinweis

Der schedule verwendet die Standard-Cron-Syntax. Gängige Beispiele:

  • "0 2 * * *": täglich um 2:00 Uhr
  • "0 */6 * * *": alle 6 Stunden
  • "0 2 * * 0": jeden Sonntag um 2:00 Uhr

3. Konfiguration anwenden

kubectl apply -f postgresql-with-backup.yaml

4. Überprüfen, ob die Sicherungen konfiguriert sind

Überprüfen Sie, dass die PostgreSQL-Instanz mit aktiviertem Backup bereitgestellt wurde:

kubectl get postgres my-database -o yaml | grep -A 10 backup

Erwartetes Ergebnis:

  backup:
enabled: true
schedule: "0 2 * * *"
retentionPolicy: 30d
destinationPath: s3://backups/postgresql/my-database/
endpointURL: https://prod.s3.hikube.cloud

Überprüfung

Um zu bestätigen, dass die Sicherungen korrekt funktionieren:

  1. Überprüfen Sie die Logs des PostgreSQL-Primary-Pods auf Sicherungsmeldungen:
kubectl logs postgres-my-database-1 -c postgres | grep -i backup
  1. Überprüfen Sie den Inhalt des S3-Buckets, um zu bestätigen, dass die WAL-Dateien und Base-Backups gesendet werden.

  2. Überprüfen Sie die Events der Instanz:

kubectl describe postgres my-database
Warnung

Testen Sie regelmäßig die Wiederherstellung Ihrer Sicherungen. Eine Sicherung, die nie getestet wurde, ist keine zuverlässige Sicherung. Lesen Sie die Anleitung Sicherung wiederherstellen (PITR).

Weiterführende Informationen