知识卡片

PV-PVC-StorageClass的三层存储抽象

专业/工作 · 557.e

内容

Kubernetes把存储资源的”提供”和”使用”拆成两个独立的角色:持久化卷(PV)代表一份已经存在、由集群管理员或存储系统预先准备好的存储资源,PVC则是应用发出的一份存储需求声明(要多大容量、什么访问模式),Kubernetes负责把匹配的PV绑定给PVC,应用全程不需要知道底后端存储的任何细节。当没有现成的PV能满足PVC时,StorageClass能描述”该用哪种存储插件、以什么参数动态创建一个新PV”,实现按需自动供给而不必提前手工预留。发散:这套PV/PVC/StorageClass分层,本质上是[[存储池与存储卷分离的通用抽象模式]]在Kubernetes里的又一次重现,只是这次多加了StorageClass这一层,把”资源池怎么创建”这个问题也自动化了——从Libvirt的存储池+存储卷,到Cinder的逻辑卷+Driver,再到这里的PV/PVC/StorageClass,同一个抽象骨架在存储管理软件的不同世代里被反复验证有效。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第9章《容器存储》