Aller au contenu principal
Version: 1.0.0

FerretDB

FerretDB est une base de données compatible avec MongoDB, s'appuyant sur PostgreSQL comme backend. Elle permet de bénéficier de la simplicité de MongoDB tout en exploitant la robustesse de PostgreSQL.


Exemple de Configuration

Voici un exemple de configuration pour FerretDB avec des sauvegardes activées et une personnalisation des réplicas :

apiVersion: apps.cozystack.io/v1alpha1
kind: FerretDB
metadata:
name: ferretdb-example
spec:
external: true
size: 20Gi
replicas: 3
storageClass: "replicated"
quorum:
minSyncReplicas: 1
maxSyncReplicas: 2
backup:
enabled: false
users:
user1:
password: "securepassword"
# s3Region: "us-east-1"
# s3Bucket: "s3.tenant.hikube.cloud/postgres-backups"
# schedule: "0 2 * * *"
# cleanupStrategy: "--keep-last=5 --keep-daily=5 --keep-within-weekly=1m"
# s3AccessKey: "your-s3-access-key"
# s3SecretKey: "your-s3-secret-key"
# resticPassword: "your-restic-password"

À l'aide du kubeconfig fourni par Hikube et de ce yaml d'exemple, enregistré sous un fichier manifest.yaml, vous pouvez facilement tester le déploiement de l'application à l'aide de la commande suivante :

kubectl apply -f manifest.yaml

Paramètres Configurables

Paramètres Généraux

Ces paramètres permettent de configurer les aspects fondamentaux de FerretDB.

NomDescriptionValeur Par Défaut
externalPermet l'accès externe à FerretDB depuis l'extérieur du cluster.false
sizeTaille du volume persistant principal.10Gi
replicasNombre de réplicas PostgreSQL pour FerretDB.2
storageClassClasse de stockage Kubernetes utilisée pour les données."replicated" ou "local"
quorum.minSyncReplicasNombre minimum de réplicas synchrones nécessaires pour qu'une transaction soit considérée comme validée.0
quorum.maxSyncReplicasNombre maximum de réplicas synchrones pouvant valider une transaction (doit être inférieur au nombre total d'instances).0

Paramètres de Configuration

NomDescriptionValeur Par Défaut
usersConfiguration des utilisateurs FerretDB. Chaque utilisateur peut avoir des permissions personnalisées.{}

Exemple :

users:
user1:
password: strongpassword
user2:
readonly: true
password: hackme

Paramètres de Backup

Ces paramètres permettent de configurer les sauvegardes périodiques de FerretDB.

NomDescriptionValeur Par Défaut
backup.enabledActive ou désactive les sauvegardes périodiques.false
backup.s3RegionRégion AWS S3 où les sauvegardes sont stockées.us-east-1
backup.s3BucketNom du bucket S3 utilisé pour le stockage des sauvegardes.s3.example.org/postgres-backups
backup.schedulePlanification des sauvegardes (au format Cron).0 2 * * *
backup.cleanupStrategyStratégie pour nettoyer les anciennes sauvegardes.--keep-last=3 --keep-daily=3 --keep-within-weekly=1m
backup.s3AccessKeyClé d'accès AWS S3 pour l'authentification.oobaiRus9pah8PhohL1ThaeTa4UVa7gu
backup.s3SecretKeyClé secrète AWS S3 pour l'authentification.ju3eum4dekeich9ahM1te8waeGai0oog
backup.resticPasswordMot de passe utilisé pour chiffrer les sauvegardes Restic.ChaXoveekoh6eigh4siesheeda2quai0

Restaurer un Backup

Vous pouvez restaurer un backup de FerretDB à l'aide de Restic. Voici les étapes principales :

Trouver un Snapshot

Utilisez la commande suivante pour lister les snapshots disponibles dans votre bucket S3 :

restic -r s3:s3.tenant.hikube.cloud/ferret-backups/table_name snapshots

Restaurer le Snapshot

Pour restaurer le snapshot le plus récent, exécutez la commande suivante en spécifiant une cible de restauration :

restic -r s3:s3.tenant.hikube.cloud/ferret-backups/table_name restore latest --target /tmp/

Ressources Additionnelles

Pour approfondir vos connaissances sur FerretDB et ses fonctionnalités, voici quelques ressources utiles :

  • Documentation Officielle FerretDB Découvrez les détails techniques, les options de configuration et les exemples d'utilisation de FerretDB.

  • Guide Restic Apprenez à utiliser Restic pour la gestion des sauvegardes, y compris les meilleures pratiques pour le chiffrement et la restauration.

  • Tutoriel : Format Cron Un outil pratique pour créer et comprendre les expressions Cron utilisées pour les sauvegardes planifiées.