用于多个部署的 PersistentVolume 和 PersistentVolumeClaim

PersistentVolume and PersistentVolumeClaim for multiple deployments

我有 3 个部署,a-deplb-deplc-depl。现在这 3 个部署中的每一个都有一个数据库部署:a-db-deplb-db-deplc-db-depl。 现在我想保留这些数据库中的每一个。我需要为所有部署创建一个 PV 还是为每个部署创建一个 PV?

我知道PV <-> PVC是一对一的关系。但我不知道 Depl <-> PV。 有人可以帮忙吗?

到目前为止,我没有任何线索,所以我对所有 dp 部署使用一个 PV

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mongo-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: "/mnt/data/mongo"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mongo-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 2Gi

一个PV只能绑定一个PVC。所以对于你的每一个 PVC 你都需要创建一个相应的 PV。要自动创建 PV,您可以创建一个 StorageClass 并在您的 PVC 中引用该 StorageClassStorageClass 可以为每个 PVC 动态提供一个 PV。

多个部署是否可以使用相同的 PVC 或 PV 取决于 PVC 或 PV 的accessModes

ReadOnlyMany - 该卷可以被许多节点以只读方式挂载

ReadWriteMany- 卷可以被许多节点挂载为读写

ReadWriteOnce - 卷可以被单个节点挂载为读写

一个 运行 个 pod 的多个副本如何让每个 pod 使用自己的存储 体积? StatefulSet 资源,专门为应用程序量身定制,其中应用程序的实例必须被视为不可替代的个体,每个实例都有一个稳定的名称和状态。