先判断:这门课值不值得学

云原生存储是块硬骨头,很多团队在使用持久化存储时,往往只停留在调用现成 CSI 驱动、写写 PVC 的阶段。一旦遇到需要对接自研分布式存储、改造内部旧存储系统,或者排查底层卷挂载失败的情况,不懂 CSI 插件内部机制就会完全卡住。这门课就是用来解决这个断层问题的:它专门拆解容器存储接口插件的开发链路,带你搞清楚外部存储到底是怎么通过 gRPC 接口与集群协作,最终把一块真实的卷挂载到业务 Pod 里的。如果你目前的工作涉及基础设施开发、平台工程或者存储侧运维,需要从“会用”跨越到“能改能造”,那这门课的投入产出比很高。但如果你连日常部署应用、调度器基础都还没理清,暂时不建议碰,过早接触底层接口开发只会增加挫败感。

门槛与基础:适合什么人来跟

课程内容明确标注了不适合纯新手,这点需要重点考量。在打开资料包前,你必须具备两个硬性前提:一是熟练的 Kubernetes 基础操作能力,知道 StatefulSet 怎么用、理解 PV 和 PVC 的绑定生命周期、清楚 kubelet 的核心工作流;二是具备基础的 Golang 编码能力,能独立看懂并修改结构体、接口定义以及 gRPC 服务实现代码。这门课不会教你装集群,也不会讲 Go 语言语法。它直接默认你已经跨过了这两道门槛,直接带你进入 CSI 规范的代码实现层面。对于想转行做云原生开发但缺乏底层组件实操经验的人,建议先补齐上述两块基础再来看这套资料,否则代码跑不通时连排错方向都找不到。

资料怎么用:学习路线与实操建议

拿到资料后,不要直接跳到部署环节,建议严格按照代码逻辑的演进顺序来推进。第一阶段先抓核心概念与主干结构,重点看 ControllerService 和 Identity Service 的构建,理解外部 Sidecar 组件(如 csi-provisioner)是如何与你的插件代码交互的,把卷的创建流程在脑子里跑通。第二阶段进入 NodeService 编写时,必须结合 Volume 的生命周期去理解节点侧的挂载动作,这里的概念比较抽象,建议边看边在本地环境画状态流转图。第三阶段是入口文件编写与模拟插件的部署测试,这是验证前面代码逻辑的关键节点。

在配合资料练习时,强烈建议准备一个可用的测试集群和一套 Go 开发环境。每听完一个服务的构建逻辑,就立刻在本地把对应的模拟代码敲出来跑通。不要只停留在看懂代码的层面,学完这套流程并独立完成模拟插件的部署测试后,你应当能独立搭建出一个具备基础增删改查能力的 CSI 插件骨架,清楚各个服务接口的职责边界,并具备在此基础上对接真实存储后端 API 的代码扩展能力。


本课程是k8s基础速学4的子课程。之前开过一个CNI插件入门引导课,本课程对csi插件做个入门级的引导教学。本课程不适合新手,需要熟练掌握k8s基操、golan

课程目录

*   第一章:无脑模拟和基本运行 cplist.push('第一章:无脑模拟和基本运行');/

  *   第1讲:开张课、课程内容、csi基本概念

  *   第2讲:ControllerService 的基本构建(1):模拟创建volume、csi-provisioner作用

  *   第3讲:ControllerService 的基本构建(2):设置Capabilities、挂载过程简述

  *   第4讲:Identity Service 的基本构建代码

  *   第5讲:NodeService 的基本构建代码(演示)、Volume的生命周期

  *   第6讲:CSI插件入口文件的基本代码编写

  *   第7讲:模拟的csi插件:基本部署方式和测试运行

  *   第8讲:创建pod简单测试一下自定义csi插件