一种基于GlusterFS的存储插件方法和系统与流程

文档序号:34948268发布日期:2023-07-29 07:03阅读:44来源:国知局
一种基于GlusterFS的存储插件方法和系统与流程

本发明涉及kubernetes存储领域,具体涉及一种基于glusterfs的存储插件方法和系统。


背景技术:

1、glusterfs (gluster file system) 是一个开源的分布式文件系统,具有强大的横向扩展能力,能够通过扩展能够支持数pb存储容量和处理数千客户端。glusterfs借助网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。其基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。

2、kubernetes,通常简称为k8s, 是一个容器编排(container orchestration)平台。它构建于docker、container等容器运行环境之上,用于管理容器化的工作负载和服务。k8s容器编排系统已经成为容器云平台的事实标准,越来越多的用户将应用部署 在k8s集群中,通常这些应用是需要持久化保存数据,但是k8s自带的存储插件却无法满足多样化应用的存储需求场景。

3、随着kubernetes的普及和发展,越来越多的应用和中间件使用kubernetes来部署和运维。当传统使用glusterfs的应用迁移至云上时,无法便捷地进行存储资源的使用。kubernetes原生的glusterfs插件为flexvolume实现,无法解决存储卷的动态分配,并且需要在宿主机安装glusterfs客户端,会存在兼容性等问题。


技术实现思路

1、为克服现有技术的不足,本发明提出一种基于glusterfs的存储插件方法和系统,可以实现glusterfs存储卷的动态分配和挂载使用,无需人工干预。这一点可以大大提高开发人员的工作效率,减少手动操作的出错风险。

2、为实现上述目的,

3、本发明提供了一种基于glusterfs的存储插件方法,该方法包括以下步骤:

4、步骤s1:创建glusterfs集群并在集群节点上安装代理服务,glusterfs集群配置信息以configmap的形式在kubernetes集群中创建;

5、步骤s2:创建glusterfs存储类的storageclass,配置存储类对应的glusterfs集群和卷使用的挂载目录信息;

6、步骤s3:接收应用存储分配请求,通过请求携带的sotrageclassname使用csi插件完成glusterfs存储卷的动态供应。

7、进一步地,步骤s1中glusterfs的集群配置信息包括:自定义全局唯一集群名称、日志文件目录、集群节点ip地址以及集群对应的多组可供glusterfs卷使用的挂载目录信息。

8、进一步地,还包括:接收存储扩容请求,其中,所述存储扩容请求包含待扩容glusterfs卷标识和扩容后大小。

9、进一步地,还包括:接收存储删除请求,其中,所述存储删除请求包含待删除glusterfs卷标识。

10、进一步地,步骤s1具体如下;

11、步骤s11:创建命名空间gluster:kubectl create namespace gluster;

12、步骤s12:将configmap声明文件保存为gluster-config.yaml文件;

13、步骤s13:执行kubectl apply -f gluster-config.yaml -n gluster命令,创建configmap资源。

14、进一步地,步骤s3具体如下,

15、步骤s31:开发者提交pvc,指定glusterfs卷大小和storageclass;

16、步骤s32:开发者提交pod,指定使用的pvc;

17、步骤s33:csi controller plugin接收到pvc创建事件,通过uds调用grpccontroller service的createvolume接口创建glusterfs卷;

18、步骤s34:kubelet watch到pod时,通过uds调用csi插件的nodestagevolume函数,实现glusterfs卷的bind挂载并映射到pod中。

19、进一步地,所述 controller plugin以deploymnet的方式部署,负责对接glusterfs集群节点上的代理服务实现glusterfs存储卷供应。

20、进一步地,所述node plugin以daemonset的方式部署,负责将glusterfs存储卷挂载到全局目录并映射到容器中。

21、一种基于glusterfs的存储插件系统,应用于所述的一种基于glusterfs的存储插件方法,包括glusterfs集群模块、kubernetes集群模块、csi driver模块、存储模块和应用程序模块;

22、所述glusterfs集群模块用于创建并维护一个glusterfs集群,将多个存储节点组合在一起提供一个统一的文件系统;

23、所述kubernetes集群模块用于管理kubernetes集群中的容器;

24、所述csi driver模块用于提供kubernetes和glusterfs之间的接口;

25、所述存储模块用于定义一组存储属性;

26、所述应用程序模块用于创建kubernetes pod,并在pod中使用存储卷来存储应用程序数据。

27、进一步地,所述存储模块使用kubernetes的storageclass对象来定义存储类,并指定使用的glusterfs集群和卷使用的挂载目录信息。

28、与现有技术相比,本发明的有益效果为:

29、1.本发明提供的一种基于glusterfs的存储插件方法和系统,可以实现glusterfs存储卷的动态分配和挂载使用,无需人工干预。这一点可以大大提高开发人员的工作效率,减少手动操作的出错风险;

30、2.本发明提供的一种基于glusterfs的存储插件方法和系统,相比于kubernetes内置的glusterfs插件,本发明不需要在宿主机安装glusterfs客户端等依赖环境,更加简单易用。这一点可以降低运维难度和成本,同时也能够提高开发人员的工作效率和体验;

31、3.本发明提供的一种基于glusterfs的存储插件方法和系统,支持多种存储类型,包括普通硬盘、ssd、分布式存储等,能够满足不同场景的存储需求;

32、4.本发明提供的一种基于glusterfs的存储插件方法和系统,采用glusterfs分布式存储方案,具有高可用性和容错能力,能够保证数据的可靠性和稳定性;

33、5.本发明提供的一种基于glusterfs的存储插件方法和系统,采用rbac权限控制机制,能够对访问存储卷的用户和应用程序进行精确控制,保证存储数据的安全性和保密性;

34、6.本发明提供的一种基于glusterfs的存储插件方法和系统,支持水平和垂直扩展,能够满足不同规模的存储需求,具有很好的可扩展性;

35、7.本发明提供的一种基于glusterfs的存储插件方法和系统,与kubernetes生态系统完全兼容,可以无缝集成到kubernetes集群中,与其他组件协同工作,具有很好的兼容性和互操作性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1