Kubernetes中的PersistentVolume和PersistentVolumeClaim在概念上有什么区别?

时间:2018-12-17 13:33:37

标签: kubernetes

我知道PVC可以用作k8s中的体积。我知道如何创建它们以及如何使用它们,但是我不明白为什么会有PV和PVC这两个。

有人可以给我提供PV / PVC区别背后的架构原因吗?它试图解决什么样的问题(或背后的历史是什么?)?

2 个答案:

答案 0 :(得分:3)

尽管它们具有名称,但它们有两个不同的用途:存储抽象(PV)和请求存储(PVC)。在一起,它们可以使关注点清晰地分开(使用此处Kubernetes Cookbook中的数字进行说明):

enter image description here

存储管理员专注于供应PV(最好是通过定义存储类来dynamically),而开发人员使用PVC来获取PV并将其用于吊舱中。

答案 1 :(得分:1)

除了kubernetes documentation does have an explanation of the difference之外,其他名称很容易抛出:

  

PersistentVolume(PV)是群集中由管理员配置的一部分存储。它是群集中的资源,就像节点是群集资源一样。 PV是类似于Volumes的卷插件,但是其生命周期独立于使用PV的任何单个容器。

  

PersistentVolumeClaim(PVC)是用户存储请求。它类似于吊舱。容器消耗节点资源,PVC消耗PV资源。 Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以一次读/写或多次只读安装)。

因此,PVC将应用程序与特定存储区分开。它允许应用程序说它需要一些满足某些要求的存储,而无需特别说明是哪个存储。这也使得可以定义集群级规则,以了解如何满足应用程序的存储要求。