在Kubernetes/Openshift文档中,持久卷(PV)和持久卷声明(PVC)有何区别?
简单来说,PV是存储资源,而PVC是对PV的请求。
在Kubernetes/Openshift文档中,持久卷(PV)和持久卷声明(PVC)有何区别?
简单来说,PV是存储资源,而PVC是对PV的请求。
从文档中得知:
PV是集群中的资源。PVC是对这些资源的请求,也充当资源的索赔凭据。
因此,持久卷(PV)是主机上存储持久数据的“物理”卷。持久卷声明(PVC)是向平台发出创建PV的请求,您可以通过PVC将PV附加到您的Pod上。
类似于:
Pod -> PVC -> PV -> Host machine
PVC是一种需求声明,表示某个时刻可能会有可用/满足的存储 - 就像与某个实际的PV绑定一样。
它有点像异步编程概念中的promise。PVC承诺它将在某个时候“转换”为你的应用程序可以使用的存储卷,并具有定义的特征,如类别、大小和访问模式(ROX、RWO和RWX)。
这是一种将对特定存储实现的思考抽象化的方法,使你的pod/deployment不需要声明“给我来自服务器X大小为Y的NFS存储”,而是更像“我需要默认类别和大小为Y的持久性存储”。
通过这种方式,在不同集群上的部署可以选择不同的满足方式。一个可以连接EBS设备,另一个可以提供GlusterFS,而你的核心清单在两种情况下仍然相同。
此外,你可以在部署中定义Volume Claim Templates,以便每个pod都自动创建一个反映PVC的副本(即为一组可扩展的pod支持基础架构无关的存储定义,每个pod都需要自己专用的存储)。
简述:
- 这里是存储!持久化卷 (PV)
- 如果您确实需要它,您将得到存储!持久化卷请求 (PVC)
持久卷(PV)是集群或中心存储中的一块存储空间,例如100GB。
持久卷声明(PVC)是用户为应用程序申请10GB存储空间的请求。
在实际场景中,PV是整个蛋糕,而PVC就是一块蛋糕(但是如果没有其他人使用,你可以拥有整个蛋糕,就像如果没有其他应用程序使用,您可以使用整个PV)。
简洁明了
持久卷 - 可用的存储,比如您有100Gi
持久卷索取 - 您从持久卷请求,比如您请求10Gi,您将得到它,但如果您请求110Gi,您将不会得到。
PersistentVolume(PV)和PersistentVolumeClaim(PVC)是由Kubernetes提供的资源API。PV是存储的一部分,应该由管理员预先分配。而PVC是用户对存储一部分的请求。
持久化卷 — 存储卷的低级表示。 持久化卷声明 — Pod 和持久化卷之间的绑定关系。 存储类 — 允许动态配置持久化卷。
当比较PV和PVC与节点和Pod时,可以发现一些共同点。
PV就像一个节点,它定义了存储。
PVC就像Pod,需要资源(内存,CPU),如果节点有可分配的资源,就会得到这些资源,其中包括存储。
PVC
和PV
之间,因为它定义了通过PVC
可用于生成的PV
类别。 - Will Gordon