0

0

云原生中的存储类如何动态提供存储?

煙雲

煙雲

发布时间:2025-10-05 10:46:02

|

634人浏览过

|

来源于php中文网

原创

StorageClass通过动态卷供给实现存储自动化,定义存储类别、配置Provisioner参数、回收策略及绑定模式;当PVC创建时,系统按需调用插件(如Ceph、EBS)生成PV并绑定,使持久化存储像CPU内存一样即申即用。

云原生中的存储类如何动态提供存储?

云原生环境中,存储类(StorageClass)通过动态卷供给机制自动创建持久化存储,无需手动配置物理存储资源。核心在于 StorageClass 与容器编排系统(如 Kubernetes)的卷插件协同工作,按需为 PersistentVolumeClaim(PVC)提供后端存储。

StorageClass 的作用

StorageClass 定义了存储的“类别”,比如高性能 SSD、普通 HDD 或网络存储,并包含以下关键信息:

  • Provisioner:指定由哪个插件(如 AWS EBS、GCE PD、Ceph RBD、NFS 等)来创建实际的存储卷
  • Parameters:传递给 provisioner 的参数,例如磁盘类型、IOPS、区域等
  • Reclaim Policy:决定 PVC 删除后卷的处理方式(Retain 或 Delete)
  • Volume Binding Mode:控制 PV 何时绑定,Immediate 表示立即绑定,WaitForFirstConsumer 表示延迟到 Pod 调度时

动态供给的工作流程

当用户提交一个 PVC 请求时,系统会触发动态供给流程:

  • 用户创建 PVC,声明所需存储大小和访问模式(ReadWriteOnce、ReadOnlyMany、ReadWriteMany)
  • Kubernetes 检查 PVC 中引用的 StorageClass 是否存在
  • 如果存在且未设置静态 PV 绑定,系统调用对应 provisioner 创建底层存储卷(如 AWS 上生成一个新的 EBS 卷)
  • 自动生成 PersistentVolume(PV)对象,代表这个实际的存储资源
  • PV 与 PVC 自动绑定,Pod 可以通过 PVC 使用该存储

实际配置示例

定义一个基于 Ceph RBD 的 StorageClass:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-ssd
provisioner: rbd.csi.ceph.com
parameters:
  clusterID: "ceph-cluster-1"
  pool: "replicapool"
  imageFormat: "2"
  imageFeatures: "layering"
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

之后用户只需在 PVC 中引用 fast-ssd,系统就会自动为其分配符合要求的 Ceph 块设备。

晓象AI资讯阅读神器
晓象AI资讯阅读神器

晓象-AI时代的资讯阅读神器

下载

支持的动态供给插件

Kubernetes 支持多种内置和 CSI(Container Storage Interface)标准的 provisioner:

  • AWS EBS、Azure Disk、Google Persistent Disk
  • Ceph RBD / CephFS、GlusterFS
  • NFS、iSCSI(需第三方 CSI 驱动)
  • 本地存储(Local Path Provisioner,适用于测试)

只要集群中部署了对应的 CSI 驱动并正确配置 StorageClass,就能实现按需自动创建存储。

基本上就这些。动态供给让开发人员不必关心底层存储细节,真正实现了存储即服务的理念。只要配置好 StorageClass,PVC 就能像申请 CPU 和内存一样方便地获取持久化存储。

相关专题

更多
go中interface用法
go中interface用法

本专题整合了go语言中int相关内容,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

210

2023.12.29

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

cdn加速软件有哪些
cdn加速软件有哪些

CDN加速软件可以帮助网站提高内容访问速度和用户体验,降低服务器负载。在选择CDN加速软件时,需要根据实际需求和预算进行权衡,选择合适的软件和服务商。cdn加速软件有AWS CloudFront、Azure Content Delivery Network、Google Cloud CDN、Fastly、Cloudflare和Incapsula。

318

2023.10.19

PHP 命令行脚本与自动化任务开发
PHP 命令行脚本与自动化任务开发

本专题系统讲解 PHP 在命令行环境(CLI)下的开发与应用,内容涵盖 PHP CLI 基础、参数解析、文件与目录操作、日志输出、异常处理,以及与 Linux 定时任务(Cron)的结合使用。通过实战示例,帮助开发者掌握使用 PHP 构建 自动化脚本、批处理工具与后台任务程序 的能力。

30

2025.12.13

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

11

2026.01.19

微信聊天记录删除恢复导出教程汇总
微信聊天记录删除恢复导出教程汇总

本专题整合了微信聊天记录相关教程大全,阅读专题下面的文章了解更多详细内容。

73

2026.01.18

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号