PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

kubernetes timescaledb statefulset:modifiche perse durante la ricreazione del pod

Il problema era che c'era una dichiarazione VOLUME per /var/lib/postgresql/data in postgres:9.6 Dockerfile che ha causato un montaggio aggiuntivo sul contenitore. Quel montaggio era effimero quando avevamo il montaggio del volume su /var/lib/postgresql . Ma non siamo stati in grado di montare il volume AKS su /var/lib/postgresql/data perché il volume è arrivato con lost+found sottodirectory e Postgres si aspetta una directory vuota per memorizzare i file DB.

La soluzione era montare il volume su /var/lib/postgresql/data e dì a Postgres di usare una sottodirectory sotto /var/lib/postgresql/data per memorizzare file con PGDATA env var.

Di seguito sono riportate le parti rilevanti della correzione nella configurazione statefulset di k8s

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