首页 > 其他分享 >csi存储

csi存储

时间:2023-06-28 09:03:59浏览次数:60  
标签:存储 PV CSI Plugin 接口 PVC provisioner csi

Container Storage Interface是由来自Kubernetes、Mesos、Docker等社区member联合制定的一个行业标准接口规范,旨在将任意存储系统暴露给容器化应用程序。 CSI规范定义了存储提供商实现CSI兼容的Volume Plugin的最小操作集和部署建议。CSI规范的主要焦点是声明Volume Plugin必须实现的接口。  

一、CSI插件需实现的接口

CSI Plugin开发者要实现三类gRPC服务接口: 实现了此接口的CSI插件,不但可以在k8s中使用,在所有参与了CSI标准制订的Container Orchestration system中都是通用的。  

二、CSI sidecar容器

为了协助存储提供商开发CSI兼容插件,Kubernetes官方提供了一些CSI sidecar容器(对应了从Kubernetes项目里面剥离出来的存储管理功能)
  • external-provisioner(csi-provisioner)

在启动时通过--provisioner指定自身provisioner名称,与StorageClass中的provisioner字段对应。 (1)watch PVC对象,判断PVC是否需要动态创建存储卷,标准如下: ①PVC的annotation[volume.beta.kubernetes.io/storage-provisioner](由PV Controller创建)是否与自己的provisioner名称相等。 ②PVC对应StorageClass的VolumeBindingMode若为Immediate,则表示需要立即提供动态存储卷。 此时调用CSI Plugin的CreateVolume接口,同时创建名为${Provisioner指定的PV前缀}-${PVC uuid}的PV (2)watch PV对象,判断其是否需要删除,标准如下: ①判断其.status.phase是否为Release。 ②判断其.spec.PersistentVolumeReclaimPolicy是否为Delete。 ③判断其annotation[pv.kubernetes.io/provisioned-by]是否与自己的provisioner名称相等。 若需要,则调用CSI Plugin的DeleteVolume接口,同时删除PV对象
  • external-attacher(csi-attacher)

(1)watch VolumeAttachment对象,获得PV的所有信息,如volume ID、node ID等。根据VolumeAttachment的DeletionTimestamp和.status.attached来判断是调用CSI Plugin的ControllerPublish做attach,还是调用CntrollerUnpublish接口做detach (2)在attacher时为相关PV打上Finalizer;当PV处于删除状态(DeletionTimestamp非空)时,删除Finalizer
  • external-snapshotter

(1)watch VolumeSnapshot对象,根据其状态调用CSI Plugin的CreateSnapshot接口 等存储快照生成后,它会将存储快照生成的相关信息放到VolumeSnapshotContent对象中,并和用户提交的VolumeSnapshot做bound (2)当VolumeSnapsho处于删除状态(DeletionTimestamp非空)时,调用CSI Plugin的DeleteSnapshot接口
  • external-resizer

watch PVC对象,判断用户在PVC中是否增加了需求的存储空间。如果PVC状态是Bound且.status.Capacity与.spec.Resources.Requests不等,则进行卷扩展: ①更新PVC的.status.Conditions,表明此时处于Resizing状态 ②调用CSI Plugin的ControllerExpandVolume接口,若返回值中NodeExpansionRequired=true(还需要Kubelet中的Volume Manager继续调用CSI Plugin的NodeExpandVolume接口进行扩容),则更新PVC的status.Conditions 为 FileSystemResizePending;否则,更新 PVC的.Status.Conditions为空,且更新PVC的status.Capacity。 ③更新PV的spec.Capacity
  • node-driver-registrar

调用CSI Plugin的接口获取插件信息,通过Kubelet的插件注册机制将CSI Plugin注册到kubelet 
  • livenessprobe

 调用CSI Plugin的Probe接口,同时在/healthz暴露HTTP健康检查探针 

标签:存储,PV,CSI,Plugin,接口,PVC,provisioner,csi
From: https://www.cnblogs.com/xiexun/p/17510421.html

相关文章

  • 【转】【C#】调用链接服务器的存储过程
    XXX.codeDB.dbo.SP_XXXX执行时,存储过程按这个格式如果遇到问题:拒绝了对对象(数据库'codeDB',架构'dbo')的EXECUTE权限。对链接服务器右键-属性-安全性,看到连接使用的用户后,在目标数据库里找到对应数据库-属性-权限-把对应用户在右下角表格里的执行勾......
  • 在 MySQL 中,如果要存储大文本数据,改如何选择
    在MySQL中,如果要存储大文本数据,可以选择以下两种数据类型:TEXT:适用于存储较长的文本数据,最大长度为65,535个字符。LONGTEXT:适用于存储非常大的文本数据,最大长度为4,294,967,295个字符。选择使用哪种类型主要取决于文本数据的大小。如果文本数据的长度不超过65,535个字符......
  • 在 MySQL 中,如果要存储大文本数据,改如何选择
    在MySQL中,如果要存储大文本数据,可以选择以下两种数据类型:TEXT:适用于存储较长的文本数据,最大长度为65,535个字符。LONGTEXT:适用于存储非常大的文本数据,最大长度为4,294,967,295个字符。选择使用哪种类型主要取决于文本数据的大小。如果文本数据的长度不超过65,535个字符,可以使用TE......
  • 在 MySQL 中,如果要存储大文本数据,改如何选择
    在MySQL中,如果要存储大文本数据,可以选择以下两种数据类型:TEXT:适用于存储较长的文本数据,最大长度为65,535个字符。LONGTEXT:适用于存储非常大的文本数据,最大长度为4,294,967,295个字符。选择使用哪种类型主要取决于文本数据的大小。如果文本数据的长度不超过65,535个字符,可以使用TE......
  • 在 MySQL 中,如果要存储大文本数据,改如何选择
    在MySQL中,如果要存储大文本数据,可以选择以下两种数据类型:TEXT:适用于存储较长的文本数据,最大长度为65,535个字符。LONGTEXT:适用于存储非常大的文本数据,最大长度为4,294,967,295个字符。选择使用哪种类型主要取决于文本数据的大小。如果文本数据的长度不超过65,535个字符......
  • PHP 堆 栈 数据段 代码段 存储的理解
    代码段、数据段、堆栈段,这是一个概念堆、栈、全局区、常量区,这是另一个概念函数代码存放在代码段。声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间。栈:基本数据类型局部变量(这两种甚至可以直接认为一块空间叫a,里面存着8)类的引用(指向堆空间段)堆:new出来的......
  • 可利邦联合浪潮信息:以服务器+存储筑基,加速金融隐私计算发展
    引言:隐私计算(PrivacyComputing),已然成为金融领域的热门话题。从反诈、反洗钱,到客户洞察、精准画像、量化建模,随着市场需求和政策法规的双轮驱动,隐私计算在金融行业的应用正快速铺开。在这背后,金融机构需要构建一站式隐私计算平台,让隐私计算新应用与新基座相得益彰。日前,2023年华南......
  • mysql 将数据库所有表的存储引擎修改为InnoDB
    要将现有的MySQL数据库中的所有表设置为InnoDB存储引擎,可以使用以下步骤:运行以下SQL命令,将所有表格的存储引擎设置为InnoDB:SET@DATABASE_NAME=DATABASE();SELECTCONCAT('ALTERTABLE`',table_name,'`ENGINE=InnoDB;')ASsql_statementsFROMinformation_sc......
  • 存储系统文件共享协议(POSIX、NFS、SMB/CIFS、FTP、HTTP)介绍
    当您使用云存储系统,需要将文件共享给客户端时,通常需要通过共享协议来实现。目前比较流行的文件共享协议包括:POSIX、NFS、SMB/CIFS、FTP、HTTP,本文为您介绍这几种协议的基本概念、应用场景、访问方式和优缺点,帮助您选择合适的协议进行文件共享。协议概述典型应用场景访问方......
  • outlook2003存储位置
    默认的保存路径是c:\DocumentsandSettings\你的用户名\LocalSettings\ApplicationData\Microsoft\Outlook,如果想更改位置需要事先建立,如d:\email,然后在关闭outlook的情况下把c:\DocumentsandSettings\你的用户名\LocalSettings\ApplicationData\Microsoft\Outlook里面的......