Ministères
sociaux

Atlas
Plateforme d'hébergement des ministères sociaux
Configurer et gérer des clusters de bases de données
Ce guide pratique vous montre comment configurer et gérer des clusters de bases de données PostgreSQL dans la plateforme Atlas.
Prérequis
- Avoir un compte sur la plateforme Atlas
- Être administrateur de workspace ou avoir les droits nécessaires
- Avoir un workspace déjà créé
- Avoir au moins un DeploymentTarget créé
- Avoir accès au dépôt GitOps de votre workspace
Types d'implémentations
Atlas propose deux types d'implémentations pour les bases de données PostgreSQL :
- CNPG (CloudNativePG) : Déploiement dans le cluster Kubernetes, adapté pour les environnements de développement et de test.
- Managed (OVH) : Cluster de base de données managé, recommandé pour les environnements de production.
Création d'un DatabaseCluster
1. Cloner le dépôt GitOps de votre workspace
1 2 |
|
2. Créer un fichier YAML pour le DatabaseCluster
Créez un nouveau fichier YAML dans le dossier resources
du dépôt. Nommez-le de manière significative, par exemple ma-db-dev.yaml
.
1 2 |
|
3. Définir la configuration du DatabaseCluster
Ouvrez le fichier ma-db-dev.yaml
dans votre éditeur préféré et ajoutez la configuration appropriée selon le type d'implémentation que vous souhaitez utiliser.
Option 1 : Configuration CNPG (pour développement/test)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
Option 2 : Configuration Managed (pour production)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
Assurez-vous de remplacer :
- ma-db-dev
ou ma-db-prod
par un nom significatif pour votre base de données
- mon-app-dev
ou mon-app-prod
par le nom de votre DeploymentTarget
- dev
ou prod
par le nom de la zone appropriée
4. Pousser les changements vers le dépôt
1 2 3 |
|
5. Vérifier la création du DatabaseCluster
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et créera le DatabaseCluster. Vous pouvez vérifier l'état de la création dans ArgoCD.
- Accédez à ArgoCD via l'interface Atlas
- Recherchez l'application correspondant à votre workspace
- Vérifiez que le DatabaseCluster a été créé avec succès
Paramètres de configuration
Paramètres communs
Paramètre | Description | Valeur par défaut | Requis |
---|---|---|---|
name |
Nom du DatabaseCluster. Ce champ est immuable et ne peut pas être modifié ultérieurement. | - | Oui |
implementation |
Implémentation du moteur à utiliser. Ce champ est immuable et ne peut pas être modifié ultérieurement. Valeurs possibles: cnpg , managed |
- | Oui |
version |
Version de PostgreSQL | 15 |
Non |
diskSize |
Taille pour le stockage de la base de données, en GiB. | 80 |
Non |
replicas |
Nombre de réplicas pour le DatabaseCluster. Pour la haute disponibilité, les utilisations en production doivent toujours définir cette valeur à plus de 1. | 1 |
Non |
zoneRef.name |
Référence à une Zone qui hébergera le DatabaseCluster. | - | Oui |
secretDeliveryTargets |
Liste des cibles auxquelles livrer le secret. | - | Oui |
Paramètres spécifiques à CNPG
Paramètre | Description | Valeur par défaut | Requis |
---|---|---|---|
cnpg.resources.requests.cpu |
Requests de CPU | - | Non |
cnpg.resources.requests.memory |
Requests de mémoire | - | Non |
cnpg.resources.limits.cpu |
Limits de CPU | - | Non |
cnpg.resources.limits.memory |
Limits de mémoire | - | Non |
Paramètres spécifiques à Managed (OVH)
Paramètre | Description | Valeur par défaut | Requis |
---|---|---|---|
ovh.plan |
Plan à utiliser pour le cluster de base de données managé | essential |
Non |
ovh.flavor |
Flavor à utiliser pour les instances de VM de support | db1-4 |
Non |
ovh.authorized_ips |
Un tableau d'adresses IP autorisées à se connecter au cluster | [] |
Non |
Format et accès aux informations de connexion
Les informations de connexion à la base de données sont automatiquement livrées au DeploymentTarget spécifié dans secretDeliveryTargets
. Le secret est livré dans le format JSON suivant :
1 2 3 4 5 6 7 8 9 |
|
Vous pouvez accéder à ces informations de deux façons :
Via Vault
- Accédez à Vault via l'interface Atlas
- Naviguez vers le chemin correspondant à votre DeploymentTarget
- Vous y trouverez les informations de connexion à la base de données
Via les secrets Kubernetes
Les informations de connexion sont également disponibles sous forme de secrets Kubernetes dans le namespace de votre DeploymentTarget. Vous pouvez y accéder dans votre application en montant le secret ou en utilisant les variables d'environnement.
Exemple d'utilisation dans un déploiement Kubernetes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
Exemple d'utilisation avec TypeScript et Sequelize
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
Modification d'un DatabaseCluster
La modification d'un DatabaseCluster se fait en modifiant le fichier YAML correspondant dans le dépôt du workspace. Cependant, certains champs sont immuables et ne peuvent pas être modifiés après la création.
Champs immuables
spec.parameters.name
: Le nom du DatabaseCluster ne peut pas être modifié après la création.spec.parameters.implementation
: L'implémentation (cnpg ou managed) ne peut pas être modifiée après la création.
1. Cloner le dépôt GitOps de votre workspace (si ce n'est pas déjà fait)
1 2 |
|
2. Modifier le fichier YAML du DatabaseCluster
Ouvrez le fichier resources/ma-db-dev.yaml
dans votre éditeur préféré et modifiez la configuration selon vos besoins.
3. Pousser les changements vers le dépôt
1 2 3 |
|
4. Vérifier la mise à jour du DatabaseCluster
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et mettra à jour le DatabaseCluster. Vous pouvez vérifier l'état de la mise à jour dans ArgoCD.
Suppression d'un DatabaseCluster
La suppression d'un DatabaseCluster se fait en supprimant le fichier YAML correspondant du dépôt du workspace.
Attention : La suppression d'un DatabaseCluster entraînera également la suppression de la base de données et de toutes les données qu'elle contient. Assurez-vous de sauvegarder toutes les données importantes avant de supprimer un DatabaseCluster.
1. Cloner le dépôt GitOps de votre workspace (si ce n'est pas déjà fait)
1 2 |
|
2. Supprimer le fichier YAML du DatabaseCluster
1 2 3 |
|
3. Vérifier la suppression du DatabaseCluster
Une fois les changements poussés, ArgoCD détectera automatiquement les modifications et supprimera le DatabaseCluster. Vous pouvez vérifier l'état de la suppression dans ArgoCD.
Bonnes pratiques
Choix de l'implémentation
- Utilisez l'implémentation
cnpg
pour les environnements de développement et de test. - Utilisez l'implémentation
managed
pour les environnements de production.
Haute disponibilité
- Pour la haute disponibilité en production, définissez
replicas
à une valeur supérieure à 1. - Pour les bases de données managées, utilisez un plan adapté à vos besoins de disponibilité.
Ressources
- Ajustez les ressources (CPU, mémoire) et la taille du disque en fonction des besoins de votre application.
- Pour les bases de données CNPG, définissez des resource limits appropriés pour éviter les problèmes de performance.
Sécurité
- Pour les bases de données managées, limitez l'accès en utilisant le champ
authorized_ips
. - Utilisez des secrets pour stocker les informations de connexion à la base de données.
Sauvegardes
- Mettez en place des sauvegardes régulières de vos bases de données.
- Testez régulièrement la restauration de vos sauvegardes.
Résolution des problèmes courants
Le DatabaseCluster n'est pas créé
- Vérifiez que vous avez bien poussé les changements vers le dépôt
- Vérifiez que le fichier YAML est correctement formaté
- Vérifiez que vous avez les droits nécessaires
- Vérifiez que la zone référencée existe
Erreur de connexion à la base de données
- Vérifiez que le DatabaseCluster a été créé avec succès
- Vérifiez que les secrets ont été correctement livrés au DeploymentTarget
- Vérifiez que votre application utilise les bonnes informations de connexion
- Pour les bases de données managées, vérifiez que l'adresse IP de votre application est autorisée
Problèmes de performance
- Vérifiez les ressources allouées à votre base de données
- Surveillez l'utilisation des ressources dans Grafana
- Optimisez vos requêtes et votre schéma de base de données
- Augmentez les ressources si nécessaire