我在OpenShift上部署了一个postgres pod和一个PVC,我认为我正确地连接了它,但我可能错了。这是我的PVC,它被正确绑定-
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: xxxxx
我创建了带有PGDATA
env设置为/var/lib/postgresql/pgdata
的postgres pods,并安装了类似PVC的so-
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,然后手动将新的pod更新为新创建的PVC?
因为您可以看到错误
已经连接到另一个节点xx.xx.xxx.x,并且有活动pod[postgres-7-6p6sz]正在使用该
您正在使用块存储作为pv,它具有ReadWriteOnce
的accessModes,这意味着在任何给定时间,卷都可以连接到单个kubernetes节点,然后在该节点上,pod可以装载它。现在,如果你想连接到另一个pod,你需要删除现有的pod,这将使pv从上一个节点中脱离,重新连接到新节点。
有关更多详细信息,请参阅持久卷/