У меня есть модуль postgres, развернутый на OpenShift, и PVC, который, я думаю, я правильно подключил, но могу ошибаться. Это мой ПВХ, и он правильно привязан -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: xxxxx
Я создал поды postgres с PGDATA
env, установленным на /var/lib/postgresql/pgdata
, и смонтировал PVC следующим образом:
oc set volume dc/postgres --add --name=postgres-pvc --type=persistentVolumeClaim \
--claim-name=postgres-pvc --mount-path=/var/lib/postgresql/pgdata --containers=postgres
Первоначально я пытался прикрепить PVC к /var/lib/postgresql/data
, перезаписав исходный том контейнера, но он сказал, что есть проблемы с чем-то вроде подключения непосредственно к этому пути data
папки, поэтому я использовал pgdata
.
oc set volume dc/postgres --add --overwrite --name=postgres-volume-1 --type=persistentVolumeClaim \
--claim-name=postgres-pvc --mount-path=/var/lib/postgresql/data --containers=postgres
Ошибка, которую я получаю сейчас, заключается в том, что когда я пытаюсь масштабировать модуль / добавлять реплику через DC, это дает следующие ошибки:
Unable to attach or mount volumes: unmounted volumes=[postgres-pvc], unattached volumes=[postgres-volume-1 postgres-pvc postgres-token-h7jvr]: timed out waiting for the condition
а также
Error while attaching the device pv pvc-b87b49ff-2bce-495c-b17f-b45f51eab27b cannot be attached to the node xx.xx.xxx.xx. Error: PV pvc-b87b49ff-2bce-495c-b17f-b45f51eab27b is already attached to another node xx.xx.xxx.x and there are active pods [postgres-7-6p6sz] using that
Это потому, что я неправильно смонтировал ПВХ? Или мне нужно создать новый PVC, а затем вручную обновить новый модуль для этого вновь созданного PVC?