【问题标题】:Persistent volume and claims in kubernetes workspaceKubernetes 工作空间中的持久卷和声明
【发布时间】:2019-03-19 15:40:55
【问题描述】:

我已经在 k8 的工作空间中工作了大约 6 个月,并且一直想知道为什么我们需要 Persistent Volume (PV) 和 Persistent Volume claim (PVC)?谁能把这个概念告诉我?

【问题讨论】:

    标签: linux kubernetes storage


    【解决方案1】:

    这些信息来自Kubernetes In Action book。

    将 pod 与底层存储技术解耦

    理想情况下,在 Kubernetes 上部署他们的应用程序的开发人员永远不必知道底层使用了哪种存储技术,就像他们不必知道运行其 pod 所使用的物理服务器类型一样。

    当开发人员需要为其应用程序提供一定数量的持久存储时,他们可以从 Kubernetes 请求它,就像他们在创建 pod 时可以请求 CPU、内存和其他资源一样。系统管理员可以配置集群,以便它可以为应用程序提供所需的内容。

    介绍 PersistentVolumes 和 PersistentVolumeClaims

    为了使应用能够在 Kubernetes 集群中请求存储而无需处理基础架构细节,引入了两种新资源。它们是 PersistentVolumesPersistentVolumeClaims

    不是开发人员向他们的 pod 添加一个特定于技术的卷,而是由集群管理员设置底层存储,然后通过 Kubernetes API 服务器创建 PersistentVolume 资源在 Kubernetes 中注册它.创建 PersistentVolume 时,管理员会指定它的大小和它支持的访问模式。

    This image is from Kubernetes In Action book, too.
    

    当集群用户需要在他们的一个 pod 中使用持久存储时,他们首先创建一个 PersistentVolumeClaim 清单,指定他们需要的最小大小和访问模式。然后,用户将 PersistentVolumeClaim 清单提交给 Kubernetes API 服务器,Kubernetes 会找到合适的 PersistentVolume 并将卷绑定到声明。

    PersistentVolumeClaim 然后可以用作 pod 内的卷之一。其他用户不能使用相同的 PersistentVolume,直到它通过删除绑定释放 PersistentVolume strong>PersistentVolumeClaim。

    【讨论】:

      【解决方案2】:

      PV 和 PVC 的分离实现了 Kubernetes 集群管理和资源管理中的职责分工。

      PV 是集群管理员将创建的对象,它们抽象出底层存储资源以向用户公开统一的视图(即,这是您可以使用这么多空间的“卷”)。他们只关心将存储资源暴露给集群,而不关心谁或如何使用它。引用文档:

      PersistentVolume (PV) 是集群中的一块存储,具有 由管理员配置。它是集群中的资源 就像节点是集群资源一样。 PV 是卷插件,例如 卷,但具有独立于任何单独的 pod 的生命周期 使用 PV。此 API 对象捕获 存储的实现,可以是 NFS、iSCSI 或 云提供商特定的存储系统。

      另一方面,集群用户(即部署和维护应用程序的用户)可以使用 PVC 动态请求和释放存储块,而无需担心底层基础设施。他们不一定要关心存储的来源或实际管理的位置。引用文档

      PersistentVolumeClaim (PVC) 是用户的存储请求。它 类似于 pod。 Pod 消耗节点资源,PVC 消耗 PV 资源。 Pod 可以请求特定级别的资源(CPU 和 记忆)。声明可以请求特定的大小和访问模式(例如,可以 安装一次读/写或多次只读)。

      在动态配置的部署中,Kubernetes 承担 PV 管理的角色。用户只需请求一个 PVC,Kubernetes 将配置 PV 并将 PVC 绑定到 PV,从而使存储配置过程对集群用户透明。

      希望这会有所帮助!

      【讨论】:

      • 然后,这是我的下一个问题,我们可以将一个或多个 PVC 关联到单个 PV 吗?
      • 这取决于您的 PV 配置,由集群管理员管理。有些是可能的(如 NFS),而另一些(块存储)可能不那么灵活。看到这个回复:stackoverflow.com/questions/39964714/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2021-03-28
      • 1970-01-01
      • 2020-11-08
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多