Aller au contenu principal

PostgreSQL et Redis embedded

Introduction

Pour déployer l'application GitGuardian, une instance PostgreSQL et une instance Redis sont requises. Cette page est dédiée à vous aider à mettre en place et à gérer une instance embedded.

attention

L'application GitGuardian est packagée avec un PostgreSQL et un Redis basiques. Ils conviennent aux tests et aux infrastructures de petite taille mais ne sont pas destinés à un usage en production. Pour une mise en place plus robuste, nous recommandons d'utiliser des PostgreSQL et Redis externes de qualité production.

Haute disponibilité

Les bases embedded ne sont pas hautement disponibles.

Installation

Sélectionnez "Embedded Postgres/Redis" sur la page de configuration durant l'installation, et choisissez la taille du disque si nécessaire. Mais dans la plupart des cas, la taille de disque par défaut suffit.

Augmenter la taille du disque

Sur un cluster existant

Si vous avez installé l'application GitGuardian sur l'un de vos clusters, vous devez suivre ces étapes :

  • Assurez-vous que votre storage class par défaut prend en charge l'expansion de volume
  • Vérifiez le flag allowVolumeExpansion pour votre storage class par défaut. Pour obtenir des informations sur vos storage classes, exécutez kubectl get storageclasses :
> kubectl get storageclasses.storage.k8s.io
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
default (default) ceph.rook.io/block Delete Immediate false 2d17h
  • Si nécessaire, exécutez kubectl patch storageclass <your-storage-class-name> -p '{"allowVolumeExpansion": true}'.
  • Allez dans la console d'administration KOTS, sélectionnez l'onglet "Config", éditez la taille du disque, enregistrez la nouvelle configuration et déployez-la.
  • L'augmentation se fera au prochain redémarrage du conteneur PostgreSQL ou Redis. Vous pouvez la forcer en supprimant le pod. Cela provoquera une légère interruption de l'application.

Rook version >= 1.4.3

Suivez ces étapes :

  • Définissez le flag allowVolumeExpansion à true avec kubectl patch storageclass default -p '{"allowVolumeExpansion": true}'
  • Allez dans la console d'administration KOTS, sélectionnez l'onglet "Config", éditez la taille du disque, enregistrez la nouvelle configuration et déployez-la.
  • L'augmentation se fera au prochain redémarrage du conteneur PostgreSQL ou Redis. Vous pouvez la forcer en supprimant le pod. Cela provoquera une légère interruption de l'application.

Rook version 1.0.4

Cette version de Rook Ceph ne gère pas l'expansion de volume via Kubernetes. Elle n'est pas non plus facilement upgradable. Vous pouvez suivre la procédure ci-dessous pour augmenter la taille de votre disque PostgreSQL ou Redis. Si vous souhaitez mettre à niveau de rook 1.0.4 vers rook >= 1.4.3, vous devrez faire un backup/restore de votre instance. Pour ce faire, suivez cette procédure.

Avant de continuer, assurez-vous d'avoir des sauvegardes fonctionnelles. La documentation est disponible ici

D'abord, assurez-vous que le paquet e2fsprogs est installé sur votre instance.

Pour augmenter la taille du disque PostgreSQL, exécutez ces commandes. Vous pouvez modifier la taille du disque (50G ici), en utilisant la même valeur dans les deux premières commandes.

kubectl -n rook-ceph exec $(kubectl -n rook-ceph get pod -l app=rook-ceph-operator -o name | head -n1) -- rbd -p replicapool resize $(kubectl -n default get pvc -o custom-columns=NAME:.metadata.name,VOLUME:.spec.volumeName | grep postgresql-data | awk '{print $2}') --size 50G
kubectl -n rook-ceph exec $(kubectl -n rook-ceph get pod -l app=rook-ceph-operator -o name | head -n1) -- rbd -p replicapool resize $(kubectl -n default get pvc -o custom-columns=NAME:.metadata.name,VOLUME:.spec.volumeName | grep postgresql-backup | awk '{print $2}') --size 50G

sudo resize2fs /dev/$(lsblk | grep $(kubectl -n default get pvc -o custom-columns=NAME:.metadata.name,VOLUME:.spec.volumeName | grep postgresql-data | awk '{print $2}') | awk '{print $1}')
sudo resize2fs /dev/$(lsblk | grep $(kubectl -n default get pvc -o custom-columns=NAME:.metadata.name,VOLUME:.spec.volumeName | grep postgresql-backup | awk '{print $2}') | awk '{print $1}')

Pour augmenter la taille du disque Redis, exécutez ces commandes. Vous pouvez modifier la taille du disque (20G ici).

kubectl -n rook-ceph exec $(kubectl -n rook-ceph get pod -l app=rook-ceph-operator -o name | head -n1) -- rbd -p replicapool resize $(kubectl -n default get pvc -o custom-columns=NAME:.metadata.name,VOLUME:.spec.volumeName | grep redis-data | awk '{print $2}') --size 20G

sudo resize2fs /dev/$(lsblk | grep $(kubectl -n default get pvc -o custom-columns=NAME:.metadata.name,VOLUME:.spec.volumeName | grep redis-data | awk '{print $2}') | awk '{print $1}')

Le redimensionnement se fait à chaud, vous n'avez pas besoin de redémarrer le conteneur.