Aller au contenu principal
Version: 3.0.0-alpha (Diátaxis)

Comment configurer les sauvegardes automatiques

Ce guide explique comment activer et configurer les sauvegardes automatiques de votre base PostgreSQL vers un stockage compatible S3, via l'opérateur CloudNativePG.

Prérequis

  • kubectl configuré avec votre kubeconfig Hikube
  • Une instance PostgreSQL déployée sur Hikube (ou un manifeste prêt à déployer)
  • Un bucket S3-compatible accessible (Hikube Object Storage, AWS S3, etc.)
  • Les identifiants S3 : access key, secret key, URL du endpoint

Étapes

1. Préparer les identifiants S3

Avant d'activer les sauvegardes, rassemblez les informations suivantes :

ParamètreDescriptionExemple
destinationPathChemin S3 du bucket de destinations3://backups/postgresql/production/
endpointURLURL du endpoint S3https://prod.s3.hikube.cloud
s3AccessKeyClé d'accès S3oobaiRus9pah8PhohL1ThaeTa4UVa7gu
s3SecretKeyClé secrète S3ju3eum4dekeich9ahM1te8waeGai0oog
astuce

Si vous utilisez le stockage objet Hikube, l'endpoint par défaut est https://prod.s3.hikube.cloud. Pour un fournisseur externe (AWS S3, Scaleway, etc.), renseignez l'URL correspondante.

2. Créer le manifeste PostgreSQL avec backup activé

Créez ou modifiez votre manifeste pour inclure la section 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

Détail des paramètres de backup :

ParamètreDescriptionValeur par défaut
backup.enabledActive les sauvegardes automatiquesfalse
backup.schedulePlanification cron (ici : tous les jours à 2h)"0 2 * * * *"
backup.retentionPolicyDurée de rétention des sauvegardes"30d"
backup.destinationPathChemin S3 de destination(requis)
backup.endpointURLURL du endpoint S3(requis)
backup.s3AccessKeyClé d'accès S3(requis)
backup.s3SecretKeyClé secrète S3(requis)
remarque

La planification schedule utilise la syntaxe cron standard. Exemples courants :

  • "0 2 * * *" : tous les jours à 2h00
  • "0 */6 * * *" : toutes les 6 heures
  • "0 2 * * 0" : tous les dimanches à 2h00

3. Appliquer la configuration

kubectl apply -f postgresql-with-backup.yaml

4. Vérifier que les sauvegardes sont configurées

Vérifiez que l'instance PostgreSQL est bien déployée avec le backup activé :

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

Résultat attendu :

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

Vérification

Pour confirmer que les sauvegardes fonctionnent correctement :

  1. Vérifiez les logs du pod PostgreSQL primary pour les messages relatifs aux sauvegardes :
kubectl logs postgres-my-database-1 -c postgres | grep -i backup
  1. Vérifiez le contenu du bucket S3 pour confirmer que les fichiers WAL et les sauvegardes base sont bien envoyés.

  2. Vérifiez les événements liés à l'instance :

kubectl describe postgres my-database
attention

Testez régulièrement la restauration de vos sauvegardes. Une sauvegarde qui n'a jamais été testée n'est pas une sauvegarde fiable. Consultez le guide Comment restaurer une sauvegarde (PITR).

Pour aller plus loin