CN114816272B - Kubernetes环境下的磁盘管理系统 - Google Patents
Kubernetes环境下的磁盘管理系统 Download PDFInfo
- Publication number
- CN114816272B CN114816272B CN202210717202.2A CN202210717202A CN114816272B CN 114816272 B CN114816272 B CN 114816272B CN 202210717202 A CN202210717202 A CN 202210717202A CN 114816272 B CN114816272 B CN 114816272B
- Authority
- CN
- China
- Prior art keywords
- disk
- node
- capacity
- pvc
- logicvolume
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种Kubernetes环境下的磁盘管理系统,属于云计算技术领域,其包括调度器将创建的容器与节点绑定;控制器模块监听PVC创建、PVC与csi‑driver一致选出符合条件的磁盘组信息,创建LogicVolume对象;节点模块检查本地磁盘是否满足条件并开始创建磁盘分区;控制器模块监听PVC更新、PVC与csi‑driver一致更新LogicVolume对象;节点模块检查本地磁盘是否满足条件并开始更新磁盘分区容量并扩容文件系统;控制器模块监听PVC删除、PVC与csi‑driver一致删除LogicVolume对象;节点模块卸载本地对应的磁盘并清理分区。
Description
技术领域
本申请涉及一种Kubernetes环境下的磁盘管理系统,属于云计算技术领域。
背景技术
Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。Kubernetes只要提供一个标准的接口,就能为同样满足该协议的所有容器平台提供网络功能。
目前Kubernetes环境下提供持久化存储支持的大多数都是网络存储。然而,网络存储在性能上较本地存储有一些不足,对中间件数据库这种业务无法满足性能要求。
发明内容
本申请提供了一种Kubernetes环境下的磁盘管理系统,可以解决用户在Kubernetes环境下管理本地磁盘分区能力不足的问题,用户无需自己创建分区,扩容分区以及删除分区。同时,为高性能业务场景提供了直接使用裸盘的功能。本申请提供如下技术方案:提供一种Kubernetes环境下的磁盘管理系统,所述系统包括:
调度器,用于在Kubernetes集群中创建PVC和部署物后,发现新创建的所述部署物以及所述PVC申请的磁盘容量空间大小,并进行调度分配节点;将创建的容器与所述节点绑定,为所述PVC增加注解和节点选择标签;
控制器模块,用于监听所述PVC创建,并在发现所述PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,以过滤不符合容量的磁盘和独占磁盘,并选出符合条件的磁盘组信息,创建LogicVolume对象;
节点模块,用于监听所述LogicVolume对象的创建事件后,检查本地磁盘是否满足条件并开始创建磁盘分区;所述节点模块具体用于根据所述LogicVolume对象开始在磁盘上创建分区,并且将所述分区挂载到容器内部;
所述控制器模块,还用于监听所述PVC更新,并在发现所述PVC与csi-driver一致的情况下,检查节点本地磁盘是否是独占磁盘,过滤独占磁盘后,更新所述LogicVolume对象;
所述节点模块,还用于监听所述LogicVolume对象的更新事件后,检查本地磁盘是否满足条件并开始更新磁盘分区容量并扩容文件系统;
所述控制器模块,还用于监听所述PVC删除,并在发现所述PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,删除所述LogicVolume对象;
所述节点模块,还用于监听所述LogicVolume对象的删除事件后,卸载本地对应的磁盘并清理分区。
可选地,所述系统在程序部署完成后,根据配置参数检查本地磁盘,将满足条件的磁盘纳管进来;并在所述Kubernetes集群中创建对应每个节点信息的资源对象来显示本地磁盘组容量和可用容量,以及对应得磁盘信息和分区信息。
可选地,所述调度器,用于在节点对应的资源对象创建后,开始创建申请存储资源请求;创建容器使用申请的存储资源对象,在所述Kubernetes集群中创建完容器后,根据所述资源对象过滤不符合要求的节点,找出满足的节点与所述容器进行绑定。
可选地,所述调度器根据参数配置包括两种模式,分别为:等待消费才调度和立即调度。
可选地,所述控制器模块,用于:
在完成节点调度后,根据用户配置参数确定需要筛选的卷组;
在确定出使用裸盘raw提供存储的情况下,在对应节点上按照磁盘实际容量和是否是独占磁盘进行筛选过滤;所述独占磁盘是只有一个容器使用的磁盘,且所述独占磁盘不与其他容器分享整块磁盘的容量;
在是独占磁盘的情况下,过滤有分区的磁盘,过滤非用户选择的磁盘,筛选出多块满足的磁盘里选择最小满足的磁盘;创建所述LogicVolume对象来记录磁盘信息;
在不是独占磁盘的情况下,筛选用户选择的磁盘组里的可用资空间大于请求资源的空盘和有分区磁盘;根据容量满足选择最小匹配的磁盘并创建LogicVolume对象来记录磁盘信息。
可选地,所述控制器模块,用于如果获取到扩容资源申请,对扩容行为进行甄别;以确定是否是独占磁盘;
所述节点模块,用于在是独占磁盘的情况下,开始扩容分区对现有挂载卷卸载,扩容成功后在挂载然后对文件系统扩容。
可选地,其特征在于,所述控制器模块,用于如果获取到删除资源申请,则对挂载分区卷卸载,并且删除对应的所述LogicVolume对象;
所述节点模块,用于通过定时协调程序清理分区。
本申请的有益效果至少包括:通过调度器在Kubernetes集群中创建PVC和部署物后,发现新创建的部署物以及PVC申请的磁盘容量空间大小,并进行调度分配节点;将创建的容器与节点绑定,为PVC增加注解和节点选择标签;控制器模块监听PVC创建,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,以过滤不符合容量的磁盘和独占磁盘,并选出符合条件的磁盘组信息,创建LogicVolume对象;节点模块监听LogicVolume对象的创建事件后,检查本地磁盘是否满足条件并开始创建磁盘分区;控制器模块监听PVC更新,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘是否是独占磁盘,过滤独占磁盘后,更新LogicVolume对象;节点模块监听LogicVolume对象的更新事件后,检查本地磁盘是否满足条件并开始更新磁盘分区容量并扩容文件系统;控制器模块监听PVC删除,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,删除LogicVolume对象;节点模块监听LogicVolume对象的删除事件后,卸载本地对应的磁盘并清理分区;可以解决网络存储对中间件数据库无法满足性能要求的问题;可以使用管理本地磁盘,并基于本地磁盘分区直接挂载到容器中使用,为中间件数据库业务和对磁盘读写密集型的业务提供了稳定可靠的保障。同时,可以解决用户在Kubernetes环境下管理本地磁盘分区的能力不足的问题,用户无需自己创建分区,扩容分区以及删除分区。同时,为高性能业务场景提供了直接使用裸盘的功能。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请一个实施例提供的Kubernetes环境下的磁盘管理系统的结构示意图;
图2A是本申请一个实施例提供的Kubernetes环境下的创建卷的流程图;
图2B是本申请一个实施例提供的Kubernetes环境下的磁盘创建的流程图;
图2C是本申请一个实施例提供的Kubernetes环境下的磁盘更新的流程图;
图2D是本申请一个实施例提供的Kubernetes环境下的磁盘删除的流程图;
图3是本申请一个实施例提供的磁盘分区选择流程;
图4是本申请另一个实施例提供的磁盘分区选择流程。
具体实施方式
下面结合附图和实施例,对本申请的具体实施方式做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
首先,对于本申请涉及的若干名词进行介绍。
容器调度服务(Kubernetes):简称K8s,是用8代替名字中间的8个字符“Kubernete”而成的缩写。Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用程序的多个实例以便对应用请求进行负载均衡。在Kubernetes中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问。
Kubernetes是负责管理及调度容器服务。目前云计算领域进行容器调度及管理的事实标准调度器(Scheduler)是Kubernetes的一个组件,主要负责进行Pod的调度。
Kubelet:Kubernetes的核心组件,是Kubernetes工作节点上的一个代理组件,运行在每个节点上。Kubelet定期从kube-apiserver组件接收新的或修改的Pod规范,并确保Pod及其容器在期望规范下运行。同时该组件作为工作节点的监控组件,向kube-apiserver汇报主机的运行状况。换言之,Kubelet负责每个节点的运行状态(即确保节点上的所有容器都正常运行)。它按照控制面板的指示来处理启动,停止和维护应用程序容器Pod。
其中,kube-apiserver组件提供了k8s各类资源对象(容器集(Pod)、复制控制器(Replication Controller,RC)、服务(Service)等)的增删改查及监控(watch)等HTTPRest接口,是整个系统的数据总线和数据中心。
容器集(Pod):是Kubernetes管理的最小单元,多个容器组合在一起叫做Pod。
存储卷(Volume):容器在服务器中是无状态的,需要挂载存储卷将数据保存到本地磁盘。
Configmap:是一种API对象,用来将非机密性的数据保存到键值对中。
DaemonSet:是一种API对象,确保全部(或者某些)节点上运行一个Pod的副本。
Carina(carina):在Kubernetes集群中为Pod提供存储卷的项目。
逻辑卷管理(Logical Volume Manager,LVM):是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
磁盘:是计算机上的存储介质。
Raw:用于区别于LVM方式,使用物理磁盘分区直接存储的类型定义。
分区:将一个磁盘逻辑分为几个区,每个区当作独立硬盘使用,以方便管理节点:组成Kubernetes集群的物理主机。
逻辑卷(LogicVolume):在Kubernetes环境中自定义的一种资源对象,用来记录申请的存储资源信息。
NodeStorageResource:在Kubernetes环境中自定义的一种资源对象,用来记录节点磁盘信息。
csi-driver:一种在Kubernetes环境中容器存储接口(Container StorageInterface,CSI)插件的资源对象,用来实现自定义插件。
控制器模块:程序中应用程序控制服务。
节点模块:运行在每个节点上的应用程序的服务。
部署物(Deployment):是一种Pod控制器(有很多种控制器),是一种无状态服务(可以部署web微服务),具有上线部署,滚动升级、创建副本、回滚到以前某一版本(成功/稳定)等功能。
PersistentVolume(PV):在Kubernetes中创建的存储卷信息。对底层网络共享存储的抽象,将共享存储定义为一种资源。PV是集群中由管理员配置的一段网络存储。它是集群中的资源,就像节点是集群资源一样。PV是容量插件,如Volumes,但其生命周期独立于使用PV的任何单个Pod。此API对象捕获存储实现的详细信息,包括网络文件系统(NetworkFile System,NFS),Internet小型计算机系统接口(Internet Small Computer SystemInterface,iSCSI)或特定于云提供程序的存储系统。
PersistentVolumeClaim(PVC):在Kubernetes中创建存储卷,需要创建PVC资源申请。是由用户进行存储的请求。它类似于Pod。Pod消耗节点资源,PVC消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以一次读/写或多次只读)。
StorageClass:用于标记存储资源的特性和性能。StorageClass为管理员提供了一种描述他们提供的存储的“类”的方法。不同的类可能映射到服务质量级别,或备份策略,或者由群集管理员确定的任意策略。Kubernetes本身对于什么类别代表是不言而喻的。这个概念有时在其他存储系统中称为“配置文件”。
图1是本申请一个实施例提供的Kubernetes环境下的磁盘管理系统的结构示意图,该系统包括:调度器110、控制器模块120和节点模块130。
Kubernetes系统在程序部署完成后,根据配置参数检查本地磁盘,将满足条件的磁盘纳管进来;并在Kubernetes集群中创建对应每个节点信息的资源对象(具体为nodestorageresource(自定义资源对象))来显示本地磁盘组容量和可用容量,以及对应的磁盘信息和分区信息。在纳管磁盘时,用户可以配置各个卷组的类型,即该卷组是使用LVM容量还是裸盘分区容量。
本申请中,在Kubernetes集群中,先创建一个PVC来申请磁盘容量空间(如申请10G的磁盘容量空间,具体的空间大小可根据实际使用需求增大或缩小,本实施例不对存储空间的大小作限定),创建一个部署物(Deployment)。
其中,在创建deployment时,首先会先创建它对应的Pod,用户输入的脚本会通过Kubernetes的命令行工具中的kubectl发送到Kubernetes的api-server,然后将脚本存储进etcd中,再通过调度器110选择合适的node节点进行Pod的部署。scheduler选择好合适的node之后,将调度的节点信息再通过api-server保存到etcd中,最后node上的kubelet根据脚本进行Pod的容器启动,完成创建启动一个deployment的过程。
具体地,调度器110用于在Kubernetes集群中创建PVC和部署物后,发现新创建的部署物以及PVC申请的磁盘容量空间大小,并进行调度分配节点;将创建的容器与节点绑定,为PVC增加注解和节点选择标签。
具体地,调度器用于在节点对应的资源对象创建后,开始创建申请存储资源请求;创建容器使用申请的存储资源对象,在Kubernetes集群中创建完容器后,根据资源对象过滤不符合要求的节点,找出满足的节点与容器进行绑定。
具体地,参考图2A,调度器根据资源对象过滤不符合要求的节点,包括:根据类型判断使用LVM容量还是裸盘分区容量;若使用裸盘分区容量则获取裸盘存储容量信息;过滤不符合存储容量要求和独占磁盘的节点;给过滤后的节点评分;对评分结果应用用户评分策略。相应地,节点模块用于:查找节点磁盘;检查分区和磁盘剩余容量,并根据检查结果更新磁盘信息。
其中,用户期望使用的卷组可以通过StorageClass对象配置,每个卷组是使用LVM容量还是使用裸盘分区容量在纳管磁盘时由用户配置得到,基于此,用户期望使用的卷组的类型可以从预先配置的磁盘信息中得到。
之后,调度器向Pod返回调度结果,并为PVC增加注解和节点选择标签。
其中,调度器在调度节点时根据参数配置包括两种模式,分别为:等待消费才调度和立即调度。
其中,立即调度是指调度器立即调用PV创建逻辑,无需等待Pod调度。具体地,立即调度参考图3所示的调度过程,调度器在创建PVC后立即调用PV创建逻辑。
等待消费才调度是指等待Pod调度到Node成功后再进行PV创建。具体地,等待消费才调度参考图4所示的调度过程,调度器在Pod调度到Node成功后调用PV创建逻辑。
参考图2A,控制器模块,用于监听PVC创建,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,以过滤不符合容量的磁盘和独占磁盘,并选出符合条件的磁盘组信息,创建LogicVolume对象。
参考图2B,节点模块,用于监听LogicVolume对象的创建事件后,检查本地磁盘是否满足条件并开始创建磁盘分区。
具体地,控制器模块在完成节点调度后(即容器和申请的资源请求有了节点信息后),根据用户配置参数确定需要筛选的卷组;在确定出使用裸盘raw提供存储的情况下,在对应节点上按照磁盘实际容量和是否是独占磁盘进行筛选过滤;独占磁盘是只有一个容器使用的磁盘,且独占磁盘不与其他容器分享整块磁盘的容量;在是独占磁盘的情况下,过滤有分区的磁盘,过滤非用户选择的磁盘,筛选出多块满足的磁盘里选择最小满足的磁盘;创建LogicVolume对象(自定义资源对象)来记录磁盘信息;在不是独占磁盘的情况下,筛选用户选择的磁盘组里的可用资空间大于请求资源的空盘和有分区磁盘;根据容量满足选择最小匹配的磁盘并创建LogicVolume对象来记录磁盘信息。
相应地,节点模块用于根据LogicVolume对象开始在磁盘上创建分区,并且将分区挂载到容器内部。
具体地,节点模块获取分区设备号,挂载卷到对应分区设备号对应的分区设备地址。
参考图2C,控制器模块,还用于监听PVC更新,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘是否是独占磁盘,过滤独占磁盘后,更新LogicVolume对象。
节点模块,还用于监听LogicVolume对象的更新事件后,检查本地磁盘是否满足条件并开始更新磁盘分区容量并扩容文件系统。
具体地,控制器模块如果获取到扩容资源申请(即监听到PVC扩容事件),对扩容行为进行甄别;以确定是否是独占磁盘。
相应地,节点模块在是独占磁盘的情况下,开始扩容分区对现有挂载卷卸载,扩容成功后在挂载然后对文件系统扩容。
参考图2D,控制器模块还用于监听PVC删除事件,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,删除LogicVolume对象。
节点模块,还用于监听LogicVolume对象的删除事件后,卸载本地对应的磁盘并清理分区。
具体地,控制器模块,用于如果获取到删除资源申请,则对挂载分区卷卸载,并且删除对应的LogicVolume对象。
相应地,节点模块,用于通过定时协调程序清理分区。
综上所述,本实施例提供的Kubernetes环境下的磁盘管理系统,通过调度器在Kubernetes集群中创建PVC和部署物后,发现新创建的部署物以及PVC申请的磁盘容量空间大小,并进行调度分配节点;将创建的容器与节点绑定,为PVC增加注解和节点选择标签;控制器模块监听PVC创建,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,以过滤不符合容量的磁盘和独占磁盘,并选出符合条件的磁盘组信息,创建LogicVolume对象;节点模块监听LogicVolume对象的创建事件后,检查本地磁盘是否满足条件并开始创建磁盘分区;控制器模块监听PVC更新,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘是否是独占磁盘,过滤独占磁盘后,更新LogicVolume对象;节点模块监听LogicVolume对象的更新事件后,检查本地磁盘是否满足条件并开始更新磁盘分区容量并扩容文件系统;控制器模块监听PVC删除,并在发现PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,删除LogicVolume对象;节点模块监听LogicVolume对象的删除事件后,卸载本地对应的磁盘并清理分区;可以解决网络存储对中间件数据库无法满足性能要求的问题;可以使用管理本地磁盘,并基于本地磁盘分区直接挂载到容器中使用,为中间件数据库业务和对磁盘读写密集型的业务提供了稳定可靠的保障。同时,可以解决用户在Kubernetes环境下管理本地磁盘分区的能力不足的问题,用户无需自己创建分区,扩容分区以及删除分区。同时,为高性能业务场景提供了直接使用裸盘的功能。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种Kubernetes环境下的磁盘管理系统,其特征在于,所述系统包括:
调度器,用于在Kubernetes集群中创建PVC和部署物后,发现新创建的所述部署物以及所述PVC申请的磁盘容量空间大小,并进行调度分配节点;将创建的容器与所述节点绑定,为所述PVC增加注解和节点选择标签;
控制器模块,用于监听所述PVC创建,并在发现所述PVC与csi-driver一致的情况下,检查节点本地磁盘组和磁盘组容量,以过滤不符合容量的磁盘和独占磁盘,并选出符合条件的磁盘组信息,创建LogicVolume对象;
节点模块,用于监听所述LogicVolume对象的创建事件后,检查本地磁盘是否满足条件并开始创建磁盘分区;所述节点模块具体用于根据所述LogicVolume对象开始在磁盘上创建分区,并且将所述分区挂载到容器内部;
所述控制器模块,还用于监听所述PVC更新,并在发现所述PVC与csi-driver 一致的情况下,检查节点本地磁盘是否是独占磁盘,过滤独占磁盘后,更新所述LogicVolume对象;
所述节点模块,还用于监听所述LogicVolume对象的更新事件后,检查本地磁盘是否满足条件并开始更新磁盘分区容量并扩容文件系统;
所述控制器模块,还用于监听所述PVC删除,并在发现所述PVC与csi-driver 一致的情况下,检查节点本地磁盘组和磁盘组容量,删除所述LogicVolume对象;
所述节点模块,还用于监听所述LogicVolume对象的删除事件后,卸载本地对应的磁盘并清理分区。
2.根据权利要求1所述的系统,其特征在于,所述系统在程序部署完成后,根据配置参数检查本地磁盘,将满足条件的磁盘纳管进来;并在所述Kubernetes集群中创建对应每个节点信息的资源对象来显示本地磁盘组容量和可用容量,以及对应得磁盘信息和分区信息。
3.根据权利要求2所述的系统,其特征在于,所述调度器,用于在节点模块对应的资源对象创建后,开始创建申请存储资源请求;创建容器使用申请的存储资源对象,在所述Kubernetes集群中创建完容器后,根据所述资源对象过滤不符合要求的节点,找出满足的节点与所述容器进行绑定。
4.根据权利要求3所述的系统,其特征在于,所述调度器根据参数配置包括两种模式,分别为:等待消费才调度和立即调度。
5.根据权利要求1所述的系统,其特征在于,所述控制器模块,用于:
在完成节点调度后,根据用户配置参数确定需要筛选的卷组;
在确定出使用裸盘raw提供存储的情况下,在对应节点上按照磁盘实际容量和是否是独占磁盘进行筛选过滤;所述独占磁盘是只有一个容器使用的磁盘,且所述独占磁盘不与其他容器分享整块磁盘的容量;
在是独占磁盘的情况下,过滤有分区的磁盘,过滤非用户选择的磁盘,筛选出多块满足的磁盘里选择最小满足的磁盘;创建所述LogicVolume对象来记录磁盘信息;
在不是独占磁盘的情况下,筛选用户选择的磁盘组里的可用资空间大于请求资源的空盘和有分区磁盘;根据容量满足选择最小匹配的磁盘并创建LogicVolume对象来记录磁盘信息。
6.根据权利要求1所述的系统,其特征在于,
所述控制器模块,用于如果获取到扩容资源申请,对扩容行为进行甄别;以确定是否是独占磁盘;
所述节点模块,用于在是独占磁盘的情况下,开始扩容分区对现有挂载卷卸载,扩容成功后在挂载然后对文件系统扩容。
7.根据权利要求1所述的系统,其特征在于,
所述控制器模块,用于如果获取到删除资源申请,则对挂载分区卷卸载,并且删除对应的所述LogicVolume对象;
所述节点模块,用于通过定时协调程序清理分区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210717202.2A CN114816272B (zh) | 2022-06-23 | 2022-06-23 | Kubernetes环境下的磁盘管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210717202.2A CN114816272B (zh) | 2022-06-23 | 2022-06-23 | Kubernetes环境下的磁盘管理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114816272A CN114816272A (zh) | 2022-07-29 |
CN114816272B true CN114816272B (zh) | 2022-09-06 |
Family
ID=82521493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210717202.2A Active CN114816272B (zh) | 2022-06-23 | 2022-06-23 | Kubernetes环境下的磁盘管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816272B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116860527A (zh) * | 2023-07-10 | 2023-10-10 | 江苏博云科技股份有限公司 | 在Kubernetes环境下使用本地存储的容器的迁移方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167835A (zh) * | 2018-09-13 | 2019-01-08 | 重庆邮电大学 | 一种基于kubernetes的物理资源调度方法及系统 |
CN111880738A (zh) * | 2020-07-29 | 2020-11-03 | 浪潮云信息技术股份公司 | 一种K8s环境自动化创建和挂载LVM卷的方法 |
CN112230857A (zh) * | 2020-10-22 | 2021-01-15 | 杭州朗澈科技有限公司 | 一种混合云系统、混合云盘申请方法和数据存储方法 |
CN112783649A (zh) * | 2021-01-19 | 2021-05-11 | 苏州博纳讯动软件有限公司 | 一种面向云计算的交互感知的容器化微服务资源调度方法 |
CN113504954A (zh) * | 2021-07-08 | 2021-10-15 | 华云数据控股集团有限公司 | 调用CSI LVM Plugin插件、动态持久卷供应的方法、系统及介质 |
CN113641311A (zh) * | 2021-10-18 | 2021-11-12 | 浩鲸云计算科技股份有限公司 | 一种基于本地盘的容器存储资源动态分配的方法和系统 |
CN113687795A (zh) * | 2021-10-25 | 2021-11-23 | 浩鲸云计算科技股份有限公司 | 一种实现有状态应用的存储卷隔离性分配的方法和系统 |
CN113918270A (zh) * | 2020-07-08 | 2022-01-11 | 电科云(北京)科技有限公司 | 基于Kubernetes的云资源调度方法及系统 |
CN113946276A (zh) * | 2020-07-16 | 2022-01-18 | 北京达佳互联信息技术有限公司 | 集群中的磁盘管理方法、装置及服务器 |
CN113986830A (zh) * | 2021-11-11 | 2022-01-28 | 西安交通大学 | 一种面向分布式ct的云端数据管理和任务调度方法及系统 |
CN114090176A (zh) * | 2021-11-19 | 2022-02-25 | 苏州博纳讯动软件有限公司 | 一种基于Kubernetes的容器调度方法 |
CN114253459A (zh) * | 2020-09-22 | 2022-03-29 | 北京金山云网络技术有限公司 | 创建持久数据卷的方法、装置和服务器 |
CN114489512A (zh) * | 2022-02-10 | 2022-05-13 | 京东科技信息技术有限公司 | 限定容器容量的方法及装置、电子设备、存储介质 |
CN114490062A (zh) * | 2022-01-25 | 2022-05-13 | 浙江大华技术股份有限公司 | 一种本地磁盘的调度方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11169856B2 (en) * | 2019-01-31 | 2021-11-09 | Hewlett Packard Enterprise Development Lp | Container management |
US11550513B2 (en) * | 2020-01-24 | 2023-01-10 | Vmware, Inc. | Global cache for container images in a clustered container host system |
-
2022
- 2022-06-23 CN CN202210717202.2A patent/CN114816272B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167835A (zh) * | 2018-09-13 | 2019-01-08 | 重庆邮电大学 | 一种基于kubernetes的物理资源调度方法及系统 |
CN113918270A (zh) * | 2020-07-08 | 2022-01-11 | 电科云(北京)科技有限公司 | 基于Kubernetes的云资源调度方法及系统 |
CN113946276A (zh) * | 2020-07-16 | 2022-01-18 | 北京达佳互联信息技术有限公司 | 集群中的磁盘管理方法、装置及服务器 |
CN111880738A (zh) * | 2020-07-29 | 2020-11-03 | 浪潮云信息技术股份公司 | 一种K8s环境自动化创建和挂载LVM卷的方法 |
CN114253459A (zh) * | 2020-09-22 | 2022-03-29 | 北京金山云网络技术有限公司 | 创建持久数据卷的方法、装置和服务器 |
CN112230857A (zh) * | 2020-10-22 | 2021-01-15 | 杭州朗澈科技有限公司 | 一种混合云系统、混合云盘申请方法和数据存储方法 |
CN112783649A (zh) * | 2021-01-19 | 2021-05-11 | 苏州博纳讯动软件有限公司 | 一种面向云计算的交互感知的容器化微服务资源调度方法 |
CN113504954A (zh) * | 2021-07-08 | 2021-10-15 | 华云数据控股集团有限公司 | 调用CSI LVM Plugin插件、动态持久卷供应的方法、系统及介质 |
CN113641311A (zh) * | 2021-10-18 | 2021-11-12 | 浩鲸云计算科技股份有限公司 | 一种基于本地盘的容器存储资源动态分配的方法和系统 |
CN113687795A (zh) * | 2021-10-25 | 2021-11-23 | 浩鲸云计算科技股份有限公司 | 一种实现有状态应用的存储卷隔离性分配的方法和系统 |
CN113986830A (zh) * | 2021-11-11 | 2022-01-28 | 西安交通大学 | 一种面向分布式ct的云端数据管理和任务调度方法及系统 |
CN114090176A (zh) * | 2021-11-19 | 2022-02-25 | 苏州博纳讯动软件有限公司 | 一种基于Kubernetes的容器调度方法 |
CN114490062A (zh) * | 2022-01-25 | 2022-05-13 | 浙江大华技术股份有限公司 | 一种本地磁盘的调度方法、装置、电子设备及存储介质 |
CN114489512A (zh) * | 2022-02-10 | 2022-05-13 | 京东科技信息技术有限公司 | 限定容器容量的方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114816272A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488241B (zh) | 在容器编排平台实现无代理备份与恢复操作的方法和系统 | |
US9971823B2 (en) | Dynamic replica failure detection and healing | |
US20210064442A1 (en) | Implementing An Application Manifest In A Node-Specific Manner Using An Intent-Based Orchestrator | |
CN111338854B (zh) | 基于Kubernetes集群快速恢复数据的方法及系统 | |
CN109189334B (zh) | 一种区块链网络服务平台及其扩容方法、存储介质 | |
CN104615606B (zh) | 一种Hadoop分布式文件系统及其管理方法 | |
US11221943B2 (en) | Creating an intelligent testing queue for improved quality assurance testing of microservices | |
CA2177020A1 (en) | Customer information control system and method in a loosely coupled parallel processing environment | |
US20050234966A1 (en) | System and method for managing supply of digital content | |
CN114090176A (zh) | 一种基于Kubernetes的容器调度方法 | |
US20080201474A1 (en) | Computer system | |
CN114840148B (zh) | 在Kubernetes中基于linux内核bcache技术实现磁盘加速的方法 | |
US8713183B2 (en) | Resource compatability for data centers | |
CN114253459A (zh) | 创建持久数据卷的方法、装置和服务器 | |
CN113918281A (zh) | 一种提升容器云资源扩展效率的方法 | |
CN115357198B (zh) | 存储卷的挂载方法及装置、存储介质及电子设备 | |
CN114816272B (zh) | Kubernetes环境下的磁盘管理系统 | |
CN114327881A (zh) | 任务调度方法及装置 | |
CN114598665B (zh) | 资源调度方法、装置和计算机可读存储介质及电子设备 | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
US20070174836A1 (en) | System for controlling computer and method therefor | |
CN115964176B (zh) | 云计算集群调度方法、电子设备和存储介质 | |
US20230155958A1 (en) | Method for optimal resource selection based on available gpu resource analysis in large-scale container platform | |
CN113157476B (zh) | 虚拟云环境中显卡故障的处理方法及装置 | |
CN113687935A (zh) | 一种基于超融合设计的云原生存储调度方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |