Postgres уже содержит базу данных в kubernetes - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть модуль Postgres с подключенным томом:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: postgres-pv
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 100M
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  labels:
    app: postgres
  name: psql-claim
spec:
  storageClassName: manual
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100M

В yaml содержится следующее:

volumeMounts:
            - mountPath: /docker-entrypoint-initdb.d/
              name: psql-config-map-volume
            - mountPath: /var/lib/postgresql/data
              name: psql-claim 
              subPath: postgres
      volumes:
        - name: psql-config-map-volume
          configMap:
            name: psql-config-map // contains an init.sql
        - name: psql-claim
          persistentVolumeClaim:
            claimName: psql-claim

Хорошо работает, данные сохраняются после развертывания / модуля удаление и повторное развертывание.

Проблема появляется, когда я изменяю init. sql. Он не вступил в силу и получил это сообщение при запуске psql pod:

PostgreSQL Кажется, что каталог базы данных содержит базу данных; Пропуск инициализации

Сам модуль запускается без каких-либо ошибок (только со старыми данными init. sql)

Что я пытался:

  1. Удаление развертывания, pv c и pv. Затем заново разверните все. Тот же результат.
  2. Я искал данные пути хоста, но / mnt / data пуст.

Что еще мне следует попробовать? Как я могу заставить init. sql запускаться? Где хранятся действительные старые данные, если они не находятся в hostpath?

edit: у меня есть поиск файлов pg и я нашел это:
/var/lib/docker/overlay2/6ae2../merged/mnt/ data / postgres / pg_ident.conf
/var/lib/docker/overlay2/6ae2../diff/mnt/data/postgres/pg_ident.conf
И он все еще существует после удаления pv c и pv. Как я могу изящно сбросить свои данные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...