PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

kubernetes timescaledb statefulset :modifications perdues lors de la recréation du pod

Le problème était qu'il y avait une déclaration VOLUME pour /var/lib/postgresql/data dans postgres:9.6 Dockerfile qui a provoqué un montage supplémentaire sur le conteneur. Ce montage était éphémère lorsque nous avions le montage du volume sur /var/lib/postgresql . Mais nous n'avons pas pu monter le volume AKS sur /var/lib/postgresql/data parce que le volume est venu avec lost+found sous-répertoire et Postgres attend un répertoire vide pour stocker les fichiers de base de données.

Le correctif consistait à monter le volume sur /var/lib/postgresql/data et dites à Postgres d'utiliser un sous-répertoire sous /var/lib/postgresql/data pour stocker des fichiers avec PGDATA env var.

Vous trouverez ci-dessous les parties pertinentes du correctif dans la configuration de k8s statefulset

env:
- name: PGDATA
  value: "/var/lib/postgresql/data/dbfiles"        
...
volumeMounts:
- mountPath: /var/lib/postgresql/data
  name: timescaledata