一种基于集群内磁盘类型动态供应本地卷的方法技术

技术编号:36811509 阅读:13 留言:0更新日期:2023-03-09 00:47
本发明专利技术公开了一种基于集群内磁盘类型动态供应本地卷的方法,涉及计算机技术领域,利用存储管理系统和CSI插件对Kubernetes集群内磁盘进行管理;所述存储管理系统负责维护Kubernetes集群中节点的本地存储资源;所述CSI插件提供存储管理系统与容器编排系统CO的交互渠道。本发明专利技术实现了集群内基于磁盘类型的存储资源统一管理,提供了相比现有技术更精细的本地存储空间的管理方式,避免了人为分配的冲突风险,且使用时无需侵入Kubernetes并具备可拓展性。可拓展性。可拓展性。

【技术实现步骤摘要】
一种基于集群内磁盘类型动态供应本地卷的方法


[0001]本专利技术涉及计算机
,更具体地说,涉及一种基于集群内磁盘类型动态供应本地卷的方法。

技术介绍

[0002]Kubernetes,可将底层CPU、内存、网络资源统一管理,并根据应用开发者的声明统一的分配和设置。Pod,是Kubernetes最小的调度单元,里面装载的是一个或多个容器,容器可能会挂载(mount)一个或多个持久卷。PVC,Persistent Volume Claim描述的是Pod对持久卷的声明。PV,Persistent Voume描述的是SP(Storage Provider)提供的持久卷。
[0003]CSI,是一个容器存储接口的行业标准,旨在使SP开发一个插件并让它在容器编排CO系统(例如Kubernetes)和存储服务之间工作,为容器编排系统提供存储卷。
[0004]随着Kubernetes的普及和发展,越来越多的应用和中间件使用Kubernetes来部署和运维。在一些应用场景中,例如数据库,它们对存储卷的读写性能要求比较高。因此,对比同等存储介质下但有网络性能损耗的分布式存储系统(例如Ceph)技术团队通常优先采用本地卷。然而,一方面Kubernetes原生提供的Local PV、hostPath等本地卷有诸多的痛点,例如原生方案不能动态供应,底层的存储介质全靠人为识别和分配,当使用规模变大时人为维护的工作量将激增。另一方面,社区提供的开源方案(例如OpenEBS),虽然解决了Kubernetes原生方案的动态供应的问题,但有没有解决统一分配的问题,又或者非CSI实现。
[0005]以使用Kubernetes原生的本地卷为例,应用开发者会遇到如下问题:
[0006]1、资源管理不统一,集群内同一磁盘类型的本地存储空间并非作为一个统一的资源池进行分配和管理,这样就存在一些潜在的风险。例如多人同时使用一台节点机上的本地卷,可能因为彼此之间沟通不到位导致他们申请的容量之和超过节点机上该磁盘类型的存储容量,而这一点Kubernetes原生方案是不保障的;
[0007]2、人工干预多,用户使用时需先识别有多少节点机,节点机有什么类型的磁盘,磁盘类型有多少可用容量,然后登陆节点机cd到对应磁盘类型的目录下,完成子目录的创建等工作,接着再编写PV提交到APIServer,最终由Kubernetes完成与VPC的绑定。整个流程非常之低效且易出错,还有安全问题。而且,随着应用规模逐步扩大,人为维护的工作量将激增,不是应用开发者或者运维人员能够承担的。

技术实现思路

[0008]本专利技术要解决的技术问题是提供一种基于集群内磁盘类型动态供应本地卷的方法,尝试通过CSI实现一套本地卷方案,解决Kubernetes集群内基于磁盘类型维度统一分配、动态供应的问题。
[0009]为了达到上述目的,本专利技术采取以下技术方案:
[0010]一种基于集群内磁盘类型动态供应本地卷的方法,利用存储管理系统和CSI插件
对Kubernetes集群内磁盘进行管理;
[0011]所述存储管理系统负责维护Kubernetes集群中节点的本地存储资源;
[0012]所述CSI插件提供存储管理系统与容器编排系统CO的交互渠道。
[0013]优选的,所述存储管理系统维护Kubernetes集群中节点的本地存储资源包括:识别节点中有哪些类型的磁盘。
[0014]优选的,所述存储管理系统维护Kubernetes集群中节点的本地存储资源还包括:组织磁盘类型的拓扑关系,所述拓扑关系描述Kubernetes集群中不同类型的磁盘可以在哪些节点机上供应。
[0015]优选的,所述存储管理系统还负责本地存储资源的统一分配。
[0016]优选的,所述容器编排系统CO包括Kubernetes。
[0017]优选的,所述CSI插件包含Controller Plugin和Node Plugin两部分。
[0018]优选的,所述Controller Plugin负责对接存储管理系统及统一分配本地存储资源。
[0019]优选的,所述Controller Plugin以Deploymnet的方式部署。
[0020]优选的,所述Node Plugin负责将本地存储资源以本地卷的方式挂载到Pod中。
[0021]优选的,所述Node Plugin以DaemonSet的方式部署。
[0022]本专利技术相对于现有技术的优点在于:
[0023]1、实现了集群内基于磁盘类型的存储资源统一管理,提供了更精细的本地存储空间的管理方式,也避免人为分配的冲突风险;
[0024]2、通过CSI的方式对接存储管理系统和Kubernetes,无需侵入Kubernetes;
[0025]3、具有可扩展的特性,基于本专利技术的设计,可以方便地实现卷读IOPS限制、写IOPS限制等能力。
附图说明
[0026]图1是本专利技术方法总体架构;
[0027]图2是本专利技术方法使用的流程。
具体实施方式
[0028]下面结合附图对本专利技术的具体实施方式作描述。
[0029]如图1至图2所示,本专利技术技术方案核心包括存储管理系统和CSI插件两部分。存储管理系统负责维护Kubernetes集群中节点的本地存储资源,包括识别节点中有哪些类型的磁盘,组织磁盘类型的拓扑关系。拓扑关系描述的是Kubernetes集群中不同类型的磁盘可以在哪些节点机上供应。此外,存储系统还负责本地存储资源的统一分配。CSI插件提供了存储管理系统与容器编排系统CO的交互渠道,而Kubernetes属于CO中的一种。本专利技术的CSI插件包含Controller Plugin和Node Plugin两部分。Controller Plugin,以Deploymnet的方式部署,负责对接存储管理系统,统一分配本地存储资源。Node Plugin,以DaemonSet的方式部署,负责将本地存储资源以本地卷的方式挂载到Pod中。
[0030]以下是核心部分的实现细节和步骤:
[0031]1.存储管理系统,与CSI的Controller Plugin运行在同一个组件中,有如下关键
的内容:
[0032]a.部署Kubernetes集群节点时管理员需设置Node label,label key为拓扑key(前缀为toplogy.local.csi.xxx.com/),表示磁盘类型,label value为容量。例如“toplogy.local.csi.xxx.com/sata

zone:100Gi”、“toplogy.local.csi.xxx.com/ssd

zone:100Gi”等;
[0033]b.计算总容量,存储管理系统通过list&watch APIServer的Node收集这类label,组织成节点、磁盘本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于集群内磁盘类型动态供应本地卷的方法,其特征在于,利用存储管理系统和CSI插件对Kubernetes集群内磁盘进行管理;所述存储管理系统负责维护Kubernetes集群中节点的本地存储资源;所述CSI插件提供存储管理系统与容器编排系统CO的交互渠道。2.根据权利要求1所述基于集群内磁盘类型动态供应本地卷的方法,其特征在于,所述存储管理系统维护Kubernetes集群中节点的本地存储资源包括:识别节点中有哪些类型的磁盘。3.根据权利要求2所述基于集群内磁盘类型动态供应本地卷的方法,其特征在于,所述存储管理系统维护Kubernetes集群中节点的本地存储资源还包括:组织磁盘类型的拓扑关系,所述拓扑关系描述Kubernetes集群中不同类型的磁盘可以在哪些节点机上供应。4.根据权利要求1或3所述基于集群内磁盘类型动态供应本地卷的方法,其特征在于,所述存储管理系统还负责本地存储资源的统一分配。5.根据权利要求1所述基于集群内磁...

【专利技术属性】
技术研发人员:陈进蔡岳阳
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1