跳转至

StorageClass使用的场景

1. 云环境(最常见场景)

在公有云上(如 AWS、GCP、Azure、阿里云、腾讯云等),每个云厂商都提供了自己的存储插件(CSI Driver)。

  • 动态创建的好处:当用户创建 PVC 时,Kubernetes 会根据 PVC 里指定的 StorageClass 自动去云平台创建对应的磁盘/存储卷(如 AWS EBS、阿里云云盘)。

  • 典型场景

    • 应用 Pod 启动时需要 20Gi 存储,K8s 自动去云平台拉一块云盘并挂载。

    • 应用删除时(PVC 删除),云盘也能自动回收(根据 reclaimPolicy)。

📌 示例(阿里云云盘 StorageClass):

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-disk-ssd
provisioner: diskplugin.csi.alibabacloud.com
parameters:
  type: cloud_ssd
reclaimPolicy: Delete


2. 私有云 / 虚拟化平台

在 OpenStack、VMware、裸机环境中,也可以通过 CSI 插件对接后端存储系统(如 Ceph RBD、GlusterFS、vSAN、存储阵列)。

  • 动态创建的好处:免去了运维手动创建 PV 的繁琐操作。

  • 典型场景

    • OpenStack 的 Cinder 卷

    • VMware vSAN 动态分配卷

    • Ceph 提供 RBD 池,K8s 自动创建 RBD Image


3. 多租户环境

当多个团队/命名空间共用集群时,无法预先为每个团队静态创建一堆 PV。

  • 动态创建的好处:开发人员只需写 PVC(声明需求),K8s 自动为他们创建合适的 PV。

  • 典型场景

    • SaaS 平台,每个租户的应用部署时能获得独立的存储卷。

    • CI/CD 自动化流水线,测试环境需要临时卷,跑完可以删除。


4. 临时 / 自动化场景

  • CI/CD 测试环境:流水线每次运行都会拉起一组 Pod,需要新的持久卷,结束后删除。

  • 大数据/AI 场景:训练任务可能要申请临时大容量存储,任务完成后释放。


5. 运维解放

如果不用 StorageClass,管理员需要提前创建一批 PV,然后用户 PVC 去匹配,很不灵活。

  • 动态创建让 用户自助:只管写 PVC,K8s 帮忙搞定存储分配。

  • 管理员只需维护 StorageClass 的定义和后端存储的可用性。


✅ 总结一句:
StorageClass 动态创建最主要用在 “存储可编程化” 的场景,尤其是云环境和多租户环境,让用户无需关心底层存储细节,只需声明需求即可。