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 将数据卷挂载到容器内部。

posted @   夜夜漫笔  阅读(286)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示