【问题标题】:PersistentVolume and PersistentVolumeClaim for multiple deployments用于多个部署的 PersistentVolume 和 PersistentVolumeClaim
【发布时间】:2020-06-16 02:24:01
【问题描述】:

我有 3 个部署,a-deplb-deplc-depl。现在这 3 个部署中的每一个都有一个 db 部署: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

【问题讨论】:

    标签: kubernetes persistent-volumes persistent-volume-claims


    【解决方案1】:

    一次只能将一个 PV 绑定到一个 PVC。因此,您需要为每个 PVC 创建一个相应的 PV。要自动创建 PV,您可以创建一个 StorageClass 并在您的 PVC 中引用该 StorageClassStorageClass 可以为每个 PVC 动态配置一个 PV。

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

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

    ReadWriteMany- 卷可以被多个节点以读写方式挂载

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2017-01-04
        • 2019-05-17
        • 1970-01-01
        • 2016-04-23
        • 2020-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多