K8s CSI(Container Storage Interface)

名词解释

名词 解释
in-tree 存在于核心 Kubernetes 存储库中的代码。
out-of-tree 存在于 Kubernetes 核心代码库之外的代码。
Volume Plugin PV Controller、ADController 以及 Volume Manager 对某一 volume 进行 Provision/Delete、Attach/Detach、Mount/Umount 等操作,其实都是通过调用 volume 所对应的 Volume Plugin 实现的 k8s 定义的 VolumePlugin 接口来完成的。Volume Plugin 有多种,包括 NFS Volume PluginCSI Volume Plugin 等(Volume Plugin 都是 in-tree 的)
Container Storage Interface (CSI) 一个行业标准的接口规范,使容器编排系统(COs)能够将任意存储系统暴露给其容器化工作负载。
CSI Volume Driver 实现了 CSI 的驱动程序。CSI Volume Plugin 将会调用 CSI Volume Driver 实现的 CSI,完成对 volume 的 Provision/Delete、Attach/Detach、Mount/Umount 等操作(CSI Volume Driver 都是 out-of-tree 的)

背景和动机

由于,Kubernetes所有的Volume Plugin是in-tree的,意味着存储供应商(Storage Provider,SP)向Kubernetes添加新的存储系统需要实现新的Volume Plugin,并将代码检入核心Kubernetes代码仓库中。这样做有很多不好的地方。同时SP也一直在应对如何使他们的存储系统在不同的容器编排系统(COs)中可用。SP必须为同一个存储系统编写和支持多个Volume Plugin以适用于不同的CO或选择不支持某些CO。

容器存储接口(CSI)是一个规范,由来自各种CO(包括Kubernetes、Mesos、Cloud Foundry和Docker)的社区成员合作而产生。 该接口旨在建立标准化机制,这样SP只需要各自维护其符合CSI规范的out-of-tree的CSI Volume Driver,并由各CO来维护各自的in-tree的CSI Volume Plugin,就可以在各种CO中使用其存储系统。

Kubernetes 的存储架构

在Kubernetes上CSI Volume Driver的推荐部署模式

CVD

第三方SP需要实现并创建一个CSI Volume Driver(以下简称CVD)容器,要求其中的bin(例如alibaba-cloud-csi-driver)实现CSI规范中所定义的包括ControllerNode,和Identity服务,并通过Unix域套接字公开gRPC接口。

部署

在这里插入图片描述
部署主要包含两个部分:CSI Controller Server 与 CSI Node Server。

  • Controller Server(StatefulSet或Deployment)是控制端的功能,主要实现create/delete、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值