CSI
0 人感兴趣 · 25 次引用
- 最新
- 推荐

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

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

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

external-attacher 源码分析 (1)-main 方法与启动参数分析
ceph-csi分析-external-attacher分析。external-attacher属于external plugin中的一个,辅助csi plugin,共同完成了存储相关操作。external-attacher watch volumeAttachment对象,调用csi plugin做attach/dettach操作,修改volumeAttachment对象与pv对象。

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

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

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

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

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

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

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

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

ceph-csi 源码分析(6)-rbd driver-nodeserver 分析(下)
kubernetes ceph-csi分析 - 目录导航。这节进行NodeStageVolume(map rbd与mount stagingPath)、NodePublishVolume(mount targetPath)、NodeUnpublishVolume(umount targetPath)、NodeUnstageVolume(umount stagingPath与unmap rbd)的分析。

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

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

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

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

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

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

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

external-provisioner 源码分析(2)-main 方法与 Leader 选举分析
external-privisioner组件属于ceph-csi套件中的一个,监听到pvc创建事件,调用ceph-csi组件的CreateVolume方法来创建存储,创建存储成功后,创建pv对象;监听到pv更新事件,调用ceph-csi的DeleteVolume方法来删除存储,并删除pv对象。

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

k8s 通过 ceph-csi 接入存储的概要分析
ceph-csi分析,通过ceph-csi让k8s接入ceph存储,对所涉及的k8s对象与组件进行了简单的介绍,以及k8s对存储进行相关操作的流程分析,存储相关操作包括了存储创建、存储扩容、存储挂载、解除存储挂载以及存储删除操作。
K8S CSI 容器存储接口 (二):如何编写一个 CSI 插件
这里以csi-driver-host-path作为例子,来看看是如何实现一个csi插件的?

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