一种容器集群管理方法、装置、设备及可读存储介质与流程

文档序号:22757796发布日期:2020-10-31 09:55阅读:107来源:国知局
一种容器集群管理方法、装置、设备及可读存储介质与流程

本申请涉及容器集群管理技术领域,更具体地说,涉及一种容器集群管理方法、装置、设备及计算机可读存储介质。



背景技术:

在当今智能城市、企业数字化转型时代,各种应用或业务加速上云。与采用虚拟机相比,采用容器方式进行上云时,应用或者业务容器化后,所有应用或业务可以直接运行在任何支持容器的操作系统(可以是物理机上的操作系统,也可以是虚拟机上操作系统)之上,此时,应用或业务转而与容器(而不再是过于笨重的虚拟机系统)打交道。

当应用或业务以容器为载体对外提供服务时,单个容器的承载能力是有限的,因此,对外提供服务的能力也是有限的,这就需要以kubernetes容器集群的方式来对外提供服务,此时,kubernetes容器集群(简称容器集群)的管理(包括创建、扩容、升级、运维等工作)就非常重要。目前,现有的容器集群大多采用人工手动或简单地人工编排虚拟机的方式来实现管理,因此,其会存在效率低的问题,而且由于容器集群的管理非常繁琐与复杂,因此,则容易出现管理错误。

综上所述,如何提高容器集群的管理效率和管理准确性,是目前本领域技术人员亟待解决的技术问题。



技术实现要素:

有鉴于此,本申请的目的是提供一种容器集群管理方法、装置、设备及计算机可读存储介质,用于提高容器集群的管理效率和管理准确性。

为了实现上述目的,本申请提供如下技术方案:

一种容器集群管理方法,包括:

预先构建管理集群,利用所述管理集群接收与其对应的各容器集群的期望状态;

获取运行在集群运行平台上的各所述容器集群的实际状态;

将各所述容器集群的期望状态与对应的实际状态进行对比;

对实际状态与对应的期望状态不一致的容器集群进行管理,以使所述容器集群达到对应的期望状态。

优选的,在将各所述容器集群的期望状态与对应的实际状态进行对比时,若存在容器集群的期望状态无对应的实际状态,则还包括:

将无对应的实际状态的容器集群的实际状态设置为0,以使所述容器集群的期望状态与0进行对比。

优选的,在利用所述管理集群接收与其对应的各容器集群的期望状态之前,还包括:

接收所述管理集群管理的对象、各所述对象的属性及各所述对象的api接口;其中,所述对象包括容器集群、集群节点、虚拟机模板及虚拟机实例,所述对象的属性包含实际状态和期望状态;

相应地,在将各所述容器集群的期望状态与对应的实际状态进行对比之前,还包括:

通过所述对象的api接口调取所述容器集群对应的期望状态与实际状态。

优选的,当需要对所述容器集群进行创建管理和/或扩容管理时,则对实际状态与对应的期望状态不一致的容器集群进行管理,包括:

将所述容器集群中的容器集群组件制作成与所述期望状态对应的虚拟机模板,并在所述虚拟机模板中注入虚拟机初始化参数;

将容器集群初始化参数转换成所述虚拟机模板部署虚拟机时的初始化脚本文件;

调用所述虚拟机模板部署虚拟机,利用所述虚拟机初始化参数对所述虚拟机进行初始化,并通过所述初始化脚本将所述虚拟机转换成所述容器集群的节点。

优选的,获取运行在集群运行平台上的各所述容器集群的实际状态,包括:

通过所述集群运行平台的api接口获取运行在所述集群运行平台上的各所述容器集群的实际状态。

优选的,在通过集群运行平台的api接口获取运行在所述集群运行平台上的各所述容器集群的实际状态之前,还包括:

对所述集群运行平台的api接口进行封装,以得到封装后的api接口。

一种容器集群管理装置,包括:

构建模块,用于预先构建管理集群,利用所述管理集群接收与其对应的各容器集群的期望状态;

获取模块,用于获取运行在集群运行平台上的各所述容器集群的实际状态;

对比模块,用于将各所述容器集群的期望状态与对应的实际状态进行对比;

管理模块,用于对实际状态与对应的期望状态不一致的容器集群进行管理,以使所述容器集群达到对应的期望状态。

优选的,在将各所述容器集群的期望状态与对应的实际状态进行对比时,若存在容器集群的期望状态无对应的实际状态,则还包括:

将无对应的实际状态的容器集群的实际状态设置为0,以使所述容器集群的期望状态与0进行对比。

一种容器集群管理设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述的容器集群管理方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的容器集群管理方法的步骤。

本申请提供了一种容器集群管理方法、装置、设备及计算机可读存储介质,其中,该方法包括:预先构建管理集群,利用管理集群接收与其对应的各容器集群的期望状态;获取运行在集群运行平台上的各容器集群的实际状态;将各容器集群的期望状态与对应的实际状态进行对比;对实际状态与对应的期望状态不一致的容器集群进行管理,以使容器集群达到对应的期望状态。

本申请公开的上述技术方案,利用预先构建的管理集群接收与其对应的各容器集群的期望状态、获取运行在集群运行平台上的各容器集群的实际状态,通过对期望状态与实际状态的对比来对实际状态与对应的期望状态不一致的容器集群进行管理而使这类容器集群达到对应的期望状态,即通过管理集群来实现对各容器集群的自动化管理,以减少容器集群管理的人为干预,从而提高容器集群的管理效率,并降低管理过程中的错误率,以提高容器集群的管理准确性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种容器集群管理方法的流程图;

图2为本申请实施例提供的另一种容器集群管理方法流程图;

图3为本申请实施例提供的一种容器集群管理装置的结构示意图;

图4为本申请实施例提供的一种容器集群管理设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参见图1,其示出了本申请实施例提供的一种容器集群管理方法的流程图,本申请实施例提供的一种容器集群管理方法,可以包括:

s11:预先构建管理集群,利用管理集群接收与其对应的各容器集群的期望状态。

考虑到现有采用人工手动方式来实现对容器集群的管理存在效率低、容器出错的问题,为此,本申请提供一种容器集群管理方法,用于提高容器集群的管理效率和管理准确性。

具体地,可以预先构建管理集群,以利用该管理集群对其对应的容器集群进行管理,以尽量减少人为对容器集群管理的干预,从而便于提高容器集群管理的效率和管理的准确性。具体而言,可以先利用该管理集群接收与其对应的各容器集群(即管理集群要管理的各容器集群)的期望状态(即期望容器集群能够达到的状态,具体可以指定容器集群的创建、容器集群的版本,容器集群的参数或对容器集群中的某些参数进行调整等),以便于管理集群可以根据各容器集群的期望状态而实现对各容器集群的自动管理。

其中,管理集群要管理的容器集群的数量可以为1个也可以为多个,这里对其要管理的容器集群的数量不做任何限定。另外,需要说明的是,这里提及的管理集群具体可以为kubernetes类型的集群,在利用管理集群对容器集群进行管理时,具体可以利用该集群中的循环控制器controller来对容器集群进行管理,以便于对各容器集群实现循环控制管理。

s12:获取运行在集群运行平台上的各容器集群的实际状态。

在构建完管理集群之后,可以利用管理集群实时或定时地获取运行在集群运行平台上的各容器集群的实际状态,以便于管理集群将实际状态与其对应的期望状态进行对比而决定是否对某个或某些容器集群进行管理操作。其中,这里提及的集群运行平台具体可以为云平台或虚拟化平台。

其中,在管理集群接收到与其对应的各容器集群的期望状态、获取运行在集群运行平台上的各容器集群的实际状态之后,可以对其对应的容器集群的期望状态和实际状态进行存储,以便于后续可以进行对比、管理,并便于用户进行查看等。

s13:将各容器集群的期望状态与对应的实际状态进行对比。

在执行完步骤s11和s12之后,可以将各容器集群的期望状态与容器集群对应的实际状态进行对比,以通过二者的对比来确定各容器集群的期望状态和其对应的实际状态是否一致,从而便于管理集群根据对比结果决定是否对某些容器集群进行管理操作。

s14:对实际状态与对应的期望状态不一致的容器集群进行管理,以使容器集群达到对应的期望状态。

在对容器集群的期望状态和实际状态进行对比时,若存在实际状态与其对应的期望状态不一致的容器集群,则可以根据期望状态来对实际状态与其对应的期望状态不一致的容器集群进行管理,以使这类容器集群最终可以达到其对应的期望状态,从而实现对各容器集群的管理。

需要说明的是,这里提及的对实际状态与对应的期望状态不一致的容器集群所进行的管理具体可能是删除容器集群、增加容器集群中的节点、删除容器集群中的节点、对容器集群进行升级、对容器集群进行运维等,具体可以依据期望状态而对容器集群进行管理。

由于上述过程可以借助所构建的管理集群来实现对各容器集群的自动化管理,因此,则可以减少人为干预,从而可以提高容器集群的管理效率,并可以尽量避免在对容器集群进行管理时出现错误,从而可以提高容器集群的管理准确性,以提高容器集群对外提供服务的能力。

本申请公开的上述技术方案,利用预先构建的管理集群接收与其对应的各容器集群的期望状态、获取运行在集群运行平台上的各容器集群的实际状态,通过对期望状态与实际状态的对比来对实际状态与对应的期望状态不一致的容器集群进行管理而使这类容器集群达到对应的期望状态,即通过管理集群来实现对各容器集群的自动化管理,以减少容器集群管理的人为干预,从而提高容器集群的管理效率,并降低管理过程中的错误率,以提高容器集群的管理准确性。

本申请实施例提供的一种容器集群管理方法,在将各容器集群的期望状态与对应的实际状态进行对比时,若存在容器集群的期望状态无对应的实际状态,则还可以包括:

将无对应的实际状态的容器集群的实际状态设置为0,以使容器集群的期望状态与0进行对比。

在将各容器集群的期望状态与该容器集群对应的实际状态进行对比时,若存在容器集群的期望状态无对应的实际状态,则表明管理集群需要在集群运行平台上创建与该期望状态对应的容器集群,此时,为了便于实现管理集群对其对应的各容器集群的统一管理,以降低容器集群管理的繁琐程度,提高容器集群的管理效率,则管理集群可以将该类容器集群(具体指上述提及的期望状态无对应的实际状态的容器集群)的实际状态设置为0,以使得该容器集群的期望状态直接与0这一实际状态进行对比。

本申请实施例提供的一种容器集群管理方法,在利用管理集群接收与其对应的各容器集群的期望状态之前,还可以包括:

接收管理集群管理的对象、各对象的属性及各对象的api接口;其中,对象可以包括容器集群、集群节点、虚拟机模板及虚拟机实例,对象的属性包含实际状态和期望状态;

相应地,在将各容器集群的期望状态与对应的实际状态进行对比之前,还可以包括:

通过对象的api接口调取容器集群对应的期望状态与实际状态。

在利用管理集群接收与其对应的各容器集群的期望状态之前,在构建完管理集群之后,管理集群可以接收管理集群要管理的对象、各对象的属性以及各对象的api接口。具体地,这里提及的对象可以包括容器集群、集群节点、虚拟机模板、虚拟机实例,其中,容器集群、集群节点是kubernetes容器集群的表述形式,容器集群是要管理的容器集群的逻辑表示,而集群节点是组成容器集群的节点的逻辑表示,容器集群、集群节点就是用户的容器集群在本申请的表现;虚拟机实例是集群节点的具体表示,其与具体的云平台或虚拟化平台相关;虚拟机模板对应不同的容器集群版本,也与具体的云平台或虚拟化平台相关;虚拟机实例最终也是通过虚拟机模板在云平台或虚拟化平台上部署生成的;对于容器集群而言,其属性包括名称、版本等,对于集群节点而言,其属性包括规格(cpu、内存)等,对于虚拟机模板而言,其属性包括名称、格式等,对于虚拟机实例而言,其属性包括实际状态、规格等,且每个对象的属性均包含实际状态和期望状态,以便于通过对象的api接口可以在管理集群中查询到各对象的期望状态和实际状态。另外,这里提及的对象的api接口面向的是循环控制器controller,以便于循环控制器controller能够通过对象的api接口查询对象的数量及状态等。

在管理集群接收到其管理的上述信息之后,则在将各容器集群的期望状态与对应的实际状态进行对比之前,则可以通过所接收到的要管理对象的api接口来直接调取各容器集群对应的期望状态和实际状态,以便于管理集群来实现各容器集群的期望状态与实际状态的对比。

本申请实施例提供的一种容器集群管理方法,当需要对容器集群进行创建管理和/或扩容管理时,则对实际状态与对应的期望状态不一致的容器集群进行管理,可以包括:

将容器集群中的容器集群组件制作成与期望状态对应的虚拟机模板,并在虚拟机模板中注入虚拟机初始化参数;

将容器集群初始化参数转换成虚拟机模板部署虚拟机时的初始化脚本文件;

调用虚拟机模板部署虚拟机,利用虚拟机初始化参数对虚拟机进行初始化,并通过初始化脚本将虚拟机转换成容器集群的节点。

在本申请中,当根据实际状态和期望状态对比的结果来确定需要对容器集群进行创建管理和/或扩容管理时,则管理集群对实际状态和对应的期望状态不一致的容器集群进行管理的具体过程为:

1)将容器集群组件制作成与期望状态对应的虚拟机模板,其中,不同版本的集群对应不同的虚拟机模板,而且虚拟机模板支持参数注入功能,因此,在制作虚拟机模板时可以在虚拟机模板中注入虚拟机初始化参数,以此支持虚拟机部署时的参数初始化功能;

2)容器集群引导初始化模块,将容器集群初始化参数转换成虚拟机模板部署虚拟机时的初始化脚本文件,以便于通过该脚本文件将虚拟机转换成容器集群的节点;

3)通过循环控制器controller调用虚拟机模板部署虚拟机时,虚拟机模板支持参数注入初始化,对虚拟机及其内部运行的容器软件进行初始化,初始化的参数是自动化部署容器集群通过2)传入的。

具体可以参见图2,其示出了本申请实施例提供的另一种容器集群管理方法流程图。本申请实施例提供的一种容器集群管理方法,获取运行在集群运行平台上的各容器集群的实际状态,可以包括:

通过集群运行平台的api接口获取运行在集群运行平台上的各容器集群的实际状态。

在管理集群获取运行在集群运行平台上的各容器集群的实际状态时,管理集群具体可以通过集群运行平台上的api接口获取运行在集群运行平台上的各容器集群的实际状态,以便于提高容器集群实际状态获取的便利性。

需要说明的是,在图2中,apiserver可以用来存储管理集群所管理的对象、对象的属性、对象的api接口、容器集群的期望状态及容器集群的实际状态等。

本申请实施例提供的一种容器集群管理方法,在通过集群运行平台的api接口获取运行在集群运行平台上的各容器集群的实际状态之前,还可以包括:

对集群运行平台的api接口进行封装,以得到封装后的api接口。

考虑到循环控制器controller所用语言格式与集群运行平台的api接口所用语音格式不相同,则在通过集群运行平台的api接口获取运行在集群运行平台上的各容器集群的实际状态之前,可以对集群云平平台的api接口进行封装,以使得封装后的api接口可以更好地对接循环控制器controller,从而便于提高循环控制器controller获取容器集群实际状态的便利性。

本申请实施例还提供了一种容器集群管理装置,参见图3,其示出了本申请实施例提供的一种容器集群管理装置的结构示意图,可以包括:

构建模块31,用于预先构建管理集群,利用管理集群接收与其对应的各容器集群的期望状态;

获取模块32,用于获取运行在集群运行平台上的各容器集群的实际状态;

对比模块33,用于将各容器集群的期望状态与对应的实际状态进行对比;

管理模块34,用于对实际状态与对应的期望状态不一致的容器集群进行管理,以使容器集群达到对应的期望状态。

本申请实施例提供的一种容器集群管理装置,还可以包括:

设置模块,用于在将各容器集群的期望状态与对应的实际状态进行对比时,若存在容器集群的期望状态无对应的实际状态,则将无对应的实际状态的容器集群的实际状态设置为0,以使容器集群的期望状态与0进行对比。

本申请实施例提供的一种容器集群管理装置,还可以包括:

接收模块,用于在利用管理集群接收与其对应的各容器集群的期望状态之前,接收管理集群管理的对象、各对象的属性及各对象的api接口;其中,对象可以包括容器集群、集群节点、虚拟机模板及虚拟机实例,对象的属性包含实际状态和期望状态;

相应地,还可以包括:

调取模块,用于在将各容器集群的期望状态与对应的实际状态进行对比之前,通过对象的api接口调取容器集群对应的期望状态与实际状态。

本申请实施例提供的一种容器集群管理装置,当需要对容器集群进行创建管理和/或扩容管理时,管理模块34可以包括:

制作单元,用于将容器集群中的容器集群组件制作成与期望状态对应的虚拟机模板,并在虚拟机模板中注入虚拟机初始化参数;

转换单元,用于将容器集群初始化参数转换成虚拟机模板部署虚拟机时的初始化脚本文件;

调用单元,用于调用虚拟机模板部署虚拟机,利用虚拟机初始化参数对虚拟机进行初始化,并通过初始化脚本将虚拟机转换成容器集群的节点。

本申请实施例提供的一种容器集群管理装置,获取模块32可以包括:

获取单元,用于通过集群运行平台的api接口获取运行在集群运行平台上的各容器集群的实际状态。

本申请实施例提供的一种容器集群管理装置,获取模块32还可以包括:

封装单元,用于在通过集群运行平台的api接口获取运行在集群运行平台上的各容器集群的实际状态之前,对集群运行平台的api接口进行封装,以得到封装后的api接口。

本申请实施例还提供了一种容器集群管理设备,参见图4,其示出了本申请实施例提供的一种容器集群管理设备的结构示意图,可以包括:

存储器41,用于存储计算机程序;

处理器42,用于执行存储器41存储的计算机程序时可实现如下步骤:

预先构建管理集群,利用管理集群接收与其对应的各容器集群的期望状态;获取运行在集群运行平台上的各容器集群的实际状态;将各容器集群的期望状态与对应的实际状态进行对比;对实际状态与对应的期望状态不一致的容器集群进行管理,以使容器集群达到对应的期望状态。

本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:

预先构建管理集群,利用管理集群接收与其对应的各容器集群的期望状态;获取运行在集群运行平台上的各容器集群的实际状态;将各容器集群的期望状态与对应的实际状态进行对比;对实际状态与对应的期望状态不一致的容器集群进行管理,以使容器集群达到对应的期望状态。

该计算机可读存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请实施例提供的一种容器集群管理装置、设备及计算机可读存储介质中相关部分的说明可以参见本申请实施例提供的一种容器集群管理方法中对应部分的详细说明,在此不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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