一种驱逐容器组的方法、系统及装置与流程

文档序号:22928298发布日期:2020-11-13 16:25阅读:99来源:国知局
一种驱逐容器组的方法、系统及装置与流程

本发明涉及集群容器组驱逐技术领域,尤其是一种驱逐容器组的方法、系统及装置。



背景技术:

在容器技术时代,大量的业务应用场景,通过kubernetes(一个用于容器集群的自动化部署、扩容以及运维的开源平台)容器编排技术上云。有时kubernetes集群下节点需要升级维护,如节点内核升级、硬件资源更换等操作,这些操作需要尽可能少的影响kubernetes集群上运行的业务,需要进行驱逐容器组操作。

kubernetes集群下的drain命令支持该操作场景,然而drain为底层命令,用户在进行相应操作时,需要调用底层命令,对用户的专业技能需求较高,通常不方便操作。



技术实现要素:

本发明提供了一种驱逐容器组的方法、系统及装置,用于解决客户自主进行驱逐容器组操作不容易实现的问题。

为实现上述目的,本发明采用下述技术方案:

本发明第一方面提供了一种驱逐容器组的方法,所述方法包括以下步骤:

获取容器组驱逐触发指令,关闭当前节点调度;

基于api接口,调用驱逐命令,采用多线程并发异步驱逐容器组。

进一步地,所述方法在获取驱逐指令之后,调用驱逐命令之前还包括步骤:

将当前节点下需迁移的容器组信息进行保存。

进一步地,所述方法在调用驱逐命令后,还包括步骤:

获取需迁移的容器组,并不断获取已迁移的容器组,计算驱逐进度,将所述驱逐进度进行页面显示。

进一步地,所述需迁移的容器组从保存的容器组信息中获取。

进一步地,所述不断获取已迁移的容器组,计算驱逐进度的具体过程为:

获取当前节点中处于停止状态的容器组;

通过表达式计算得到驱逐进度。

进一步地,所述方法在调用驱逐命令后,还包括显示容器组列表的步骤;所述容器组列表的初始列表中包括目标节点的所有容器组信息,随着驱逐的进行,将已经完成迁移的容器组从所述初始列表中删除。

本发明第二方面提供了一种驱逐容器组的系统,所述系统包括:

驱逐触发单元,用于获取容器组驱逐触发指令,关闭当前节点调度;

驱逐执行单元,基于api接口,调用驱逐命令,采用多线程并发异步驱逐容器组。

进一步地,所述系统还包括:

存储单元,用于保存需迁移的容器组信息;

显示单元,基于需迁移的容器组和已迁移的容器组,计算驱逐进度,并将所述驱逐进度进行页面显示。

本发明第三方面提供了一种驱逐容器组的装置,所述装置包括设置在业务端的驱逐触发模块,所述驱逐触发模块在接收到触发指令后,关闭当前节点调度,并基于api接口,调用驱逐命令,采用多线程并发异步驱逐容器组。

进一步地,所述装置还包括设置在业务端的存储模块和显示模块,所述存储模块用于保存当前节点需迁移的容器组信息;所述显示模块分别获取需迁移的容器组和已迁移的容器组,计算并显示驱逐进度。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

本发明面向用户设置驱逐容器组的触发指令,在获取到该指令后,通过api接口调用驱逐命令,并将驱逐进程进行页面显示,用户只需触发当前节点的驱逐指令即可实现驱逐容器组操作,不需要用户具备专业技能,操作便捷。且其具体的迁移过程和驱逐进度进行了页面显示,解决现有驱逐过程不可视的问题,便于用户了解驱逐进程。

附图说明

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

图1是本发明所述方法的流程示意图;

图2是本发明所述方法其一实施例的流程示意图;

图3是本发明所述系统的结构示意图;

图4是本发明所述装置的工作原理示意图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

如图1所示,一种驱逐容器组的方法,包括以下步骤:

s1,获取容器组驱逐触发指令,关闭当前节点调度;

s2,基于api接口,调用驱逐命令,采用多线程并发异步驱逐容器组。

步骤s1中,驱逐触发指令是针对某一业务节点的,在接收到驱逐触发指令后,首先判断集群中当前节点调度是否关闭,若未关闭,则调用kubernetes集群提供api关闭集群当前节点调度,否则会造成驱逐失败。

步骤s2中,驱逐是基于底层kubernetes集群上层的操作,驱逐命令对接kubernetes集群提供的api,迁移功能收到api的调用后进行。在调用驱逐命令后,当前节点内需迁移的容器组通过多线程并发异步驱逐至其他业务节点。

如图2所示,本实施例中的方法在获取驱逐指令之后,调用驱逐命令之前还包括步骤:s12,将当前节点下需迁移的容器组信息进行保存;在调用驱逐命令后,还包括步骤:s3,获取需迁移的容器组,并不断获取已迁移的容器组,计算驱逐进度,将所述驱逐进度进行页面显示。其中需迁移的容器组从保存的容器组信息中获取。

步骤s12中的容器组信息包括容器组和名称和时间戳,时间戳是表征容器组身份的唯一识别信息。

步骤s3中,不断获取已迁移的容器组,计算驱逐进度的具体过程为:获取当前节点中处于停止状态的容器组;通过表达式计算得到驱逐进度。在驱逐过程中,被迁移的容器组会处于停止(terminating)状态,在迁移完成后,会改变该状态,因此通过获取当前节点处于停止状态的容器组可计算已迁移的容器组,从而计算驱逐进度。

在上述实施例的基础上,本实施例在调用驱逐命令后,还包括显示容器组列表的步骤。容器组列表的初始列表中包括目标节点的所有容器组信息,随着驱逐的进行,将已经完成迁移的容器组从所述初始列表中删除,待驱逐过程结束后,容器组列表中仅剩下当前节点无需迁移的容器组,便于用户对容器组的迁移过程及各容器组迁移属性的进一步了解。

如图3所示,本发明一种驱逐容器组的系统,包括驱逐触发单元1、存储单元2、驱逐执行单元3和显示单元4。

驱逐触发单元1用于获取容器组驱逐触发指令,关闭当前节点调度;存储单元2用于保存需迁移的容器组信息;驱逐执行单元3基于api接口,调用驱逐命令,采用多线程并发异步驱逐容器组;显示单元4基于需迁移的容器组和已迁移的容器组,计算驱逐进度,并将所述驱逐进度进行页面显示。

本实施例的驱逐容器组系统能够实现上述驱逐容器组方法的步骤,并得到相同的效果。

如图4所示,本发明一种驱逐容器组的装置,该装置包括设置在业务端的驱逐触发模块、存储模块和显示模块。驱逐触发模块在接收到用户的触发指令后,关闭当前节点调度,通过应用接口层、api接口向集群管理端下发驱逐命令。

存储模块在接收到触发指令后,下发驱逐命令前,将当前节点需迁移的容器组信息进行保存,其中保存的容器组信息内容较少,包括容器组名称和表征容器组唯一身份的时间戳。

集群管理端通过api接口接收到驱逐命令后,通过etcd存储当前节点下所有的容器组资源信息,包括需迁移的容器组和不需迁移的容器组,其中存储的容器组资源信息内容较多,如容器组的名称、时间戳、镜像、组件参数等。

显示模块计算并显示驱逐进度。其中驱逐进度的计算需要获取需迁移的容器组和已迁移的容器组,分别通过存储模块和etcd获取。

显示模块还同时显示容器组列表,该容器组列表中信息通过etcd获取,在驱动命令下发前,首先通过etcd获取当前节点所有容器组信息,在驱逐过程中,通过etcd不断查询已迁移的容器组,并将已迁移的容器组从容器组列表中删除。

上述实施例的实现过程是基于kubernates集群描述的,但并不限于该集群。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

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