Так что я просто пытаюсь экспериментально запустить веб-приложение на GKE, чтобы ознакомиться с Kubernetes и GKE.
У меня есть набор состояний (Postgres) с заявкой на постоянный том / постоянный том, который, как и ожидалось, подключен к модулю Postgres. Проблема, с которой я столкнулся, заключается в том, что данные Postgres терпят. Если я подключу PV на var/lib/postgres
, данные будут переопределяться при каждом обновлении модуля. Если я монтирую на var/lib/postgres/data
, я получаю предупреждение:
initdb: directory "/var/lib/postgresql/data" exists but is not empty
It contains a lost+found directory, perhaps due to it being a mount point.
Using a mount point directly as the data directory is not recommended.
Create a subdirectory under the mount point.
Использование только Docker с точкой монтирования тома на var/lib/postgresql/data
работает, как ожидается, и данные сохраняются, но я не знаю, что делать сейчас в GKE. Как правильно это настроить?
Установочный файл:
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sm-pd-volume-claim
spec:
storageClassName: "standard"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1G
---
apiVersion: "apps/v1"
kind: "StatefulSet"
metadata:
name: "postgis-db"
namespace: "default"
labels:
app: "postgis-db"
spec:
serviceName: "postgis-db"
replicas: 1
selector:
matchLabels:
app: "postgis-db"
template:
metadata:
labels:
app: "postgis-db"
spec:
terminationGracePeriodSeconds: 25
containers:
- name: "postgis"
image: "mdillon/postgis"
ports:
- containerPort: 5432
name: postgis-port
volumeMounts:
- name: sm-pd-volume
mountPath: /var/lib/postgresql/data
volumes:
- name: sm-pd-volume
persistentVolumeClaim:
claimName: sm-pd-volume-claim