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

Concepts — PostgreSQL

Architecture

PostgreSQL sur Hikube est un service managé basé sur l'opérateur CloudNativePG. Chaque instance déployée via la ressource Postgres crée un cluster répliqué avec failover automatique, réplication streaming et sauvegarde intégrée.


Terminologie

TermeDescription
PostgresRessource Kubernetes (apps.cozystack.io/v1alpha1) représentant un cluster PostgreSQL managé.
PrimaryInstance principale qui accepte les lectures et écritures.
ReplicaInstance en lecture seule, synchronisée par streaming replication depuis le primary.
CloudNativePGOpérateur Kubernetes qui gère le cycle de vie des clusters PostgreSQL (déploiement, failover, backup).
PITRPoint-In-Time Recovery — restauration à un instant précis grâce à l'archivage continu des WAL.
WALWrite-Ahead Log — journal des transactions PostgreSQL, base du PITR et de la réplication.
QuorumNombre minimum de réplicas synchrones requis avant de confirmer une écriture.
resourcesPresetProfil de ressources prédéfini (nano à 2xlarge) pour simplifier le dimensionnement.

Réplication et haute disponibilité

CloudNativePG assure la haute disponibilité via :

  1. Streaming replication : les réplicas reçoivent les WAL en temps réel depuis le primary
  2. Failover automatique : si le primary tombe, un réplica est promu automatiquement
  3. Réplication synchrone (optionnel) : le primary attend la confirmation d'écriture des réplicas avant de valider une transaction

Le champ quorum définit le nombre de réplicas synchrones :

  • quorum: 0 (défaut) — réplication asynchrone, meilleures performances
  • quorum: 1 — au moins 1 réplica synchrone, protection contre la perte de données
astuce

Pour la production, configurez replicas: 3 et quorum: 1 pour un bon compromis entre performance et durabilité.


Sauvegarde et restauration

PostgreSQL sur Hikube supporte deux mécanismes de sauvegarde :

Sauvegarde continue (WAL archiving)

Les WAL sont archivés en continu vers un bucket S3. Cela permet le PITR (Point-In-Time Recovery) — restaurer la base à n'importe quel instant dans le passé.

Sauvegarde planifiée

Un cron schedule déclenche des sauvegardes complètes (base backup) à intervalles réguliers. La politique de rétention (retentionPolicy) détermine la durée de conservation.

ParamètreDescription
backup.schedulePlanification cron (ex: 0 2 * * *)
backup.retentionPolicyDurée de rétention (ex: 30d)
backup.s3*Identifiants et endpoint du bucket S3

Gestion des utilisateurs et bases

Chaque cluster PostgreSQL permet de déclarer :

  • Utilisateurs avec mot de passe
  • Bases de données avec owner
  • Rôles : admin (lecture/écriture), readonly (lecture seule)

Les credentials sont stockés dans un Secret Kubernetes nommé <instance>-credentials.


Presets de ressources

PresetCPUMémoire
nano250m128Mi
micro500m256Mi
small1512Mi
medium11Gi
large22Gi
xlarge44Gi
2xlarge88Gi
attention

Si le champ resources (CPU/mémoire explicites) est défini, resourcesPreset est ignoré. Les deux approches sont mutuellement exclusives.


Limites et quotas

ParamètreValeur
Réplicas maxSelon quota tenant
Taille stockageVariable (size en Gi)
Connexions par utilisateurConfigurables par base

Pour aller plus loin