当前位置: 首页 > news >正文

理解 Kubernetes CSI

关于 Kubernetes CSI,现在的资料已经不少,但我仍希望有一篇文档能让人轻松但不失准确地理解 CSI。

本文不涉及代码分析和详细设计。但需要如下基础:

  • 会使用至少一种容器,Docker,containerd,Kata 之类的都可以。
  • protobuf 和 gRPC:会用并有少量的开发经验,会用某种语言(最好是 Go)开发简单的 client 和 server。
  • k8s:懂得基本概念,会简单使用。
  • 存储:会使用至少一种。如 Ceph、NFS、公有云的云盘,都可以。

什么是 CSI

CSI 是存储(如 Ceph、NFS)与 CO(如 k8s)之间的对接规范。

这里我们只考虑 k8s 这一种 CO。存储提供方可以通过实现 CSI 的方式接入 k8s 并让 Pod 使用存储。

k8s CSI 在形式上是一个 gRPC proto 定义再加上一些文档形式的约定。

https://github.com/container-storage-interface/spec

该仓库中,有文件 csi.proto。实现了该文件中所定义 API 的程序就具备了成为 CSI 驱动的必要条件。

需要实现的 gRPC Service 有:

service Identity {//
}service Controller {//
}service GroupController {//
}service SnapshotMetadata {//
}service Node {//
}

CSI 在 k8s 中的位置

在形式上,CSI driver 常常由如下组成:

  • 一两个 Deployment 或 StatefulSet:主要是 provisioner,attacher
  • 一两个 DaemonSet:主要是 node-driver-registrar 和 node-plugin

其他组件暂不考虑,遇到了再去了解即可。

通过这里

https://www.cnblogs.com/jthmath/p/19029054

可以看到各个组件的作用。

provisioner 的每个 Pod 通常有 2 个容器,一个是 external-provisioner,一个是存储厂商提供的程序,记为 P。

attacher(有的存储没有此组件)的每个 Pod 通常有 2 个容器,一个是 external-attacher,一个是存储厂商提供的程序,记为 A。

external-provisioner 和 external-attacher 不是 k8s 组成部分,但它是由 k8s-sig 维护的。

它们监听 k8s 中特定的资源(如 PVC、PV),并通过 gRPC 调用 P 和 A。

node-driver-registrar 也是由 k8s-sig 维护,作用是告知它所在节点的 kubelet “这里有个 csi driver,名字是 xxx,其他信息是 xxx”。

kubelet 记住 node-driver-registrar 告知的信息后,适时调用 node-plugin。

这样一来,k8s 和存储就完成了对接。

http://www.wxhsa.cn/company.asp?id=4859

相关文章:

  • 9.15
  • 常用数学定理公式
  • 线性规划
  • 伪代码学习总结
  • 20号胶 2511
  • 9.13linux系统命令
  • 9.15 svn git
  • PVC2601
  • 利用RabbitMQ与Redis实现消息的延迟传递的策略
  • python 按excel的经纬度提取对应栅格tif文件的数值
  • 麒麟
  • 实现我的第一个本地文档问答机器人
  • 17、逻辑回归与分类评估 - 从连续到离散的智能判断 - 教程
  • 关于32位单片机使用lwip无法访问(ping)外网,只能与同网段设备进行通信的问题解决
  • 044-WEB攻防-PHP应用SQL盲注布尔回显延时判断报错处理增删改查方式
  • 多品牌摄像机视频平台EasyCVR海康大华宇视视频平台统一接入方案
  • GoFrame框架查询数据表时对字段取别名
  • ubuntu安装mysql矩阵
  • 043-WEB攻防-PHP应用SQL注入符号拼接请求方法HTTP头JSON编码类
  • 离散数学课堂习题及课后习题 - PPX
  • 玻璃2601
  • 二十、DevOps落地:Jenkins基础入门(一)
  • ubuntu 22.04安装mysql5.7
  • Docker如何获取镜像
  • 2025 ICPC 网络赛2 E
  • 偏移寻址
  • 金融业-数字化转型大赛-网络安全赛道部分wp
  • Mysql查找含字符串表字段
  • MySQL注意事项与规范 - 实践
  • 真正的元推理,不需要人类的认可,恰恰是人类追求元推理,只有元推理才能彻底解放人类