L’administration d’instances PostgreSQL avec CloudNativePG

PGSession 2026

Julian Vanden Brœck, Pierrick Chovelon

13 Janvier 2026

Introduction

Objectif de l’atelier

  • Découverte et prise en main de l’opérateur CloudNativePG
  • Configuration d’instances PostgreSQL
  • Supervision et journaux de traces

Déroulé de l’atelier

Durée : ~ 3 heures

Pause : 15h30

  1. Quelques mots sur PostgreSQL dans Kubernetes
  2. L’opérateur CloudNativePG
  3. Travaux pratiques : accompagné, avoir le même rythme

Kubernetes

  • Plateforme de déploiement de conteneurs libre et Open Source
  • Cloud Native Computing Foundation (CNCF)
  • Distributions : K3s, AKS, GKE, Rancher, Openshift, kind, …
  • Déploiements applicatifs, auto-scaling, redéploiement automatique, load balancing, …

Des données dans Kubernetes ?!

  • Pas une évidence
  • Habituellement du stateless
  • Apparition des StatefulSet
  • Couche supplémentaire (complexité ?)
  • Effet de mode ? Pas que !

Choisissez surtout une solution qui correspond à vos besoins !

L’opérateur CloudNativePG

CloudNativePG is a comprehensive platform designed to seamlessly manage PostgreSQL databases within Kubernetes environments, covering the entire operational lifecycle from initial deployment to ongoing maintenance.

  • https://cloudnative-pg.io
  • Débuté par 2ndQuadrant puis EDB. Enfin libéré en 2022
  • Projet open source, licence Apache 2.0
  • Mode de gouvernance similaire à PostgreSQL

L’adoption

  • De plus en plus cité, des présentations (KubeCon, PGConfEU)
  • Intégré au programme Sandbox de la CNCF
  • Grand attrait sur Github

L’adoption

Les stars ne sont pas un argument “d’autorité”, mais montre en engouement certain.

Ce que permet CloudNativePG

  • Déploiement de cluster d’instances PostgreSQL facilité
  • Mise en place de réplication automatique
  • Sauvegardes PITR, planifiées
    • Via plugin
  • Bascule (automatique ou manuelle)
  • Haute disponibilité

Supervision

Une instance gérée via CloudNativePG :

  • Exporte des métriques Prometheus prédéfinies
  • Permet de définir des métriques maisons
  • S’intègre facilement avec Grafana

Trace

CloudNativePG standardise la gestion des traces :

  • JSON, envoyés vers la sortie standard (stdout) du Pod
  • Aucune persistance locale (pas de fichier de log)
  • Rétention & analyse nécessitent des outils spécifiques
  • Différents niveaux : error, warning, info (défaut), debug, trace

Attention, tout n’est pas si simple

  • Connaissances Kubernetes
    • Même en tant que DBA
  • Connaissances PostgreSQL
    • Même en tant qu’admin K8S
  • Changements d’habitudes et d’outils
    • Plus de SSH sur la machine où se trouve l’instance
    • Configuration dans les ressources Kubernetes

Attention, tout n’est pas si simple

  • Couche(s) d’abstraction(s) supplémentaire(s)
    • Debug plus long / compliqué
    • Avoir les bons outils
  • Jongler avec les versions
    • Kubernetes : 3 supportées
    • CloudNativePG : 2 supportées
    • PostgreSQL : 5 supportées

Travaux pratiques

Lien du TP :

https://dali.bo/ws_cnpg_2026

Prise en main de l’environnement Kubernetes

But : Prendre en main le cluster Kubernetes et découvrir ce qui est installé.

Création d’un PostgreSQL

But : Créer un cluster PostgreSQL avec deux instances.

Configuration RAM et CPU

But : Allouer de la RAM et du CPU à notre Cluster PostgreSQL.

Configuration PostgreSQL

But : Modifier des paramètres basiques de PostgreSQL

Créer une base de données

But : Créer une base de données dans nos instances.

Superviser - afficher et ajouter des métriques

Buts : Afficher et consulter les métriques de base puis ajouter une métrique personnalisée (fonctionnalité expérimentale).

Consulter et utiliser les traces

But : Récupérer les traces d’un Pod, activer pgAudit et modifier le niveau de trace.

Ajouter l’extension pgAudit

But : Récupérer les traces d’un Pod, activer pgAudit et modifier le niveau de trace.

Mise à jour mineure

But : Mettre à jour notre Cluster PostgreSQL en version 17.7.

Mise à jour majeure

But : Mettre à jour notre Cluster PostgreSQL en version 18.1.

Conclusion

  • Un opérateur complet
  • Le grand favoris des opérateurs
  • Changement de paradigme pour les DBAs

Conclusion

Plugin de sauvegarde pgBackRest :

https://github.com/dalibo/cnpg-plugin-pgbackrest

Articles de blog :

Références

Remerciements

  • Alexandre Pereira pour le déploiement de l’infra et ses tests