【问题标题】:Need of storageClassName in PV and PVCPV和PVC中需要storageClassName
【发布时间】:2022-11-09 17:09:44
【问题描述】:

我创建PV如下:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: foo-pv
spec:
  storageClassName: "my-storage"
  claimRef:
    name: foo-pvc
    namespace: foo

为什么我们需要在 PV 中给出 storageClassName? Storage类创建PV时,为什么要在PV中赋予storageClassName?

有人可以帮助我理解这一点吗?

【问题讨论】:

    标签: kubernetes minikube persistent-volumes


    【解决方案1】:

    根据 Kubernetes 官方文档:

    为什么我们需要在 PV 中给出 storageClassName?

    每个存储类包含字段供应商、参数和 回收政策,当一个 PersistentVolume 属于 该类需要动态配置。

    StorageClass 对象的名称很重要,它是用户可以 请求一个特定的类。管理员设置名称等 首次创建时类的参数存储类对象,以及 对象一旦创建就无法更新。

    Storage类创建PV时,为什么要在PV中赋予storageClassName?

    PersistentVolume (PV) 是集群中的一块存储,具有 由管理员配置或使用动态配置存储类.它是集群中的资源,就像节点是集群资源一样。

    集群管理员需要能够提供各种 PersistentVolume 的不同之处不仅仅是大小和访问模式, 无需让用户了解这些卷的详细信息 实施的。针对这些需求,有存储类资源。

    如果您想了解更多关于 Storage 类资源的信息,请关注 this linkthis one 以了解更多关于 Persistent Volumes 的信息。

    【讨论】:

      【解决方案2】:

      您可以拥有 2 种类型的 PV:

      1. 由 StorageClasses 动态配置
      2. 由管理员手动/静态创建

        动态地-> 这通常在云中使用,例如,当您想要将 Azure blob/文件挂载到 pod 时。在这种情况下,您无法控制 PV 名称、StorageClass 创建和绑定随机创建的 PV。

        手动-> 这将给予更多控制权,您可以为 PV 分配一个特定的名称,一个具有 Retain 策略的特定 StorageClass(在 Pod 释放后不要删除 PV)。结果是更容易重用该 PV,知道它的名称和 StorageClass 成员资格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-12
        • 1970-01-01
        • 1970-01-01
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        • 2021-03-24
        • 1970-01-01
        相关资源
        最近更新 更多