Kubernetes中,PersistentVolume和PersistentVolumeClaim的概念上有何区别?

3

我知道PVC可以用作k8s中的存储卷。我知道如何创建它们以及如何使用它们,但我不明白为什么会有两种卷,PV和PVC。

有人能否给我一个关于PV/PVC区别的架构原因?它试图解决什么样的问题(或者背后有什么历史)?


1
这回答了您的问题吗?Kubernetes工作区中的持久卷和声明 - fgul
2个回答

8
尽管它们的名字相似,但它们有两个不同的目的:一个是存储的抽象(PV),另一个是对这种存储的请求(PVC)。它们一起实现了关注点的清晰分离(使用我们的Kubernetes Cookbook中的一张图片来说明这一点):

enter image description here

存储管理员专注于通过定义存储类(理想情况下通过动态方式)来提供PV,开发人员使用PVC获取PV并在pod中使用它。

3
很容易被名称所困扰,但是kubernetes文档中有对差异的解释
持久化存储卷(PersistentVolume,PV)是由管理员在集群中预分配的存储资源。它和节点一样是集群资源,虽然像卷插件一样,但其生命周期不依赖于使用PV的任何单个Pod。
同时,持久化存储卷声明(PersistentVolumeClaim,PVC)是用户请求存储的一种方式,类似Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存),而声明可以请求特定大小和访问模式(例如,可以挂载一次读/写或多次只读)。
因此,PVC将应用程序与具体存储解耦。它允许应用程序声明需要满足某些要求的存储空间,而不是说确定哪一块存储空间,这也使得可以定义在整个集群上规则,以满足应用程序的存储需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接