PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

kubernetes timescaledb statefulset:Änderungen gehen bei der Neuerstellung des Pods verloren

Das Problem war, dass es eine VOLUME-Deklaration für /var/lib/postgresql/data gab in postgres:9.6 Dockerfile, das einen zusätzlichen Mount auf dem Container verursacht hat. Dieser Mount war vergänglich, als wir den Volume-Mount unter /var/lib/postgresql hatten . Wir konnten das AKS-Volume jedoch nicht unter /var/lib/postgresql/data bereitstellen weil der Band mit lost+found kam Unterverzeichnis und Postgres erwartet ein leeres Verzeichnis zum Speichern von DB-Dateien.

Die Lösung bestand darin, das Volume unter /var/lib/postgresql/data einzuhängen und weisen Sie Postgres an, ein Unterverzeichnis unter /var/lib/postgresql/data zu verwenden um Dateien mit PGDATA zu speichern Umgebungsvar.

Unten sind die relevanten Teile der Korrektur in der k8s Statefulset-Konfiguration

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