Aller au contenu principal

Concepts — PostgreSQL

Architecture​

PostgreSQL sur Hikube est un service managé. Chaque cluster créé depuis la console est un ensemble d'instances PostgreSQL répliquées, avec failover automatique et réplication streaming. Il appartient à un projet et consomme les quotas de ce projet (CPU, mémoire, stockage).


Terminologie​

TermeDescription
Cluster PostgreSQLInstance managée créée depuis la console, composée d'un primary et de réplicas éventuels.
ProjetEspace isolé qui regroupe vos ressources et porte les quotas.
PrimaryInstance principale qui accepte les lectures et écritures.
RéplicaInstance en lecture seule, synchronisée par streaming replication depuis le primary.
Preset d'instanceGabarit de ressources (CPU, mémoire) alloué à chaque nœud du cluster.
Accès externeOption qui expose le cluster sur Internet via une adresse IP publique.
ExtensionModule PostgreSQL (par exemple pgcrypto, vector) activé par base de données.
WALWrite-Ahead Log — journal des transactions PostgreSQL, base de la réplication.

Réplication et haute disponibilité​

La haute disponibilité repose sur :

  1. Streaming replication : les réplicas reçoivent les WAL en continu depuis le primary
  2. Failover automatique : si le primary tombe, un réplica est promu automatiquement

Le nombre de réplicas se choisit à la création, dans le champ Nombre de réplicas :

Valeur proposéeUsage
1 (Standalone)Développement, tests
2 (Haute disponibilité)Production avec un standby
3 (Haute disponibilité max)Production critique
attention

Le nombre de réplicas ne peut pas être modifié après la création (« Le mode ne peut pas être modifié après création »). Choisissez-le en fonction de votre besoin de disponibilité. Pour le changer, contactez le support.

La réplication synchrone (quorum) n'est pas proposée dans la console ; contactez le support.


Bases de données, utilisateurs et droits​

Chaque cluster dispose :

  • d'une base système postgres, créée automatiquement et réservée à la plateforme (voir ci-dessous) ;
  • des bases de données que vous ajoutez, à la création ou ensuite (onglet Bases de données), avec leurs extensions ;
  • des utilisateurs que vous créez (onglet Utilisateurs). Chaque utilisateur reçoit, base par base, l'un des deux droits suivants :
    • Administrateur (Admin) : lecture et écriture ;
    • Lecture seule (Read-only) : lecture uniquement.

Le mot de passe d'un utilisateur est généré par la plateforme et affiché une seule fois, à la création ou après une rotation. Il n'est plus consultable ensuite : en cas de perte, générez-en un nouveau avec Changer le mot de passe.

Bases système​

postgres, template0 et template1 sont des bases système, réservées à la plateforme :

  • les assistants d'utilisateur ne les proposent pas, et aucun droit ne peut y être attribué ;
  • leur création est refusée : « « postgres » est une base système : choisissez une base applicative. » ;
  • dans la liste des bases, Gérer les extensions et Supprimer la base de données sont désactivés sur une base système : « Base système : elle ne peut être ni modifiée ni supprimée. »

Un utilisateur qui détient déjà un droit sur une base système le conserve tel quel. Dans Gérer les accès, ce droit s'affiche verrouillé, avec un avertissement : vous pouvez retirer la ligne, mais pas la modifier. Donnez à vos utilisateurs leurs droits sur des bases applicatives.

Règles de nommage​

ÉlémentRègle
Nom du cluster3 à 16 caractères : minuscules, chiffres et tirets ; commence par une lettre, se termine par une lettre ou un chiffre
Nom d'utilisateur3 à 16 caractères : minuscules, chiffres et tirets bas (_) ; commence par une lettre minuscule ou un tiret bas. Pas de tiret (-).
Nom de base de données1 à 54 caractères : minuscules, chiffres, tirets bas (_) et tirets (-) ; commence par une lettre ou un tiret bas, mais pas par pg_

Les noms d'utilisateur postgres, admin, root, owner, superuser, streaming_replica ainsi que ceux commençant par pg_ sont réservés.


Presets d'instance​

Le Preset d'instance définit la capacité allouée à chaque nœud du cluster. Les presets reprennent les tailles des machines virtuelles, séries u1, s1 et m1 : un preset a les mêmes ressources que la VM du même nom. La liste affichée par l'assistant fait foi :

PresetCPUMémoire
u1.medium14Gi
u1.large28Gi
u1.xlarge416Gi
u1.2xlarge832Gi
u1.4xlarge1664Gi
u1.8xlarge32128Gi
s1.small12Gi
s1.medium24Gi
s1.large48Gi
s1.xlarge816Gi
s1.2xlarge1632Gi
s1.4xlarge3264Gi
m1.large216Gi
m1.xlarge432Gi
m1.2xlarge864Gi
m1.4xlarge16128Gi
m1.8xlarge32256Gi

L'assistant ne présélectionne aucun preset : choisissez-en un pour continuer. Chaque option indique ses ressources, par exemple « u1.medium — 1 CPU / 4Gi ». Si la liste ne peut pas être chargée, l'assistant affiche « La liste des presets n'a pas pu être chargée. Réessayez plus tard ou contactez le support. »

Un cluster créé avec un ancien preset (nano, micro, small, medium, large, xlarge ou 2xlarge) le conserve et fonctionne comme avant : le formulaire Modifier l'affiche tel quel et l'enregistre sans changement. Si les ressources d'un cluster ont été fixées hors de son preset, le formulaire l'indique par la mention « (forcé) ».

La définition de ressources CPU/mémoire libres (hors preset) n'est pas proposée dans la console ; contactez le support.


Accès réseau​

  • Hôte interne : toujours attribué, affiché dans la zone Interne de la carte Connexion et Bases de données. Il pointe vers le primaire et se joint depuis les VM et les clusters Kubernetes du même projet, pas depuis un autre projet ni depuis Internet.
  • Accès externe désactivé (par défaut) : le cluster n'est pas exposé sur Internet. La zone Externe affiche Désactivé.
  • Accès externe activé : la plateforme attribue une adresse IP publique, affichée dans la zone Externe. Le port est le port PostgreSQL standard, 5432.

L'accès externe peut être activé ou désactivé après la création, depuis Modifier. Son coût (adresse IP publique) est inclus dans le Coût estimé de l'assistant.


Sauvegarde et restauration​

Les clusters PostgreSQL se sauvegardent vers un bucket S3 du projet et se restaurent depuis l'onglet Sauvegardes de leur page, avec le service de sauvegarde. Les journaux de transactions sont archivés en continu entre deux sauvegardes, ce qui permet de restaurer la base à un instant précis. Voir Configurer les sauvegardes et Restaurer une sauvegarde.


Quotas et coût​

L'assistant de création affiche, dès l'étape Configuration, le Coût estimé (mensuel et horaire) et l'impact du cluster sur les quotas du projet (CPU, mémoire, stockage). La consommation tient compte du preset, du nombre de réplicas et de la taille du disque. Si le cluster dépasse les quotas disponibles, le bouton Suivant reste inactif.

ParamètreValeur
Taille du disque1 à 4 096 Go, dans la limite du quota de stockage du projet ; augmentation uniquement après création
Réplicas1, 2 ou 3

Pour aller plus loin​