使用案例:
我有一个可用的NFS目录,我想用它来保存多个部署的数据.豆荚.
我创建了一个PersistentVolume:
- apiVersion: v1
- kind: PersistentVolume
- Metadata:
- name: nfs-pv
- spec:
- capacity:
- storage: 10Gi
- accessModes:
- - ReadWriteMany
- nfs:
- server: http://mynfs.com
- path: /server/mount/point
我希望多个部署能够使用此PV,因此我对所需内容的理解是我需要创建多个PersistentVolumeClaims,这些都将指向此PV.
- kind: PersistentVolumeClaim
- apiVersion: v1
- MetaData:
- name: nfs-pvc-1
- namespace: default
- spec:
- accessModes:
- - ReadWriteMany
- resources:
- requests:
- storage: 50Mi
我相信这可以为PV创造50MB的索赔.当我运行kubectl get pvc时,我看到:
- NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
- nfs-pvc-1 Bound nfs-pv 10Gi RWX 35s
我不明白为什么我看到10Gi容量,而不是50Mi.
当我然后更改PVC部署yaml以创建名为nfs-pvc-2的PVC时,我得到:
- NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
- nfs-pvc-1 Bound nfs-pv 10Gi RWX 35s
- nfs-pvc-2 Pending 10s
PVC2永远不会与PV结合.这是预期的行为吗?我可以将多个PVC指向同一个PV吗?
当我删除PVC1时,我看到同样的事情:
- NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
- nfs-pvc-2 Pending 10s
再次,这是正常的吗?
在多个部署/ pod之间使用/重用共享NFS资源的适当方法是什么?
解决方法
来自:
https://docs.openshift.org/latest/install_config/storage_examples/shared_storage.html
正如Baroudi Safwen所提到的,你不能将两个pvc绑定到同一个pv,但你可以在两个不同的pod中使用相同的pvc.
- volumes:
- - name: nfsvol-2
- persistentVolumeClaim:
- claimName: nfs-pvc-1 <-- USE THIS ONE IN BOTH PODS