CSI介绍

简介: CSI 介绍我们知道Kubernetes中关于使用存储卷的机制有In-Tree、Flexvolume模式,那为何还要提出CSI方式呢?In-Tree Volume: 这种方式需要将后端存储的代码逻辑放到K8S的代码中运行,调用引擎与插件间属于强耦合。

CSI 介绍

我们知道Kubernetes中关于使用存储卷的机制有In-Tree、Flexvolume模式,那为何还要提出CSI方式呢?

In-Tree Volume: 这种方式需要将后端存储的代码逻辑放到K8S的代码中运行,调用引擎与插件间属于强耦合。插件的逻辑代码需要K8S负责维护,可能会引起与K8S其他部件之间的相互影响。

Flexvolume: Kubelet通过调用一个主机的可执行程序包的方式执行存储卷的挂载使用。解决了In-Tree方式的强耦合,不过由于Flexvolume作为命令行调用的方式,在主机安全性、部署依赖的容器化、与K8S服务之间的相互扩展性等方面存在不足。
Flexvolume运行在host 空间,不能使用rbac授权机制访问Kubernetes API,导致其功能极大的受限。

CSI: 基于上述模式存在的不足,CSI标准使K8S和存储提供者之间将彻底解耦,将存储的所有的部件作为容器形式运行在K8S上。

在FlexVolume中Kubelet通过使用操作系统CLI实现调用Driver接口,而CSI采用的是grpc方式,grpc调用的一个优势就是可以将grpc服务运行在socket上,这样服务端就可以运行在socket端点的任何地方,即可以运行在容器里。另外CSI接口使用同步方式进行调用,保证了存储插件实现的简单性。

从平台支持上,CSI不仅仅支持Kubernetes平台存储插件接口,而是作为云原生生态中容器存储接口的标准,Mesos、CloudFoundry、Swarm等平台也同时支持CSI。

下图给出了CSI接口在云原生应用中的位置。

image

我们回顾一下CSI版本发布历程:

image

从2017年初发展到今天,CSI用了2了两年的时间发布了自己的稳定版本,且K8S对CSI的支持也进入到GA阶段。

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
文件存储 Android开发 iOS开发
DIY nas 之照片备份工具
Immich是一个开源解决方案,主要用于直接从iPhone、Android手机上备份照片与视频。用户可以将Immich部署到自己的电脑、NAS或服务器中,并通过App进行备份
985 2
|
Ubuntu 关系型数据库 数据库
百度搜索:蓝易云【Ubuntu系统安装 PostgreSQL详细教程。】
现在,你已经成功在Ubuntu系统上安装了PostgreSQL,并创建了一个新的数据库和用户。你可以使用所创建的用户凭据连接到数据库并开始使用。记得根据你的具体需求进行进一步的配置和安全性调整。
450 2
|
网络架构 Docker 容器
Docker容器动态添加端口
Docker容器动态添加端口
511 0
|
网络安全
应用开发通过nfs来mount失败解决办法mount.nfs: Connection timed out
应用开发通过nfs来mount失败解决办法mount.nfs: Connection timed out
2668 0
|
存储 Dragonfly 缓存
Nydus:开源的下一代容器镜像加速服务
让更多的容器用户能够体验到容器快速启动和安全加载方面的能力。
8195 0
Nydus:开源的下一代容器镜像加速服务
|
网络协议 Ubuntu 网络安全
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
391 2
|
监控 测试技术 持续交付
自动化测试在移动应用开发中的实践
【7月更文挑战第7天】自动化测试在移动应用开发过程中具有重要的作用。通过实施自动化测试,可以提高测试效率、保证测试质量、支持持续集成/持续部署等。然而,在实施自动化测试的过程中也会面临一些挑战,如设备兼容性、测试数据准备和维护成本等。为了克服这些挑战,我们需要采用合适的技术和策略,不断优化和完善自动化测试流程。
|
网络协议 算法 网络虚拟化
|
Kubernetes API 调度
Container Runtime CDI与NRI介绍
CDI介绍什么是CDICDI(Container Device Interface)是Container Runtimes支持挂载第三方设备(比如:GPU、FPGA等)机制。它引入了设备作为资源的抽象概念,这类设备由一个完全限定的名称唯一指定,该名称由设备商ID,设备类别与一个设备类别下的一个唯一名称组成,格式如下:vendor.com/class=unique_name设备商ID和设备类型(ve
6742 1
Container Runtime CDI与NRI介绍