首页> 中国专利> 一种基于K8S容器集群计算节点的扩容方法及系统

一种基于K8S容器集群计算节点的扩容方法及系统

摘要

本发明涉及服务器技术领域,提供一种基于K8S容器集群计算节点的扩容方法及系统,方法包括:在K8S容器集群正常工作的同时,创建K8S容器集群的初期基础资源;判断初期基础资源创建是否完成;当创建完成时,控制自动安装K8S容器集群以及创建K8S容器集群的剩余基础资源;当K8S容器集群的自动安装以及剩余基础资源的创建完成后,控制进行K8S容器集群的计算节点的注册;判断计算节点的注册是否完成,是则确定K8S容器集群扩容成功,否则确定扩容失败;当判定初期基础资源创建失败时,则确定扩容失败,并结束,从而实现对K8S容器集群的自动扩容,而且不影响K8S容器集群的正常工作。

著录项

  • 公开/公告号CN113835834A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 济南浪潮数据技术有限公司;

    申请/专利号CN202111060558.5

  • 发明设计人 赵海丽;杨川;

    申请日2021-09-10

  • 分类号G06F9/455(20060101);

  • 代理机构37105 济南诚智商标专利事务所有限公司;

  • 代理人田祥宝

  • 地址 250000 山东省济南市中国(山东)自由贸易试验区济南片区浪潮路1036号浪潮科技园S05楼S311室

  • 入库时间 2023-06-19 13:49:36

说明书

技术领域

本发明属于服务器技术领域,尤其涉及一种基于K8S容器集群计算节点的扩容方法及系统。

背景技术

Kubernetes是开源的基于容器的集群管理平台,Kubernetes的目标是实现部署容器化的应用简单并且高效,提供了应用部署,规划,更新,维护的一种机制,简称K8S。一个K8S系统,通常称为一个K8S集群(Cluster),主要包括两个部分:若干个Master节点(主节点),一群Node节点(计算节点)。K8S集群是容器化的管理系统,是容器运行所需云资源的集合。它由若干工作节点(云主机或者物理机)、负载均衡、网络等资源组成,为容器化的应用提供了资源调度、部署运行和服务发现以及Node节点的扩容、缩容等丰富多样的功能。Pod指的是K8S集群中的应用负载,Pod运行在节点上。Pod由一个或者多个容器组成,它们共享容器存储、网络和容器运行配置项。Pod中的容器总是被同时调度,有共同的运行环境,其中:

Master节点主要负责管理和控制,包括API Server、Scheduler、Controllermanager以及ETCD。API Server是整个系统的对外接口,供客户端和其它组件调用,相当于“营业厅”。Scheduler负责对集群内部的资源进行调度,监视新创建没有分配到节点的Pod,选择一个节点供他们运行,即pod的调度。Controller manager负责管理控制器,相当于“大总管”。ETCD是K8S提供默认的存储系统,保存所有集群数据,使用时需要为ETCD数据提供备份计划;

Node节点是真正运行工作负载的节点,Node节点上运行着Master分配的Pod,当某个Node节点宕机时,其上的Pod会被自动转移到其他Node节点上。每一个Node节点都安装了Node组件,包括Kubelet、Kube-proxy等。Kubelet会监视已分配给节点的Pod,负责Pod的生命周期管理,同时与Master密切协作,维护和管理该Node上面的所有容器,实现集群管理的基本功能。Kube-proxy主要负责为Pod对象提供代理。

K8S容器集群完成,在使用的过程中,存在容量太小,不能满足新业务需求的情况,此时,对集群Node节点扩容是最简单便捷的方式。原有的容器集群Node节点扩容方式为手动创建云主机、云硬盘等资源,资源创建成功后,将云硬盘挂载至云主机,然后通过执行脚本命令,将手动创建成功的云主机关联到容器集群,最后手动配置相关参数实现集群的扩容;在一系列操作过程中,需要将容器集群中某些功能暂停;如果云主机、云硬盘创建失败,还需要手动删除云主机、云硬盘,这种操作需要人工介入,不能实现自动扩容以及遗留数据资源的清理。

发明内容

针对现有技术中的缺陷,本发明提供了一种基于K8S容器集群计算节点的扩容方法,旨在解决现有技术中K8S容器集群的扩容需要手动完成,操作不便而且效率低,同时在扩容过程中需要暂停容器集群的相关功能的问题。

本发明所提供的技术方案是:一种基于K8S容器集群计算节点的扩容方法,所述方法包括下述步骤:

根据用户的K8S容器集群计算节点的扩容需求信息,在K8S容器集群正常工作的同时,创建所述K8S容器集群的初期基础资源;

判断所述K8S容器集群的初期基础资源创建是否完成;

当判定所述K8S容器集群的初期基础资源创建完成时,控制自动安装K8S容器集群以及创建K8S容器集群的剩余基础资源;

当所述K8S容器集群的自动安装以及剩余基础资源的创建完成后,控制进行K8S容器集群的计算节点的注册;

判断所述计算节点的注册是否完成,是则确定所述K8S容器集群扩容成功,否则确定K8S容器集群扩容失败;

当判定所述K8S容器集群的初期基础资源创建失败时,则确定K8S容器集群扩容失败,并结束。

本发明的另一目的在于提供一种基于基于K8S容器集群计算节点的扩容方法的基于K8S容器集群计算节点的扩容系统,所述系统包括:

初期基础资源创建模块,用于根据用户的K8S容器集群计算节点的扩容需求信息,在K8S容器集群正常工作的同时,创建所述K8S容器集群的初期基础资源;

初期基础资源创建判断模块,用于判断所述K8S容器集群的初期基础资源创建是否完成;

安装控制模块,用于当判定所述K8S容器集群的初期基础资源创建完成时,控制自动安装K8S容器集群以及创建K8S容器集群的剩余基础资源;

计算节点注册模块,用于当所述K8S容器集群的自动安装以及剩余基础资源的创建完成后,控制进行K8S容器集群的计算节点的注册;

计算节点注册判断模块,用于判断所述计算节点的注册是否完成;

扩容成功确定模块,用于当所述计算节点注册判断模块判断计算节点的注册完成时,确定所述K8S容器集群扩容成功;

扩容失败确定模块,用于当判定所述K8S容器集群的初期基础资源创建失败,或当所述计算节点注册判断模块判断计算节点的注册失败时,则确定K8S容器集群扩容失败,并结束。

在本发明实施例中,根据用户的K8S容器集群计算节点的扩容需求信息,在K8S容器集群正常工作的同时,创建所述K8S容器集群的初期基础资源;判断所述K8S容器集群的初期基础资源创建是否完成;当判定所述K8S容器集群的初期基础资源创建完成时,控制自动安装K8S容器集群以及创建K8S容器集群的剩余基础资源;当所述K8S容器集群的自动安装以及剩余基础资源的创建完成后,控制进行K8S容器集群的计算节点的注册;判断所述计算节点的注册是否完成,是则确定所述K8S容器集群扩容成功,否则确定K8S容器集群扩容失败;当判定所述K8S容器集群的初期基础资源创建失败时,则确定K8S容器集群扩容失败,并结束,从而实现对K8S容器集群的自动扩容,而且不影响K8S容器集群的正常工作,方便快捷。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。

图1是本发明提供的基于K8S容器集群计算节点的扩容方法的实现流程图;

图2是本发明提供的基于K8S容器集群计算节点的扩容系统的结构框图。

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的、技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

图1是本发明提供的基于K8S容器集群计算节点的扩容方法的实现流程图,其具体包括下述步骤:

在步骤S101中,根据用户的K8S容器集群计算节点的扩容需求信息,在K8S容器集群正常工作的同时,创建所述K8S容器集群的初期基础资源;

在步骤S102中,判断所述K8S容器集群的初期基础资源创建是否完成,是则执行步骤S103,否则执行步骤S07;

在步骤S103中,当判定所述K8S容器集群的初期基础资源创建完成时,控制自动安装K8S容器集群以及创建K8S容器集群的剩余基础资源;

在步骤S104中,当所述K8S容器集群的自动安装以及剩余基础资源的创建完成后,控制进行K8S容器集群的计算节点的注册;

在步骤S105中,判断计算节点的注册是否完成,是则执行步骤S106,否则执行步骤S107;

在步骤S106中,当判定计算节点的注册完成时,确定所述K8S容器集群扩容成功;

在步骤S107中,当判定计算节点的注册失败时,或当判定所述K8S容器集群的初期基础资源创建失败时,则确定K8S容器集群扩容失败,并结束。

在该实施例中,在不影响K8S容器集群正常工作的前提下,自动完成容器集群计算节点的扩容,方便快捷,而且扩容的计算节点的数量可以根据实际的需求进行,在此不再赘述。

在本发明实施例中,在执行上述步骤S101之前还需要执行下述步骤:

(1)当K8S容器集群创建完成时,接收用户输入的K8S容器集群计算节点的扩容需求,其中,该接收用户输入的K8S容器集群计算节点的扩容需求的动作通过关系型数据库的中间件cetus实现,该关系型数据库的中间件cetus内置于开源的云计算管理平台项目OpenStack中,而且,Cetus是由C语言开发的关系型数据库MySQL的中间件,主要提供了一个全面的数据库访问代理功能。Cetus连接方式与MySQL基本兼容,应用程序几乎不用修改即可通过Cetus访问数据库,实现了数据库层的水平扩展和高可用,OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台;

(2)对接收到用户输入的K8S容器集群计算节点的扩容需求进行解析,获得K8S容器集群计算节点的扩容需求信息;

(3)依据K8S容器集群计算节点的扩容需求信息,调用编排服务组件接口Heat,其中,所述编排服务组件接口Heat用于创建K8S容器集群的初期基础资源,所述K8S容器集群的初期基础资源包括云主机、安全组以及云硬盘;

其中,调用编排服务组件接口Heat的步骤通过关系型数据库的中间件cetus实现。

在本发明实施例中,如图1所示的方案中,当判定所述K8S容器集群的初期基础资源创建失败时,或当判定所述计算节点的注册失败时,调用编排服务组件接口Heat自动删除已经创建完成的基础资源;自动删除已经创建的基础资源,不会产生遗留的垃圾资源,不影响K8S容器集群的正常工作。

在本发明实施例中,在进行计算节点扩容的同时,K8S容器集群处于正常的工作状态下,其中,该K8S容器集群的集群状态可以进行如下的设置,以便清楚知晓当前的状态:

在执行创建所述K8S容器集群的初期基础资源的步骤的同时,将所述K8S容器集群的集群状态由“可用”变更为“可用,扩容中”;

在当判定所述K8S容器集群的初期基础资源创建失败,或当判定所述计算节点的注册失败,调用编排服务组件接口Heat自动删除已经创建完成的基础资源的同时,将所述K8S容器集群的集群状态由“可用,扩容中”变更为“可用,扩容失败”;

在确定所述K8S容器集群扩容成功的同时,将所述K8S容器集群的集群状态由“可用,扩容中”变更为“可用,扩容成功”。

在本发明实施例中,在不影响集群对外服务的情况下,对容器集群Node节点进行扩容。集群扩容成功,内存等容量增大,客户可以继续安装、部署新的业务;由于网络、主机内存等外界因素,导致集群扩容失败时,自动调取Cetus、Heat相关接口,实现创建的云主机、云硬盘、安全组等初期基础资源的自动删除,不会产生遗留垃圾资源。

图2示出了本发明提供的基于K8S容器集群计算节点的扩容系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。

基于K8S容器集群计算节点的扩容系统包括:

初期基础资源创建模块11,用于根据用户的K8S容器集群计算节点的扩容需求信息,在K8S容器集群正常工作的同时,创建所述K8S容器集群的初期基础资源;

初期基础资源创建判断模块12,用于判断所述K8S容器集群的初期基础资源创建是否完成;

安装控制模块13,用于当判定所述K8S容器集群的初期基础资源创建完成时,控制自动安装K8S容器集群以及创建K8S容器集群的剩余基础资源;

计算节点注册模块14,用于当所述K8S容器集群的自动安装以及剩余基础资源的创建完成后,控制进行K8S容器集群的计算节点的注册;

计算节点注册判断模块15,用于判断所述计算节点的注册是否完成;

扩容成功确定模块16,用于当所述计算节点注册判断模块判断计算节点的注册完成时,确定所述K8S容器集群扩容成功;

扩容失败确定模块17,用于当判定所述K8S容器集群的初期基础资源创建失败,或当所述计算节点注册判断模块判断计算节点的注册失败时,则确定K8S容器集群扩容失败,并结束。

在该实施例中,所述系统还包括:

扩容需求接收模块18,用于当K8S容器集群创建完成时,接收用户输入的K8S容器集群计算节点的扩容需求;

扩容需求解析模块19,用于对接收到用户输入的K8S容器集群计算节点的扩容需求进行解析,获得K8S容器集群计算节点的扩容需求信息;

第一编排服务组件接口调用模块20,用于依据K8S容器集群计算节点的扩容需求信息,调用编排服务组件接口Heat,其中,所述编排服务组件接口Heat用于创建K8S容器集群的初期基础资源,所述K8S容器集群的初期基础资源包括云主机、安全组以及云硬盘。

在本发明实施例中,系统还包括:

第二编排服务组件接口调用模块21,用于当判定所述K8S容器集群的初期基础资源创建失败时,或当判定所述计算节点的注册失败时,调用编排服务组件接口Heat自动删除已经创建完成的基础资源。

在本发明实施例中,如图2所示,所述系统还包括:

集群状态更新模块22,用于在执行所述K8S容器集群计算节点的扩容过程中,对所述K8S容器集群的集群状态进行同步更新;

其中,所述集群状态更新模块22具体包括:

第一集群状态更新模块23,用于在执行创建所述K8S容器集群的初期基础资源的步骤的同时,将所述K8S容器集群的集群状态由“可用”变更为“可用,扩容中”;

第二集群状态更新模块24,用于在当判定所述K8S容器集群的初期基础资源创建失败,或当判定所述计算节点的注册失败,调用编排服务组件接口Heat自动删除已经创建完成的基础资源的同时,将所述K8S容器集群的集群状态由“可用,扩容中”变更为“可用,扩容失败”;

第三集群状态更新模块25,用于在确定所述K8S容器集群扩容成功的同时,将所述K8S容器集群的集群状态由“可用,扩容中”变更为“可用,扩容成功”。

在不影响K8S容器集群对外服务的情况下,对K8S容器集群进行扩容,带来的有益效果:

1、方便、快捷,客户在集群容量不能满足新增业务时,可以直接进行扩容,且不影响原有业务功能,扩容完成后,可以直接部署新业务;

2、完全实现了一键扩容的功能,即便对业务不熟悉的人员,也能做到成功扩容集群,节省时间以及人力;

3、可控,可以根据业务需要扩容一个或者多个Node节点,实现节点可控,节省经济成本;

4、在不影响K8S容器集群对外服务的情况下,对K8S容器集群进行扩容,由于网络、主机内存等外界因素,导致集群扩容失败时,自动调取Cetus、Heat相关接口,自动删除已创建成功的基础资源,不会产生遗留垃圾资源。

以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号