K8S CSI 简单理解
https://enix.io/en/blog/kubernetes-storage-csi-plugin/
定义
CSI 是一个标准,来统一本地或远程持久化卷的动态提供。CSI 是K8S 和 存储提供者之间的接口。
存储提供者主要完成一下任务(接收k8s 指令):
- 创建指定大小的卷
- 调整卷的大小
- 卷的快照
- 基于快照创建卷
- 删除卷
- 卷附着并挂载在主机上
CSI 插件
插件由以下三部分组成
- 存储系统本体
- 控制插件。这是一个grpc 服务,接受k8s指令并调用存储提供者的API来管理卷
- 节点插件。这是一个grpc 服务,在工作节点上挂载或卸载卷
控制插件
控制插件提供的主要几个功能:
CSI command Description
CreateVolume Create a volume
DeleteVolume Delete a volume
ControllerPublishVolume Map a volume on a host
ControllerUnpublishVolume Unmap a volume from a host
节点插件
节点插件主要用来管理工作节点上的卷,每个工作节点上都有有个这样的插件。
和控制插件一样,它通过grpc接收CSI 指令。
协作关系
K8S 给控制插件和工作插件发送CSI 指令,控制节点接收指令后会调用存储提供者的API来创建并映射数据卷。工作插件挂载并附着设备到相应的主机上,随后 K8S 将数据卷挂载到容器内部。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了