Vai al contenuto principale
Versione: 3.0.0-alpha (Diátaxis)

Come configurare i backup automatici

Questa guida spiega come attivare e configurare i backup automatici del vostro database PostgreSQL verso uno storage compatibile S3, tramite l'operatore CloudNativePG.

Prerequisiti

  • kubectl configurato con il vostro kubeconfig Hikube
  • Un'istanza PostgreSQL distribuita su Hikube (o un manifesto pronto per il deployment)
  • Un bucket S3-compatible accessibile (Hikube Object Storage, AWS S3, ecc.)
  • Le credenziali S3: access key, secret key, URL dell'endpoint

Passaggi

1. Preparare le credenziali S3

Prima di attivare i backup, raccogliete le seguenti informazioni:

ParametroDescrizioneEsempio
destinationPathPercorso S3 del bucket di destinaziones3://backups/postgresql/production/
endpointURLURL dell'endpoint S3https://prod.s3.hikube.cloud
s3AccessKeyChiave di accesso S3oobaiRus9pah8PhohL1ThaeTa4UVa7gu
s3SecretKeyChiave segreta S3ju3eum4dekeich9ahM1te8waeGai0oog
suggerimento

Se utilizzate lo storage oggetti Hikube, l'endpoint predefinito e https://prod.s3.hikube.cloud. Per un fornitore esterno (AWS S3, Scaleway, ecc.), inserite l'URL corrispondente.

2. Creare il manifesto PostgreSQL con backup attivato

Create o modificate il vostro manifesto per includere la sezione backup:

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

Dettaglio dei parametri di backup:

ParametroDescrizioneValore predefinito
backup.enabledAttiva i backup automaticifalse
backup.schedulePianificazione cron (qui: ogni giorno alle 2)"0 2 * * * *"
backup.retentionPolicyDurata di retention dei backup"30d"
backup.destinationPathPercorso S3 di destinazione(richiesto)
backup.endpointURLURL dell'endpoint S3(richiesto)
backup.s3AccessKeyChiave di accesso S3(richiesto)
backup.s3SecretKeyChiave segreta S3(richiesto)
nota

La pianificazione schedule utilizza la sintassi cron standard. Esempi comuni:

  • "0 2 * * *": ogni giorno alle 2:00
  • "0 */6 * * *": ogni 6 ore
  • "0 2 * * 0": ogni domenica alle 2:00

3. Applicare la configurazione

kubectl apply -f postgresql-with-backup.yaml

4. Verificare che i backup siano configurati

Verificate che l'istanza PostgreSQL sia stata distribuita con il backup attivato:

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

Risultato atteso:

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

Verifica

Per confermare che i backup funzionino correttamente:

  1. Verificate i log del pod PostgreSQL primary per i messaggi relativi ai backup:
kubectl logs postgres-my-database-1 -c postgres | grep -i backup
  1. Verificate il contenuto del bucket S3 per confermare che i file WAL e i backup base vengano inviati.

  2. Verificate gli eventi legati all'istanza:

kubectl describe postgres my-database
avviso

Testate regolarmente il ripristino dei vostri backup. Un backup che non è mai stato testato non è un backup affidabile. Consultate la guida Come ripristinare un backup (PITR).

Per approfondire