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

kubernetes ceph-csi分析目录导航

概述

下面的分析是k8s通过ceph-csi(csi plugin)接入ceph存储(csi相关组件的分析以rbd为例进行分析),对csi系统结构、所涉及的k8s对象与组件进行了简单的介绍,以及k8s对存储进行相关操作的流程分析,存储相关操作包括了存储创建、存储扩容、存储挂载、解除存储挂载以及存储删除操作。

csi系统结构

这是一张k8s csi的系统架构图,图中所画的组件以及k8s对象,接下来会一一进行分析。

在这里插入图片描述

csi简介

CSI是Container Storage Interface(容器存储接口)的简写。

CSI的目的是定义行业标准“容器存储接口”,使存储供应商(SP)能够开发一个符合CSI标准的插件并使其可以在多个容器编排(CO)系统中工作。CO包括Cloud Foundry, Kubernetes, Mesos等。

CSI组件一般采用容器化部署,减少了环境依赖。

涉及k8s对象

1. PersistentVolume

持久存储卷,集群级别资源,代表了存储卷资源,记录了该存储卷资源的相关信息。

回收策略

(1)retain:保留策略,当删除PVC的时候,PV与外部存储资源仍然存在。

(2)delete:删除策略,当与pv绑定的pvc被删除的时候,会从k8s集群中删除PV对象,并执行外部存储资源的删除操作。

(3)resycle(已废弃)

pv状态迁移

available --> bound --> released

2. PersistentVolumeClaim

持久存储卷声明,namespace级别资源,代表了用户对于存储卷的使用需求声明。

示例:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test
  namespace: test
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: csi-cephfs-sc
  volumeMode: Filesystem
pvc状态迁移

pending --> bound

3. StorageClass

定义了创建pv的模板信息,集群级别资源,用于动态创建pv。

示例:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: csi-rbd-sc
parameters:
  clusterID: ceph01
  imageFeatures: layering
  imageFormat: "2"
  mounter: rbd
  pool: kubernetes
provisioner: rbd.csi.ceph.com
reclaimPolicy: Delete
volumeBindingMode: Immediate

4. VolumeAttachment

VolumeAttachment 记录了pv的相关挂载信息,如挂载到哪个node节点,由哪个volume plugin来挂载等。

AD Controller 创建一个 VolumeAttachment,而 External-attacher 则通过观察该 VolumeAttachment,根据其状态属性来进行存储的挂载和卸载操作。

示例:

apiVersion: storage.k8s.io/v1
kind: VolumeAttachment
metadata:
  name: csi-123456
spec:
  attacher: cephfs.csi.ceph.com
  nodeName: 192.168.1.10
  source:
    persistentVolumeName: pvc-123456
status:
  attached: true

5. CSINode

CSINode 记录了csi plugin的相关信息(如nodeId、driverName、拓扑信息等)。

当Node Driver Registrar向kubelet注册一个csi plugin后,会创建(或更新)一个CSINode对象,记录csi plugin的相关信息。

示例&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值