问题描述
我想知道 Kubernetes 持久卷声明的“容量”是什么意思。这是否意味着 Kubernetes 将使用您在集群上指定的卷(例如 20 GB)安排一个 pod,并且如果您没有完全使用 20 GB,这 20 GB 空间将被隔离或自动缩减。
解决方法
来自docs:
PersistentVolumeClaim (PVC) 是用户的存储请求。它 类似于 Pod。 Pod 消耗节点资源,PVC 消耗 PV 资源。
因此,PVC
不是实际存储,而是对存储的请求。 Persistent Volume (PV)
是实际存储空间:
PersistentVolume (PV) 是集群中的一块存储,它具有 由管理员配置或使用动态配置 存储类。
如果有匹配的 PV 可用,则 PVC
资源会绑定到实际的 PV 资源。然后,Pod 可以使用 persistentVolumeClaim
下的 Pod 规范 volumes
字段中对 PVC 的引用来使用物理存储。
我想知道“容量”对于 Kubernetes 持久化意味着什么 数量声明。
PVC 资源没有 capacity
字段,但有 storage
字段,这意味着如果 PV 对象上的匹配容量至少具有数量,则该 PVC 资源将绑定到 PV 对象PVC 对象请求的存储空间(如果是静态配置的)。
PVC 还可以配置为允许 dynamic provision,这意味着如果集群中没有匹配的 PV,则实际存储将作为 PVC 创建的一部分进行配置。
这是否意味着 Kubernetes 将使用您的卷来安排一个 pod 在您的集群上指定(例如 20 GB)并且 20 GB 空间将 如果您没有完全使用它,它会被隔离还是自动缩小 20 GB。
如果您为集群配置了动态配置并创建了一个 PVC 对象,那么会在内部创建一个匹配的 PV 对象,并且 PVC 将绑定到相同的对象。 A pod needs to reference the PVC object to actually use it。此外,存储资源不会根据实际消耗自动调整大小。一旦创建,它们将被持久化,直到被明确删除,并且它们的生命周期独立于 Pod。