写点什么

CSI

0 人感兴趣 · 20 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/02/02aa64f52b2d78abbc63504d7659886f.jpeg?x-oss-process=image/resize,w_416,h_234

kubelet 之 csi driver 注册分析

用户头像
良凯尔6 月 20 日

kubelet注册csi driver的相关功能代码与kubelet的pluginManager有关,所以接下来对pluginManager进行分析。分析将分为pluginManager的初始化分析以及pluginManager的运行(处理逻辑)分析。

https://static001.geekbang.org/infoq/ca/ca154c7667899f5f643c5d363ef57615.jpeg?x-oss-process=image/resize,w_416,h_234

kubelet 之存储扩容源码分析

用户头像
良凯尔6 月 12 日

存储的扩容分为controller端操作与node端操作两大步骤,controller端操作由external-resizer来调用ceph完成,而node端操作由kubelet来完成,下面来分析下kubelet中有关存储扩容的相关代码。

https://static001.geekbang.org/infoq/79/79a826dd5f5514ae85fccf1c73b01a7a.jpeg?x-oss-process=image/resize,w_416,h_234

kubelet 之 volume manager 源码分析

用户头像
良凯尔6 月 6 日

volume manager存在于kubelet中,主要是管理存储卷的attach/detach(与AD controller作用相同,通过kubelet启动参数控制哪个组件来做该操作)、mount/umount等操作。

https://static001.geekbang.org/infoq/73/738834753983827ce7a4612b827eb699.jpeg?x-oss-process=image/resize,w_416,h_234

kube-controller-manager 之 AD Cotroller 源码分析

用户头像
良凯尔5 月 29 日

AD Cotroller全称Attachment/Detachment 控制器,主要负责创建、删除VolumeAttachment对象,并调用volume plugin来做存储设备的Attach/Detach操作(将数据卷挂载到特定node节点上/从特定node节点上解除挂载),以及更新node.Status.VolumesAttached等。

https://static001.geekbang.org/infoq/de/de9cf8541c4080fa64313d11501e9ecb.jpeg?x-oss-process=image/resize,w_416,h_234

kube-controller-manager 之 PV Cotroller 源码分析

用户头像
良凯尔5 月 22 日

kube-controller-manager组件中,有两个controller与存储相关,分别是PV controller与AD controller。 PV Cotroller全称PersistentVolume controller,主要负责pv、pvc的绑定和生命周期管理(如创建/删除底层存储,创建/删除pv,pv与pvc的状态变更)。

https://static001.geekbang.org/infoq/70/700beb40606062e483760da7f6f35090.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(8)-cephfs driver 分析

用户头像
良凯尔5 月 15 日

cephfs driver,与rbd driver类似,同样包括了controllerserver、nodeserver与IdentityServer,且大部分方法逻辑一致,只是最后调用的cli命令稍有不同,所以大部分方法的分析可以参考rbd driver部分。

https://static001.geekbang.org/infoq/26/267af14efd4f04eb5116be2263084475.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(7)-rbd driver-IdentityServer 分析

用户头像
良凯尔5 月 15 日

这节进行IdentityServer分析,IdentityServer主要包括了GetPluginInfo(获取driver信息)、Probe(探测接口)、GetPluginCapabilities(获取driver能力)三个方法,将一一进行分析。

https://static001.geekbang.org/infoq/01/01589a5ecc2df00514330a812adabec8.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(6)-rbd driver-nodeserver 分析(下)

用户头像
良凯尔5 月 9 日

这节进行NodeStageVolume(map rbd与mount stagingPath)、NodePublishVolume(mount targetPath)、NodeUnpublishVolume(umount targetPath)、NodeUnstageVolume(umount stagingPath与unmap rbd)的分析。

https://static001.geekbang.org/infoq/2f/2fd48fdb922ee8e3e7c4cb7190b2dc60.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(5)-rbd driver-nodeserver 分析(上)

用户头像
良凯尔5 月 9 日

nodeserver主要包括了NodeGetCapabilities(获取driver能力)、NodeGetVolumeStats(存储探测及metrics获取)、NodeStageVolume、NodePublishVolume、NodeUnpublishVolume、NodeUnstageVolume、NodeExpandVolume操作

https://static001.geekbang.org/infoq/b0/b0465fbdc95a845a3204e22553205589.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(4)-rbd driver-controllerserver 分析

用户头像
良凯尔4 月 30 日

这节进行controllerserver分析,controllerserver主要包括了CreateVolume(创建存储)、DeleteVolume(删除存储)、ControllerExpandVolume(存储扩容)、CreateSnapshot(创建存储快照)、DeleteSnapshot(删除存储快照)操作。

https://static001.geekbang.org/infoq/dd/dd89f014bcc9239363b7b4de8422424c.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(3)-rbd driver- 服务入口分析

用户头像
良凯尔4 月 30 日

当ceph-csi组件启动时指定的driver type为rbd时,会启动rbd driver相关的服务。然后再根据controllerserver、nodeserver的参数配置,决定启动ControllerServer与IdentityServer,或NodeServer与IdentityServer。

https://static001.geekbang.org/infoq/81/81188968e64ea39af1fd35b37e901eb9.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(2)- 组件启动参数分析

用户头像
良凯尔4 月 24 日

ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合。调用第三方存储ceph的接口或命令,从而提供ceph数据卷的创建/删除、挂载/解除挂载的具体操作实现。本文将对ceph-csi组件的启动参数进行分析。

https://static001.geekbang.org/infoq/af/afa8d5b8386b6f72cbb7f3b10bea60af.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(1)- 组件介绍与部署 yaml 分析

用户头像
良凯尔4 月 24 日

ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合。调用第三方存储ceph的接口或命令,从而提供ceph数据卷的创建/删除、挂载/解除挂载的具体操作实现。这里将对ceph-csi组件进行展开分析。

https://static001.geekbang.org/infoq/82/8252c02260a57b7a53feb8631e6f40b2.jpeg?x-oss-process=image/resize,w_416,h_234

kubernetes ceph-csi 分析 - 目录导航

用户头像
良凯尔4 月 17 日

最近在做分布式存储ceph接入kubernetes,用的是csi这一套,在开发的过程中,自己也用有道云笔记做过一些ceph-csi相关的源码分析、知识总结之类的记录,刚好自己又萌生了发博的想法,后续准备加以完善,然后发出来大家互相学习,有什么错误的地方希望大家指出

https://static001.geekbang.org/infoq/ee/ee19e4ed56c2df79bd072c36fb7498ce.jpeg?x-oss-process=image/resize,w_416,h_234

external-provisioner 源码分析(3)- 组件启动参数分析

用户头像
良凯尔4 月 17 日

external-privisioner组件属于ceph-csi套件中的一个,主要负责调用ceph-csi组件的CreateVolume方法来创建存储,创建存储成功后,创建pv对象;调用ceph-csi的DeleteVolume方法来删除存储,并删除pv对象。接下来将对external-provisioner组件启动参数进行分析。

https://static001.geekbang.org/infoq/2d/2d2baaba6b845ca2365144b67e46a773.jpeg?x-oss-process=image/resize,w_416,h_234

external-provisioner 源码分析(2)-main 方法与 Leader 选举分析

用户头像
良凯尔4 月 17 日

external-privisioner组件属于ceph-csi套件中的一个,负责调用ceph-csi组件CreateVolume方法来创建存储,创建存储成功后创建pv对象;调用ceph-csiDeleteVolume方法来删除存储,并删除pv对象。接下来对external-provisioner进行main 方法与 Leader 选举分析。

https://static001.geekbang.org/infoq/35/35b55f6b75b79a4f376dde9c544ed312.jpeg?x-oss-process=image/resize,w_416,h_234

external-provisioner 源码分析(1)- 主体处理逻辑分析

用户头像
良凯尔4 月 17 日

external-privisioner组件属于ceph-csi套件中的一个,主要负责调用ceph-csi组件的CreateVolume方法来创建存储,创建存储成功后,创建pv对象;调用ceph-csi的DeleteVolume方法来删除存储,并删除pv对象。接下来将对external-provisioner进行主体处理逻辑分析。

https://static001.geekbang.org/infoq/73/738834753983827ce7a4612b827eb699.jpeg?x-oss-process=image/resize,w_416,h_234

k8s 通过 ceph-csi 接入存储的概要分析

用户头像
良凯尔4 月 17 日

通过ceph-csi让k8s接入ceph存储,对所涉及的k8s对象与组件进行了简单的介绍,以及对存储进行操作的流程分析,存储相关操作包括了存储创建、存储扩容、存储挂载、解除存储挂载以及存储删除操作。

K8S CSI 容器存储接口 (二):如何编写一个 CSI 插件

用户头像
silenceper2020 年 11 月 26 日

这里以csi-driver-host-path作为例子,来看看是如何实现一个csi插件的?

https://static001.geekbang.org/infoq/e7/e75772714707cfc9d443528e58a83cbc.png?x-oss-process=image/resize,w_416,h_234

K8S CSI 容器存储接口 (一):介绍以及原理

用户头像
silenceper2020 年 11 月 26 日

容器存储接口(CSI)是用于将任意块和文件存储系统暴露给诸如Kubernetes之类的容器编排系统(CO)上的容器化工作负载的标准。 使用CSI的第三方存储提供商可以编写和部署在Kubernetes中公开新存储系统的插件,而无需接触核心的Kubernetes代码。

CSI_CSI资料文章-InfoQ写作平台