通过参考文档,Kubernetes/Openshift 中的持久卷 (PV) 和持久卷声明 (PVC) 有什么区别?
简单来说,两者有什么区别?
通过参考文档,Kubernetes/Openshift 中的持久卷 (PV) 和持久卷声明 (PVC) 有什么区别?
简单来说,两者有什么区别?
从文档
PV 是集群中的资源。PVC 是对这些资源的请求,还充当对资源的声明检查。
因此,持久卷 (PV) 是主机上存储持久数据的“物理”卷。持久卷声明 (PVC) 是平台为您创建 PV的请求,您通过 PVC 将 PV 附加到您的 Pod。
类似于
Pod -> PVC -> PV -> Host machine
PVC是对存储需求的声明,它可以在某些时候变得可用/满足 - 就像绑定到一些实际的PV一样。
这有点像promise的异步编程概念。PVC 承诺它会在某个时候“转换”为您的应用程序将能够使用的存储量,以及定义的特征之一,如类、大小和访问模式(ROX、RWO 和 RWX)。
这是一种将特定存储实现从您的 pod/部署中抽象出来的方法。在大多数情况下,您的应用程序不需要声明“从大小为 Y 的服务器 X 给我 NFS 存储”;它更像是“我需要默认类和大小 Y 的持久存储”。
有了这个,不同集群上的部署可以选择以不同的方式满足该需求。一个可以链接 EBS 设备,另一个可以配置 GlusterFS,并且您的核心清单在这两种情况下仍然相同。
此外,您可以在部署中定义卷声明模板,以便每个 Pod 自动创建一个反射 PVC(即,支持一组可扩展 Pod 的基础设施无关的存储定义,其中每个 Pod 都需要自己的专用存储)。
简短:
-这里有存储空间!PersistentVolume (PV)
-如果您真的需要,您可以获得存储空间!持久卷声明(PVC)
PersistentVolume (PV) 是集群或中央存储中的一块存储,比如说 100GB。
PersistentVolumeClaim (PVC) 是用户对应用程序使用 10GB 的存储请求。
在现实生活场景中,PV 是整个蛋糕,PVC 是一块蛋糕(但是如果没有其他人可以吃,你可以拥有一个完整的蛋糕(就像没有其他应用程序可以使用你可以使用整个 PV 一样))。
简短而简单
持久卷 - 可用存储假设您有 100Gi
Persistent Volume Claim - 你从 Persistent Volume 请求,假设你请求 10Gi,你会得到它,但如果你请求 110Gi,你将不会得到它。
PersistentVolume (PV) 是集群中的一块存储,由服务器/存储/集群管理员配置或使用存储类动态配置。它是集群中的资源,就像节点一样。
PersistentVolumeClaim (PVC) 是用户对存储的请求,可以从 PV 获得。它类似于 Pod。Pod 消耗节点资源,PVC 消耗 PV 资源。Pod 可以请求特定级别的资源(CPU 和内存)。声明可以请求特定的大小和访问模式(例如,它们可以挂载为 ReadWriteOnce、ReadOnlyMany 或 ReadWriteMany。
Persistent Volume Claim 告诉您在特定集群中您可以访问哪些选项,他们在这家名为 Smart Tech 的商店中收到了这份通知,其中包含一些关于您的配置选项的广告,这些广告就是 Persistent Volume Claim。
在你的配置文件中,你写下你将在集群中拥有的不同的持久卷声明,有点像你给圣诞老人的愿望清单,但当然你会去把它交给 Smart Tech 的销售人员完成。
因此,您编写了一个配置文件,说明所有集群都应该有一个 600gb 硬盘驱动器选项和一个 1TB 硬盘驱动器选项。
当您选择 Persistent Volume Claim 的这些选项之一时,您去请求 Kubernetes(销售人员)去为您获取该选项,您选择的选项,Kubernetes 必须查看库存中的这些存储选项实例随时可用的房间。这些硬盘驱动器实例可以立即使用,并且它们被认为是静态配置的,因为它们是提前创建的。
另一方面,当您向 Kubernetes 销售人员询问时,动态配置的选项是动态创建的,有点像即时生产,它是在您立即提出要求时创建的。
因此,持久卷声明是选项的存储广告,无论您选择哪个 Kubernetes 都会得到它,要么在存储中,要么在运行中创建一个。
Persistent Volume 是您从 Kubernetes 获得的实际产品或选项。如果 Kubernetes 没有您要求的内容,它将尝试为您即时创建它。
因此,PVC 是 Smart Tech 向您的集群宣传的内容,他们必须向您的集群提供 Kubernetes,销售人员将为您提供哪些 Kubernetes,而 PV 是交付给您的实际成品。
PersistentVolume(PV) 和 PersistentVolumeClaim(PVC) 是 Kubernetes 提供的资源 API。PV 是一块存储,应该由管理员预先分配。PVC是用户对一块存储的请求。
在将 PV 和 PVC 与 node 和 pod 进行比较时,您会发现一些共同点。PV 就像一个节点,它定义了存储。PVC 之类的 pod 需要资源(内存、CPU)并在节点有资源要分配的情况下获取它们,在这种情况下,它是一个存储。
Persistent Volume — 存储卷的低级表示。Persistent Volume Claim — Pod 和 Persistent Volume 之间的绑定。存储类 — 允许动态配置持久卷。