简单来说,持久性容量(PV)和持久性容量索赔(PVC)的区别是什么?

在 Kubernetes/Openshift 中,参考文档,持续容量(PV)和持续容量索赔(PVC)有什么区别?

用简单的术语来说,两者的区别是什么?

59083 次浏览

来自 医生

PV 是集群中的资源。PVC 是对这些资源的请求,也作为对资源的索赔检查。

因此,持久卷(PV)是主机上存储持久数据的“物理”卷。持久卷索赔(PVC)是一个 请求平台,为您创建一个 PV,您通过一个 PVC 将 PV 附加到您的吊舱。

类似于

Pod -> PVC -> PV -> Host machine

PVC 是一个需要存储的声明,它可以在某个时候变得可用/满足-就像绑定到某个实际的 PV一样。

它有点像 译自: 美国《每日邮报》网站(https://en.wikipedia.org/wiki/Futures _ and _  承诺)的异步编程概念。PVC 承诺,它将在某个时候“转化”为应用程序能够使用的存储容量,以及类、大小和访问模式(ROX、 RWO 和 RWX)等定义的特性之一。

这是一种从您的 pods/部署中抽象思考特定存储实现的方法。在大多数情况下,您的应用程序不需要声明“从大小为 Y 的服务器 X 给我 NFS 存储”; 它更像是“我需要默认类和大小为 Y 的持久存储”。

通过这种方式,不同集群上的部署可以选择不同的方式来满足这种需求。一个可以链接 EBS 设备,另一个可以提供 GlusterFS,并且在这两种情况下您的核心清单仍然是相同的。

此外,您可以在部署中定义卷声明模板,这样每个 pod 都可以自动创建一个反射式 PVC (即,支持一组可伸缩 pod 的基础设施无关的存储定义,每个 pod 都需要自己的专用存储)。

持久音量索赔告诉你在特定的集群中你可以访问哪些选项,他们在一个叫做 Smart Tech 的商店里收到了这个通知,里面有一些关于你的配置选项的广告,这些广告就是持久音量索赔。

在你的配置文件中,你写出不同的持续音量声明,你将在你的集群中,有点像你的愿望清单,圣诞老人,但当然,你要去把它带给销售人员在智能科技,当你完成。

因此,您编写了一个配置文件,其中说应该有一个600gb 的硬盘驱动器选项可供所有集群使用,还有一个1TB 的硬盘驱动器选项。

当你选择了这些选项中的一个,你去要求库伯内特斯(销售人员)去为你获得选项,你选择的选项,Kubernetes 必须通过这些实例的存储选项库存现成可用。这些硬盘驱动器的实例可以立即使用,它们被认为是静态配置的,因为它们是提前创建的。

另一方面,当你问销售人员 Kubernetes 时,有动态提供的选项,所以有点像即时生产,当你立即要求时,它就被创建了。

因此,持久的音量索赔是商店广告的选择,无论你选择库伯内特将得到它,无论是在存储或创建一个在飞行。

持久卷是你从 Kubernetes 带回来的实际产品或选项。如果库伯内特没有你所要求的,它会尝试为你在飞行中创建它。

所以聚氯乙烯是智能科技的广告,他们必须提供给您的集群,库伯内特的销售人员将为您和光伏是实际成品交付给您。

简而言之:
- 这里有存储
- 如果你真的需要的话,你可以得到存储空间

持久卷(PersterentVolumeClaim,PV)和持久卷索赔(PersterentVolumeClaim,PVC)是 Kubernetes 提供的资源 API。 PV 是一个应该由管理员预先分配的存储器。而 PVC 是用户对一块存储空间的请求。

在比较 PV 和 PVC 与节点和 pods 时,您可以发现一些常见问题。 PV 就像一个节点,它定义了存储。 类似 PVC 的吊舱需要资源(Mem,CPU) ,并在节点有资源分配的情况下获取这些资源,在这种情况下,这是一个存储器。

  1. 持久性存储量(Perst)是集群或中央存储器中的一块存储空间,比如说100GB。

  2. PersisentVolumeClaim (PVC)是用户对应用程序使用10GB 存储空间的请求。

在现实生活中,PV 是一整块蛋糕,而 PVC 是一块蛋糕(但是如果没有其他人可以吃,你可以吃一整块蛋糕(就像如果没有其他应用程序可以使用,你可以使用整个 PV))。

简单明了

持久卷-可用存储设备假设您有100Gi

持久音量声明-你从持久音量请求,让我们说你请求10Gi 你会得到它,但如果你请求110Gi 你不会得到它。

持久性卷(Perst)是集群中的一块存储,由服务器/存储/集群管理员提供,或者使用存储类动态提供。它是集群中的一个资源,就像节点一样。

PersisentVolumeClaim (PVC)是用户从 PV 中获得的存储请求。它类似于一个花苞。豆荚消耗节点资源,PVC 消耗 PV 资源。Pods 可以请求特定级别的资源(CPU 和内存)。声明可以请求特定的大小和访问模式(例如,可以挂载 ReadWriteOnce、 ReadOnlymany 或 ReadWritemany)。

持久卷ーー存储卷的低级表示。 持久卷索赔ーー Pod 与持久卷之间的绑定。 存储类ーー支持持久卷的动态配置。