简单来说,持久性交易量(PV)和持久性交易量声明(PVC)有什么区别?


Answers:


67

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

它有点像promise的异步编程概念。PVC承诺它将在某个时候“转换”为您的应用程序将能够使用的存储卷,并定义为类,大小和访问模式(ROX,RWO和RWX)之一。

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

这样,不同群集上的部署可以选择不同地满足该需求。一个可以链接EBS设备,另一个可以配置GlusterFS,并且两种情况下您的核心清单仍然相同。

此外,您可以在部署中定义批量声明模板,以便每个Pod自动创建一个反映PVC(即,为一组需要各自专用存储的可伸缩Pod支持与基础结构无关的存储定义)。


7
任何想要在PV,PVC,存储类别之间寻求明显区别/说明的人,都可以参考:-portworx.com/basic-guide-kubernetes-storage
Suhas Chikkanna

1
链接文章的引文:“持久卷声明代表特定Pod对持久卷的专有使用”
Vaviloff

63

来自文档

PV是集群中的资源。PVC是对这些资源的请求,并且还充当对资源的声明检查。

因此,持久卷(PV)是存储持久数据的主机上的“物理”卷。永久批量声明(PVC)是要求平台为您创建PV的请求,您可以通过PVC将PV附加到吊舱。

类似于

Pod -> PVC -> PV -> Host machine

2
主机可以是任何类型的存储= [NFS | 云存储| 存储提供者| ...]
Pav K.

@will Gordon要求您告诉我,答案中的存储类别在哪里?
Suhas Chikkanna

@ SuhasChikkanna,StorageClasses(kubernetes.io/docs/concepts/storage/storage-classes)仅定义用户可以请求的PVC类型。
威尔·戈登

1
@WillGordon是的,我现在有点像这样,如果我错了,请纠正我:-Pod-> PVC-> PV->(存储类,如果适用)->主机。而且,对于其他任何人来说,这也是了解PV,PVC,存储类(portworx.com/basic-guide-kubernetes-storage)之间区别的好指南。
Suhas Chikkanna

@SuhasChikkanna这似乎是正确的,尽管我认为StorageClass将介于两者之间PVCPV因为它定义了PV可用于通过via生成的s类PVC
Will Gordon

7

简短:
-这里有存储空间!PersistenVolume (PV)
-如果您真正需要它,您将获得存储!持久体积声明(PVC)


嗨,欢迎来到Stack Overflow。您能否提供更详细的说明?总结您的解决方案很好,但是请您尽量描述一下:)
Ema.jar

4

简短

永久卷-可用存储空间,假设您有100Gi

持久卷声明-您从“持久卷”中请求,假设您请求获得10Gi,但是如果您请求110Gi,您将不会获得它。


3
  1. PersistentVolume(PV)是群集或中央存储中的一部分存储,已由管理员提供或使用存储类动态提供。

  2. PersistentVolumeClaim(PVC)是用户存储请求。它类似于豆荚。容器消耗节点资源,PVC消耗PV资源。

在现实生活中,假设您的父母有很多钱(PV),但只有在您根据需要(PVC)向他们提出要求时,父母才会提供给您。


3

PersistentVolume(PV)是集群中的一块存储,已由服务器/存储/集群管理员提供或使用存储类动态提供。就像节点一样,它是集群中的一种资源。

PersistentVolumeClaim(PVC)是用户可以通过PV进行存储的请求。它类似于豆荚。容器消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以将它们安装为ReadWriteOnce,ReadOnlyMany或ReadWriteMany。


2

持续批量声明告诉您在特定群集中可以访问哪些选项,他们在名为Smart Tech的商店获得了此通函,其中包含一些有关您的配置选项的广告,这些广告就是永久批量声明。

在您的配置文件中,您将写出群集中将要拥有的不同的Persistent Volume Claims,有点像圣诞老人的愿望清单,但当然,当您将其提交给Smart Tech的销售人员时,完成。

因此,您编写了一个配置文件,说所有集群都应该有一个600GB的硬盘驱动器选项以及一个1TB的硬盘驱动器选项。

当您选择``持续批量索赔''的这些选项之一时,您要求Kubernetes(销售人员)为您选择该选项,您选择的选项是,Kubernetes必须浏览库存中的这些存储选项实例房间一应俱全。这些硬盘驱动器实例可以立即使用,并且由于它们是提前创建的,因此被视为静态配置。

另一方面,当您要求Kubernetes销售人员时,会动态创建动态配置的选项,就像即时生产一样,当您立即要求时就创建了选项。

因此,Persistent Volume Claim是存储选项的广告,无论您选择哪个Kubernetes都可以获取该选项,要么在存储中要么在运行中创建一个。

持久卷是您从Kubernetes索取的实际产品或选件。如果Kubernetes没有您要的内容,它将尝试为您动态创建它。

因此,PVC是Smart Tech所提供的广告,他们必须向您的集群提供销售员将为您找到的Kubernetes,PV是交付给您的实际成品。


1

PersistentVolume(PV)和PersistentVolumeClaim(PVC)是Kubernetes提供的资源API。PV是应该由管理员预先分配的一块存储。PVC是用户要求存储的一块。


1

将PV和PVC与节点和Pod进行比较时,可以发现一些常见的问题。PV就像一个节点,它定义了存储。像pod一样的PVC需要资源(Mem,CPU),并在节点具有要分配的资源的情况下获取它们,在这种情况下,这就是存储。


1

PV是附加到Pod或Deployment的存储的逻辑表示。它使用PVC从Kube群集中的物理存储资源中请求存储资源。我认为它的关系更像是:

Pods -> PV -> PVC -> Physical Storage

在线上的许多解释令人困惑,我从清单文件中的关系中了解这一点。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.