CN114116127A - 基于k8s自动化管理虚机镜像的方法及系统 - Google Patents
基于k8s自动化管理虚机镜像的方法及系统 Download PDFInfo
- Publication number
- CN114116127A CN114116127A CN202111383126.8A CN202111383126A CN114116127A CN 114116127 A CN114116127 A CN 114116127A CN 202111383126 A CN202111383126 A CN 202111383126A CN 114116127 A CN114116127 A CN 114116127A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- state
- mirror image
- image
- executing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000010276 construction Methods 0.000 claims abstract description 6
- 238000004806 packaging method and process Methods 0.000 claims abstract description 5
- 230000008569 process Effects 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 10
- 210000004907 gland Anatomy 0.000 claims description 8
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000012795 verification Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/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/45562—Creating, deleting, cloning virtual machine instances
-
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45591—Monitoring or debugging support
-
- 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/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了基于K8S自动化管理虚机镜像的方法及系统,属于虚机镜像技术领域,本发明要解决的技术问题为如何降低管理虚机镜像的成本,采用的技术方案为:该方法是将政务云部署场景结合站点构建及打包操作,自动化产出当前站点对应的虚机镜像cr文件及虚机镜像文件包,再部署虚机镜像operator,根据cr及镜像文件包,将虚机镜像自动化上传,后期用户直接使用glance进行引用;具体如下:将虚机镜像cr部署到指定环境,并将虚机镜像文件存放到指定位置;虚机镜像operator轮询环境cr;检测到当前cr,进行上传虚机镜像、虚机镜像的正确性校验、镜像数据更新及多架构支持的处理;根据配置,选择是否需要进行上传后的清除处理。
Description
技术领域
本发明涉及虚机镜像技术领域,具体地说是一种基于K8S自动化管理虚机镜像的方法及系统。
背景技术
operator是一种kubernetes的扩展形式,可以帮助用户以Kubernetes的声明式API风格自定义来管理应用及服务。在Kubernetes中,使用的Deployment、DamenSet、StatefulSet、Service、Ingress、ConfigMap及Secret等等都是资源,而对这些资源的创建、更新、删除的动作都会被称为为事件(Event),Kubernetes的Controller Manager负责事件监听,并触发相应的动作来满足期望(Spec),这种方式也就是声明式,即用户只需要关心应用程序的最终状态。同时,Kubernetes提供了自定义资源(Custom Resource)和opertor为应用程序提供基于kuberntes扩展。
虚机镜像即虚拟机使用的系统镜像,随着虚机镜像种类增加,对应的虚机镜像文件数量也逐渐增加。由于各地方政务云环境的需求不同,需要的虚机镜像以及对应的虚机镜像文件也有差异。故如何降低管理虚机镜像的成本是目前亟待解决的技术问题。
发明内容
本发明的技术任务是提供一种基于K8S自动化管理虚机镜像的方法及系统,来解决如何降低管理虚机镜像的成本的问题。
本发明的技术任务是按以下方式实现的,一种基于K8S自动化管理虚机镜像的方法,该方法是将政务云部署场景结合站点构建及打包操作,自动化产出当前站点对应的虚机镜像cr文件及虚机镜像文件包,再部署虚机镜像operator,根据cr及镜像文件包,将虚机镜像自动化上传,后期用户直接使用glance进行引用;具体如下:
将虚机镜像cr部署到指定环境,并将虚机镜像文件存放到指定位置;
虚机镜像operator轮询环境cr;
检测到当前cr,进行上传虚机镜像、虚机镜像的正确性校验、镜像数据更新及多架构支持的处理;
根据配置,选择是否需要进行上传后的清除处理。
作为优选,cr是crd对应的一个资源实例,cr的部署具体如下:
生成crd:根据目前虚机镜像所用的元信息属性,归纳调整出通用的crd格式;
生成cr:按照配置创建每个虚机镜像的元数据cr;
部署cr:将cr文件存放到使用该虚机镜像的chart项目中,部署该chart项目,即对应完成当前cr部署。
作为优选,虚机镜像文件存放到指定位置具体如下:
虚机镜像operator采用宿主机文件夹挂载的方式连接宿主机指定文件夹;
在每个虚机镜像的cr中,维护path属性配置虚机文件相对于挂载文件夹的位置,方便后续镜像上传。
作为优选,上传虚机镜像的方式具体如下:
ceph上传方式:将镜像通过rbd指令导入到ceph中,再将上传后的数据同步到glance中,glance采用api方式操作,同时获取镜像列表数据存入缓存,设定时间段内刷新一次列表数据,若设定时间段内有上传操作,则强制刷新一次列表数据;
glance上传方式:通过glance进行上传虚机镜像,glance采用api方式操作,同时获取镜像列表数据存入缓存,设定时间段内刷新一次列表数据,若设定时间段内有上传操作,则强制刷新一次列表数据。
作为优选,虚机镜像的正确性校验包括如下情况:
①、将虚机镜像从qcow2格式转换为raw格式,转换前会判断当前虚机镜像文件的hash值是否与cr中定义的一致;
②、校验上传后的镜像的hash值是否与raw格式虚机镜像文件的hash值一致;
③、校验上传后的镜像状态是否是active状态。
更优地,镜像数据更新具体是指允许更改镜像的tag属性及增加自定义属性,其余元数据属性,除发布新版本,否则不允许在同一版本内进行更新;
多架构支持是指制作Dockerfile时,只需选用不同架构下的简单镜像作为基础镜像,依次安装需要的命令,执行构建指令即可得到满足适用于不同架构的特定镜像。
更优地,单个cr的状态转移过程具体如下:
(1)、Operator刚开始处理当前镜像cr时,状态切换为pending;在当前过程中连接glance进行镜像检测,检测点:判断当前镜像架构是否匹配:
①、若不匹配,则进入archskip状态,下一步执行步骤(11)
②、若匹配,则执行步骤(2);
(2)、判断当前镜像在glance中是否已存在,同时判断状态是否为active:
①、若glance中不存在或/和状态不为active,则执行步骤(3);
②、若glance中存在且状态为active,则执行步骤(4);
(3)、判断当前镜像的本地虚机镜像文件是否存在:
①、若存在,则状态进入uploading状态,下一步执行步骤(5);
②、若不存在,则状态进入error,下一步执行步骤(10);
(4)、判断是否需要更新自定义属性:
①、若需要更新,则进入updating状态,下一步执行步骤(9);
②、若不需要更新,则进入active状态,下一步执行步骤(12);
(5)、当状态为uploading需要上传状态时,判断当前镜像文件的hash值与cr中提供的hash值是否一致:
①、若不一致,则进入error状态,下一步执行步骤(10);
②、若一致,则执行步骤(6);
(6)、判断当前宿主机挂载文件夹下的可用空间是否大于限额:
①、若空间不足,则进入error状态,下一步执行步骤(10);
②、若空间充足,则执行步骤(7);
(7)、根据配置选择glance直接上传或者先rbd上传再同步glance,判断上传过程中是否有失误:
①、若有失误,则进入error状态,下一步执行步骤(10);
②、若无失误,则执行步骤(8);
(8)、上传成功后,校验已上传镜像的状态及hash值是否与转换后raw格式的hash值一致:
①、若检验不通过,则进入error状态,下一步执行步骤(10);
②、若校验通过,则执行步骤(9);
(9)、当状态为updating需要更新状态时,获取当前cr中定义的tag和自定义属性,将数据更新到glance数据中,判断是否更新成功:
①、若更新失败,则进入error状态,下一步执行步骤(10);
②、若更新成功,则进入active状态,下一步执行步骤(12);
(10)、当状态每次进error时,在cr的status.reason属性中记录失败原因,error状态的cr会再过设定时间后重试加入缓存队列进行下一轮处理,跳转至步骤(1),重新从pending状态开始;其中,重试策略为间隔设定时间重试一次;
(11)、archskip是cr中定义的架构与政务云环境架构不匹配的cr的最终状态;并且根据实际使用情况,适配人为配置错误的情况,支持archskip状态的cr在重启operator的pod后,会再进行一次架构匹配检测;而对于当前一轮而言,仍旧看做是最终状态,archskip状态在当前环境第一次检测架构之后不会再处理;
(12)、active是cr中定义的架构与政务云环境架构匹配的cr的最终状态,active状态下,判断cr是否更新:
①、若cr不再更新,则不会再次处理;
②、若cr的tag或自定义属性有更新,跳转至步骤(1),会进入新一轮的处理过程。
一种基于K8S自动化管理虚机镜像的系统,该系统包括,
部署模块,用于将虚机镜像cr部署到指定环境,并将虚机镜像文件存放到指定位置;
轮询模块,用于虚机镜像operator轮询环境cr;
处理模块,用于检测到当前cr,进行上传虚机镜像、虚机镜像的正确性校验、镜像数据更新及多架构支持的处理;
清除模块,用于根据配置,选择是否需要进行上传后的清除处理。
一种电子设备,包括:存储器和一个处理器;
其中,所述存储器存储计算机执行指令;
所述一个处理器执行所述存储器存储的计算机执行指令,使得所述一个处理器执行如上述的基于K8S自动化管理虚机镜像的方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如上述的基于K8S自动化管理虚机镜像的方法。
本发明的基于K8S自动化管理虚机镜像的方法及系统具有以下优点:
(一)本发明为浪潮云提供一个基于k8s自动化管理虚机镜像的方法,用户只需提供虚机镜像的cr及其使用的虚机镜像文件包即可自动化完成对应的虚机镜像文件上传,可以根据需要自行调整文件内容,具有良好的移植性;
(二)本发明可以降低虚机镜像管理的复杂度:部署时,cr会随着组件部署直接部署到环境中,该过程无需人为操作;镜像文件会随着操作一起制作出来,只需人为从打包环境拷贝到部署环境中;虚机镜像operator自身作为一个组件,通过lcm部署即可;更新时,只需修改镜像对应的cr文件即可,由operator自动完成镜像更新;
(三)本发明可以提高上传镜像的正确性:每个镜像的上传过程中都进行三次校验,确保成功上传镜像的可用性;
(四)本发明具备自动重试机制:由于各种原因上传失败的虚机镜像,会每隔一段时间进行自动上传重试,无需人为干预;
(五)本发明通过operator自动化管理自定义资源(虚机镜像),包含检测、更新、上传等功能,并通过cr维护在各组件chart中,随chart部署到环境中,同时虚机镜像上传支持rbd和glance两种上传方式,可以按照实际情况进行配置,操作方便,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于K8S自动化管理虚机镜像的方法的流程框图;
附图2为单个cr的状态转移的流程框图。
具体实施方式
参照说明书附图和具体实施例对本发明的基于K8S自动化管理虚机镜像的方法及系统作以下详细地说明。
实施例1:
如附图1所示,本发明的基于K8S自动化管理虚机镜像的方法,该方法是将政务云部署场景结合站点构建及打包操作,自动化产出当前站点对应的虚机镜像cr文件及虚机镜像文件包,再部署虚机镜像operator,根据cr及镜像文件包,将虚机镜像自动化上传,后期用户直接使用glance进行引用;具体如下:
S1、将虚机镜像cr部署到指定环境,并将虚机镜像文件存放到指定位置;
S2、虚机镜像operator轮询环境cr;
S3、检测到当前cr,进行上传虚机镜像、虚机镜像的正确性校验、镜像数据更新及多架构支持的处理;
S4、根据配置,选择是否需要进行上传后的清除处理。
本实施例步骤S1中的cr是crd对应的一个资源实例,cr的部署具体如下:
S101、生成crd:根据目前虚机镜像所用的元信息属性,归纳调整出通用的crd格式;
S102、生成cr:按照配置创建每个虚机镜像的元数据cr;
S103、部署cr:将cr文件存放到使用该虚机镜像的chart项目中,部署该chart项目,即对应完成当前cr部署。
本实施例步骤S1中的虚机镜像文件存放到指定位置具体如下:
虚机镜像operator采用宿主机文件夹挂载的方式连接宿主机指定文件夹;在每个虚机镜像的cr中,维护path属性配置虚机文件相对于挂载文件夹的位置,方便后续镜像上传。
本实施例步骤S3中的上传虚机镜像的方式具体如下:
①、ceph上传方式:将镜像通过rbd指令导入到ceph中,再将上传后的数据同步到glance中,glance采用api方式操作,同时获取镜像列表数据存入缓存,设定时间段内刷新一次列表数据,若设定时间段内有上传操作,则强制刷新一次列表数据;
②、glance上传方式:通过glance进行上传虚机镜像,glance采用api方式操作,同时获取镜像列表数据存入缓存,设定时间段内刷新一次列表数据,若设定时间段内有上传操作,则强制刷新一次列表数据。
本实施例步骤S3中的虚机镜像的正确性校验包括如下情况:
①、将虚机镜像从qcow2格式转换为raw格式,转换前会判断当前虚机镜像文件的hash值是否与cr中定义的一致;
②、校验上传后的镜像的hash值是否与raw格式虚机镜像文件的hash值一致;
③、校验上传后的镜像状态是否是active状态。
本实施例步骤S3中的镜像数据更新具体是指允许更改镜像的tag属性及增加自定义属性,其余元数据属性,除发布新版本,否则不允许在同一版本内进行更新;
本实施例步骤S3中的多架构支持是指制作Dockerfile时,只需选用不同架构下的简单镜像作为基础镜像,依次安装需要的命令,执行构建指令即可得到满足适用于不同架构的特定镜像。
如附图2所示,单个cr的状态转移过程具体如下:
(1)、Operator刚开始处理当前镜像cr时,状态切换为pending;在当前过程中连接glance进行镜像检测,检测点:判断当前镜像架构是否匹配:
①、若不匹配,则进入archskip状态,下一步执行步骤(11)
②、若匹配,则执行步骤(2);
(2)、判断当前镜像在glance中是否已存在,同时判断状态是否为active:
①、若glance中不存在或/和状态不为active,则执行步骤(3);
②、若glance中存在且状态为active,则执行步骤(4);
(3)、判断当前镜像的本地虚机镜像文件是否存在:
①、若存在,则状态进入uploading状态,下一步执行步骤(5);
②、若不存在,则状态进入error,下一步执行步骤(10);
(4)、判断是否需要更新自定义属性:
①、若需要更新,则进入updating状态,下一步执行步骤(9);
②、若不需要更新,则进入active状态,下一步执行步骤(12);
(5)、当状态为uploading需要上传状态时,判断当前镜像文件的hash值与cr中提供的hash值是否一致:
①、若不一致,则进入error状态,下一步执行步骤(10);
②、若一致,则执行步骤(6);
(6)、判断当前宿主机挂载文件夹下的可用空间是否大于限额:
①、若空间不足,则进入error状态,下一步执行步骤(10);
②、若空间充足,则执行步骤(7);
(7)、根据配置选择glance直接上传或者先rbd上传再同步glance,判断上传过程中是否有失误:
①、若有失误,则进入error状态,下一步执行步骤(10);
②、若无失误,则执行步骤(8);
(8)、上传成功后,校验已上传镜像的状态及hash值是否与转换后raw格式的hash值一致:
①、若检验不通过,则进入error状态,下一步执行步骤(10);
②、若校验通过,则执行步骤(9);
(9)、当状态为updating需要更新状态时,获取当前cr中定义的tag和自定义属性,将数据更新到glance数据中,判断是否更新成功:
①、若更新失败,则进入error状态,下一步执行步骤(10);
②、若更新成功,则进入active状态,下一步执行步骤(12);
(10)、当状态每次进error时,在cr的status.reason属性中记录失败原因,error状态的cr会再过设定时间后重试加入缓存队列进行下一轮处理,跳转至步骤(1),重新从pending状态开始;其中,重试策略为间隔(重试次数*2)小时后重试一次;
(11)、archskip是cr中定义的架构与政务云环境架构不匹配的cr的最终状态;并且根据实际使用情况,适配人为配置错误的情况,支持archskip状态的cr在重启operator的pod后,会再进行一次架构匹配检测;而对于当前一轮而言,仍旧看做是最终状态,archskip状态在当前环境第一次检测架构之后不会再处理;
(12)、active是cr中定义的架构与政务云环境架构匹配的cr的最终状态,active状态下,判断cr是否更新:
①、若cr不再更新,则不会再次处理;
②、若cr的tag或自定义属性有更新,跳转至步骤(1),会进入新一轮的处理过程。
实施例2:
本发明的基于K8S自动化管理虚机镜像的系统,该系统包括,
部署模块,用于将虚机镜像cr部署到指定环境,并将虚机镜像文件存放到指定位置;
轮询模块,用于虚机镜像operator轮询环境cr;
处理模块,用于检测到当前cr,进行上传虚机镜像、虚机镜像的正确性校验、镜像数据更新及多架构支持的处理;
清除模块,用于根据配置,选择是否需要进行上传后的清除处理。
实施例3:
本发明实施例还提供了一种电子设备,包括:存储器和一个处理器;
其中,所述存储器存储计算机执行指令;
一个处理器执行所述存储器存储的计算机执行指令,使得一个处理器执行本发明任一项所述的基于K8S自动化管理虚机镜像的方法。
处理器可以是中央处理单元(,CPU),还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通过处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可用于储存计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现电子设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器还可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,只能存储卡(SMC),安全数字(SD)卡,闪存卡、至少一个磁盘存储期间、闪存器件、或其他易失性固态存储器件。
实施例4:
本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的基于K8S自动化管理虚机镜像的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于K8S自动化管理虚机镜像的方法,其特征在于,该方法是将政务云部署场景结合站点构建及打包操作,自动化产出当前站点对应的虚机镜像cr文件及虚机镜像文件包,再部署虚机镜像operator,根据cr及镜像文件包,将虚机镜像自动化上传,后期用户直接使用glance进行引用;具体如下:
将虚机镜像cr部署到指定环境,并将虚机镜像文件存放到指定位置;
虚机镜像operator轮询环境cr;
检测到当前cr,进行上传虚机镜像、虚机镜像的正确性校验、镜像数据更新及多架构支持的处理;
根据配置,选择是否需要进行上传后的清除处理。
2.根据权利要求1所述的基于K8S自动化管理虚机镜像的方法,其特征在于,cr是crd对应的一个资源实例,cr的部署具体如下:
生成crd:根据目前虚机镜像所用的元信息属性,归纳调整出通用的crd格式;
生成cr:按照配置创建每个虚机镜像的元数据cr;
部署cr:将cr文件存放到使用该虚机镜像的chart项目中,部署该chart项目,即对应完成当前cr部署。
3.根据权利要求1所述的基于K8S自动化管理虚机镜像的方法,其特征在于,虚机镜像文件存放到指定位置具体如下:
虚机镜像operator采用宿主机文件夹挂载的方式连接宿主机指定文件夹;
在每个虚机镜像的cr中,维护path属性配置虚机文件相对于挂载文件夹的位置,方便后续镜像上传。
4.根据权利要求1所述的基于K8S自动化管理虚机镜像的方法,其特征在于,上传虚机镜像的方式具体如下:
ceph上传方式:将镜像通过rbd指令导入到ceph中,再将上传后的数据同步到glance中,glance采用api方式操作,同时获取镜像列表数据存入缓存,设定时间段内刷新一次列表数据,若设定时间段内有上传操作,则强制刷新一次列表数据;
glance上传方式:通过glance进行上传虚机镜像,glance采用api方式操作,同时获取镜像列表数据存入缓存,设定时间段内刷新一次列表数据,若设定时间段内有上传操作,则强制刷新一次列表数据。
5.根据权利要求1所述的基于K8S自动化管理虚机镜像的方法,其特征在于,虚机镜像的正确性校验包括如下情况:
①、将虚机镜像从qcow2格式转换为raw格式,转换前会判断当前虚机镜像文件的hash值是否与cr中定义的一致;
②、校验上传后的镜像的hash值是否与raw格式虚机镜像文件的hash值一致;
③、校验上传后的镜像状态是否是active状态。
6.根据权利要求1-5中任一所述的基于K8S自动化管理虚机镜像的方法,其特征在于,镜像数据更新具体是指允许更改镜像的tag属性及增加自定义属性,其余元数据属性,除发布新版本,否则不允许在同一版本内进行更新;
多架构支持是指制作Dockerfile时,只需选用不同架构下的简单镜像作为基础镜像,依次安装需要的命令,执行构建指令即可得到满足适用于不同架构的特定镜像。
7.根据权利要求6所述的基于K8S自动化管理虚机镜像的方法,其特征在于,单个cr的状态转移过程具体如下:
(1)、Operator刚开始处理当前镜像cr时,状态切换为pending;在当前过程中连接glance进行镜像检测,检测点:判断当前镜像架构是否匹配:
①、若不匹配,则进入archskip状态,下一步执行步骤(11)
②、若匹配,则执行步骤(2);
(2)、判断当前镜像在glance中是否已存在,同时判断状态是否为active:
①、若glance中不存在或/和状态不为active,则执行步骤(3);
②、若glance中存在且状态为active,则执行步骤(4);
(3)、判断当前镜像的本地虚机镜像文件是否存在:
①、若存在,则状态进入uploading状态,下一步执行步骤(5);
②、若不存在,则状态进入error,下一步执行步骤(10);
(4)、判断是否需要更新自定义属性:
①、若需要更新,则进入updating状态,下一步执行步骤(9);
②、若不需要更新,则进入active状态,下一步执行步骤(12);
(5)、当状态为uploading需要上传状态时,判断当前镜像文件的hash值与cr中提供的hash值是否一致:
①、若不一致,则进入error状态,下一步执行步骤(10);
②、若一致,则执行步骤(6);
(6)、判断当前宿主机挂载文件夹下的可用空间是否大于限额:
①、若空间不足,则进入error状态,下一步执行步骤(10);
②、若空间充足,则执行步骤(7);
(7)、根据配置选择glance直接上传或者先rbd上传再同步glance,判断上传过程中是否有失误:
①、若有失误,则进入error状态,下一步执行步骤(10);
②、若无失误,则执行步骤(8);
(8)、上传成功后,校验已上传镜像的状态及hash值是否与转换后raw格式的hash值一致:
①、若检验不通过,则进入error状态,下一步执行步骤(10);
②、若校验通过,则执行步骤(9);
(9)、当状态为updating需要更新状态时,获取当前cr中定义的tag和自定义属性,将数据更新到glance数据中,判断是否更新成功:
①、若更新失败,则进入error状态,下一步执行步骤(10);
②、若更新成功,则进入active状态,下一步执行步骤(12);
(10)、当状态每次进error时,在cr的status.reason属性中记录失败原因,error状态的cr会再过设定时间后重试加入缓存队列进行下一轮处理,跳转至步骤(1),重新从pending状态开始;其中,重试策略为间隔设定时间重试一次;
(11)、archskip是cr中定义的架构与政务云环境架构不匹配的cr的最终状态;并且根据实际使用情况,适配人为配置错误的情况,支持archskip状态的cr在重启operator的pod后,会再进行一次架构匹配检测;而对于当前一轮而言,仍旧看做是最终状态,archskip状态在当前环境第一次检测架构之后不会再处理;
(12)、active是cr中定义的架构与政务云环境架构匹配的cr的最终状态,active状态下,判断cr是否更新:
①、若cr不再更新,则不会再次处理;
②、若cr的tag或自定义属性有更新,跳转至步骤(1),会进入新一轮的处理过程。
8.一种基于K8S自动化管理虚机镜像的系统,其特征在于,该系统包括,
部署模块,用于将虚机镜像cr部署到指定环境,并将虚机镜像文件存放到指定位置;
轮询模块,用于虚机镜像operator轮询环境cr;
处理模块,用于检测到当前cr,进行上传虚机镜像、虚机镜像的正确性校验、镜像数据更新及多架构支持的处理;
清除模块,用于根据配置,选择是否需要进行上传后的清除处理。
9.一种电子设备,其特征在于,包括:存储器和至少一个处理器;
其中,所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至7任一所述的基于K8S自动化管理虚机镜像的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行时,实现如权利要求1至7中任一所述的基于K8S自动化管理虚机镜像的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111383126.8A CN114116127A (zh) | 2021-11-22 | 2021-11-22 | 基于k8s自动化管理虚机镜像的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111383126.8A CN114116127A (zh) | 2021-11-22 | 2021-11-22 | 基于k8s自动化管理虚机镜像的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116127A true CN114116127A (zh) | 2022-03-01 |
Family
ID=80439058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111383126.8A Pending CN114116127A (zh) | 2021-11-22 | 2021-11-22 | 基于k8s自动化管理虚机镜像的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116127A (zh) |
-
2021
- 2021-11-22 CN CN202111383126.8A patent/CN114116127A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608689B (zh) | 客户端上应用程序的更新方法、装置及电子设备 | |
US7937697B2 (en) | Method, system and computer program for distributing software patches | |
US20150067167A1 (en) | Hot pluggable extensions for access management system | |
CN110096424B (zh) | 测试的处理方法、装置、电子设备及存储介质 | |
US20230036357A1 (en) | Method and apparatus for authority control, computer device and storage medium | |
CN107066300B (zh) | 一种存储设备的固件升级方法和存储设备 | |
CN111324522A (zh) | 一种自动化测试系统及方法 | |
CN113687858B (zh) | 配置文件的检查方法、装置、电子设备及存储介质 | |
WO2011088701A1 (zh) | 一种跨平台版本在线升级的方法及装置 | |
US20210216301A1 (en) | Algorithm update method and apparatus | |
WO2021169124A1 (zh) | 安装软件包至目标主机的方法、装置和计算机设备 | |
CN117170803A (zh) | 生成信创操作系统流水线的方法、电子设备及存储介质 | |
WO2017198156A1 (zh) | 业务部署方法、装置和系统 | |
CN114489711A (zh) | 终端升级方法、装置及存储介质 | |
CN112732285A (zh) | 适用于云计算linux操作系统的升级方法、装置及电子设备 | |
CN117008934A (zh) | 自动制作信创操作系统镜像的方法、装置、设备及介质 | |
CN115098301B (zh) | 一种云原生场景下有状态应用的快照生成方法和系统 | |
CN114116127A (zh) | 基于k8s自动化管理虚机镜像的方法及系统 | |
CN113448609B (zh) | 一种容器的升级方法、装置、设备和存储介质 | |
CN113608831B (zh) | 一种插件实例管理方法、系统、存储介质及设备 | |
CN116149745A (zh) | 应用配置数据的管理方法、装置、电子设备及存储介质 | |
CN111459525A (zh) | 应用程序更新数据处理系统、方法、存储介质、计算机 | |
CN113687915B (zh) | 容器运行方法、装置、设备及存储介质 | |
CN113094211B (zh) | 一种备份数据处理的方法和装置 | |
CN112148463B (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 |