写点什么

CSI

0 人感兴趣 · 25 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/1e/1eb37d420ff85042691d1ac02268e899.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

kubernetes/k8s CSI 分析 - 容器存储接口分析

用户头像
良凯尔
2021-07-24

kubernetes CSI分析-k8s CSI分析。kubernetes中有3个功能接口,分别是容器网络接口CNI、容器运行时接口CRI和容器存储接口CSI。本文会对CSI是什么、为什么要有CSI、CSI系统架构做介绍,对CSI所涉及的k8s对象与组件进行介绍,以及k8s对CSI存储进行相关操作分析

https://static001.geekbang.org/infoq/2e/2eba3e48043a32dafbbad3f075f3c6bd.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

external-resizer 源码分析 -pvc 扩容分析

用户头像
良凯尔
2021-07-18

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

https://static001.geekbang.org/infoq/c2/c2119a7ac8b1ee119a583bca11f92d2b.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

external-attacher 源码分析 (2)- 核心处理逻辑分析

用户头像
良凯尔
2021-07-10

ceph-csi分析-external-attacher源码分析。external-attacher属于external plugin,辅助csi plugin组件,共同完成了存储相关操作。external-attacher watch volumeAttachment对象,调用csi plugin来做attach/dettach操作,并修改volumeAttachment与pv对象。

https://static001.geekbang.org/infoq/ac/aca03a2ccb7c0801cda633395b8af5c0.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

external-attacher 源码分析 (1)-main 方法与启动参数分析

用户头像
良凯尔
2021-07-03

ceph-csi分析-external-attacher分析。external-attacher属于external plugin中的一个,辅助csi plugin,共同完成了存储相关操作。external-attacher watch volumeAttachment对象,调用csi plugin做attach/dettach操作,修改volumeAttachment对象与pv对象。

https://static001.geekbang.org/infoq/f8/f815eac6658183bf09da539f43ed1d0b.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

kubelet 分析 -csi driver 注册分析 -Node Driver Registrar 源码分析

用户头像
良凯尔
2021-06-27

kubelet分析-csi driver注册分析-Node Driver Registrar源码分析。node-driver-registrar是一个sidecar容器,通过Kubelet的插件注册机制将CSI plugin/csi driver注册到Kubelet,让kubelet做volume的mount/umount操作时知道怎么调用相应的csi plugin。

https://static001.geekbang.org/infoq/02/02aa64f52b2d78abbc63504d7659886f.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

kubelet 分析 -csi driver 注册源码分析

用户头像
良凯尔
2021-06-20

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

https://static001.geekbang.org/infoq/ca/ca154c7667899f5f643c5d363ef57615.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

kubelet 分析 -pvc 扩容源码分析

用户头像
良凯尔
2021-06-12

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

https://static001.geekbang.org/infoq/79/79a826dd5f5514ae85fccf1c73b01a7a.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

kubelet 之 volume manager 源码分析

用户头像
良凯尔
2021-06-06

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

https://static001.geekbang.org/infoq/73/738834753983827ce7a4612b827eb699.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-05-29

AD controller源码分析。ad controller源码分析。AD Cotroller主要负责创建、删除VolumeAttachment对象,调用volume plugin来做存储设备Attach/Detach操作(将数据卷挂载到特定node节点上/从特定node节点上解除挂载),更新node.Status.VolumesAttached等。

https://static001.geekbang.org/infoq/de/de9cf8541c4080fa64313d11501e9ecb.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-05-22

pv controller源码分析。kcm中,有两个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%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-05-15

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

https://static001.geekbang.org/infoq/26/267af14efd4f04eb5116be2263084475.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-05-15

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

https://static001.geekbang.org/infoq/01/01589a5ecc2df00514330a812adabec8.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-05-09

kubernetes ceph-csi分析 - 目录导航。这节进行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%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-05-09

kubernetes ceph-csi分析目录导航。nodeserver主要包括了NodeGetCapabilities(获取driver能力)、NodeGetVolumeStats(存储探测及metrics获取)、NodeStageVolume、NodePublishVolume、NodeUnpublishVolume、NodeUnstageVolume、NodeExpandVolume操作

https://static001.geekbang.org/infoq/b0/b0465fbdc95a845a3204e22553205589.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-30

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

https://static001.geekbang.org/infoq/dd/dd89f014bcc9239363b7b4de8422424c.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-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%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-24

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

https://static001.geekbang.org/infoq/af/afa8d5b8386b6f72cbb7f3b10bea60af.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-24

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

https://static001.geekbang.org/infoq/82/8252c02260a57b7a53feb8631e6f40b2.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

kubernetes ceph-csi 分析 - 目录导航

用户头像
良凯尔
2021-04-17

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

https://static001.geekbang.org/infoq/ee/ee19e4ed56c2df79bd072c36fb7498ce.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-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%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-17

external-privisioner组件属于ceph-csi套件中的一个,监听到pvc创建事件,调用ceph-csi组件的CreateVolume方法来创建存储,创建存储成功后,创建pv对象;监听到pv更新事件,调用ceph-csi的DeleteVolume方法来删除存储,并删除pv对象。

https://static001.geekbang.org/infoq/35/35b55f6b75b79a4f376dde9c544ed312.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-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%2Fresize%2Cw_416%2Ch_234

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

用户头像
良凯尔
2021-04-17

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

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

用户头像
silenceper
2020-11-26

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

https://static001.geekbang.org/infoq/e7/e75772714707cfc9d443528e58a83cbc.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

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

用户头像
silenceper
2020-11-26

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

CSI_CSI技术文章_InfoQ写作社区