掌桥专利:专业的专利平台
掌桥专利
首页

一种云平台的节点扩容方法及装置

文献发布时间:2023-06-19 18:35:48


一种云平台的节点扩容方法及装置

技术领域

本发明涉及云平台技术领域,尤其涉及一种云平台的节点扩容方法、一种云平台的节点扩容装置,以及一种计算机可读存储介质。

背景技术

Kubernetes简称K8s,是谷歌(Google)开源的一个容器编排引擎,用于管理云平台中多个主机上的容器化应用。Kubernetes的目标在于让部署容器化的应用简单并且高效,提供了应用部署、规划、更新、维护的一种机制。在Kubernetes的日常应用中,当搭载的项目随时间推移而越来越多,其需要的资源随之增多,因此不可避免地存在扩容增加节点的需求。

现有的K8s节点扩容方案需要技术人员人工登录云厂商后台购买云服务器,再手动输入基础服务器初始化命令,并手动输入加入容器编排集群的基础建设命令,以部署各种容器编排服务节点需要的各种组件。由于Kubernetes涉及多种不同的容器编排服务节点,而且整个扩容流程涉及大量的配置命令,这种人工扩容节点的方案不仅需要花费大量的人工时间,还存在遗漏及输入错误配置命令等潜在问题,导致当前的节点扩容效率非常低下。

为了克服现有技术存在的上述缺陷,本领域亟需一种自动扩容云服务器节点的技术,用于自动完成云服务器节点的扩容流程以提升节点扩容效率,并省去技术人员人工输入大量基础服务器初始化命令及基础建设命令的麻烦。

发明内容

以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之前序。

为了克服现有技术存在的上述缺陷,本发明提供了一种云平台的节点扩容方法、一种云平台的节点扩容装置,以及一种计算机可读存储介质,能够自动完成云服务器节点的扩容流程以提升节点扩容效率,并省去技术人员人工输入大量基础服务器初始化命令及基础建设命令的麻烦。

具体来说,本发明的第一方面提供的上述云平台的节点扩容方法包括以下步骤:调用云厂商提供的API接口,以购买待扩容节点所需的云服务器;对购买的云服务器进行磁盘分区、格式化及挂载;在所述云服务器上部署所述待扩容节点所需的组件;以及将所述云服务器作为扩容的节点加入所述云平台的集群。通过执行这些步骤,该节点扩容方法能够自动完成云服务器节点的扩容流程以提升节点扩容效率,并省去技术人员人工输入大量基础服务器初始化命令及基础建设命令的麻烦。

本发明的第二方面提供的上述云平台的节点扩容装置包括存储器及处理器。所述处理器连接所述存储器,并被配置用于实施本发明的第一方面提供的上述云平台的节点扩容方法。通过实施该节点扩容方法,该节点扩容装置能够自动完成云服务器节点的扩容流程以提升节点扩容效率,并省去技术人员人工输入大量基础服务器初始化命令及基础建设命令的麻烦。

本发明的第三方面提供的上述计算机可读存储介质,其上存储有计算机指令。所述计算机指令被处理器执行时,实施本发明的第一方面提供的上述云平台的节点扩容方法。通过实施该节点扩容方法,该计算机可读存储介质能够自动完成云服务器节点的扩容流程以提升节点扩容效率,并省去技术人员人工输入大量基础服务器初始化命令及基础建设命令的麻烦。

附图说明

在结合以下附图阅读本公开的实施例的详细描述之后,能够更好地理解本发明的上述特征和优点。在附图中,各组件不一定是按比例绘制,并且具有类似的相关特性或特征的组件可能具有相同或相近的附图标记。

图1示出了根据本发明的一些实施例提供的云平台节点扩容方法的流程示意图。

图2示出了根据本发明的一些实施例提供的调用云厂商API购买云服务器的流程示意图。

图3示出了根据本发明的一些实施例提供的进行磁盘分区、格式化及挂载的流程示意图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合优选实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

另外,在以下的说明中所使用的“上”、“下”、“左”、“右”、“顶”、“底”、“水平”、“垂直”应被理解为该段以及相关附图中所绘示的方位。此相对性的用语仅是为了方便说明之用,其并不代表其所叙述的装置需以特定方位来制造或运作,因此不应理解为对本发明的限制。

能理解的是,虽然在此可使用用语“第一”、“第二”、“第三”等来叙述各种组件、区域、层和/或部分,这些组件、区域、层和/或部分不应被这些用语限定,且这些用语仅是用来区别不同的组件、区域、层和/或部分。因此,以下讨论的第一组件、区域、层和/或部分可在不偏离本发明一些实施例的情况下被称为第二组件、区域、层和/或部分。

如上所述,现有的K8s节点扩容方案需要技术人员人工登录云厂商后台购买云服务器,再手动输入基础服务器初始化命令,并手动输入加入容器编排集群的基础建设命令,以部署各种容器编排服务节点需要的各种组件。由于Kubernetes涉及多种不同的容器编排服务节点,而且整个扩容流程涉及大量的配置命令,这种人工扩容节点的方案不仅需要花费大量的人工时间,还存在遗漏及输入错误配置命令等潜在问题,导致当前的节点扩容效率非常低下。

为了克服现有技术存在的上述缺陷,本发明提供了一种云平台的节点扩容方法、一种云平台的节点扩容装置,以及一种计算机可读存储介质,能够自动完成云服务器节点的扩容流程以提升节点扩容效率,并省去技术人员人工输入大量基础服务器初始化命令及基础建设命令的麻烦。

在一些非限制性的实施例中,本发明的第一方面提供的上述云平台的节点扩容方法可以由本发明的第二方面提供的上述云平台的节点扩容装置来实施。具体来说,该节点扩容装置配置有存储器及处理器。该存储器包括但不限于本发明的第三方面提供的上述计算机可读存储介质,其上存储有计算机指令。该处理器连接该存储器,被配置用于执行该存储器上存储的计算机指令,以实施本发明的第一方面提供的上述云平台的节点扩容方法。

以下将结合一些节点扩容方法来描述上述节点扩容装置的工作原理。本领域的技术人员可以理解,这些节点扩容方法只是本发明提供的一些非限制性的实施方式,旨在清楚地展示本发明的主要构思,并提供一些便于公众实施的具体方案,而非用于限制上述节点扩容装置的全部工作方式或全部功能。同样地,该节点扩容装置也只是本发明提供的一些非限制性的实施方式,不对这些节点扩容方法中各步骤的执行主体构成限制。

在本发明的一些实施例中,Kubernetes(以下简称K8s)等云平台的开发人员可以预先采用python等计算机编程语言编写云平台的节点扩容脚本,并针对每种待扩容节点编写对应的配置文件以描述该待扩容节点所需的云服务器及各种组件。之后,响应于K8s平台存在扩容增加节点的需求,节点扩容装置可以自动执行该节点扩容脚本,并利用该配置文件来完成云服务器节点的扩容流程。

请参考图1,图1示出了根据本发明的一些实施例提供的云平台节点扩容方法的流程示意图。

在图1所示的实施例中,响应于K8s平台存在扩容增加节点的需求,节点扩容装置将首先执行节点扩容脚本的指令,调用云厂商提供的应用编程接口(ApplicationProgramming Interface,API),以购买待扩容节点所需的云服务器。

具体来说,请参考图2。图2示出了根据本发明的一些实施例提供的调用云厂商API购买云服务器的流程示意图。

如图2所示,响应于K8s平台存在扩容增加节点的需求,节点扩容装置可以首先通过显示屏、扬声器等人机输出接口,要求用户通过键盘、勾选窗口麦克风等人机输入接口输入待扩容节点的需求信息。该需求信息包括但不限于指示云服务器((Elastic ComputeService,ECS)产品实例规格的规格参数InstanceType、指示ECS实例所处地域的地域信息RegionId,以及指示ECS实例所使用的系统镜像的系统镜像信息ImageId中的任意一者或多者。

本领域的技术人员可以理解,上述经由人机接口获取待扩容节点的各种需求信息的方案,只是本发明提供的一种非限制性的实施方式,旨在清楚地展示本发明的主要构思,并提供一种便于公众实施的具体方案,而非用于限制本发明的保护范围。可选地,在另一些实施例中,节点扩容装置还可以经由通信接口,直接从K8s平台获取待扩容节点的需求信息,以进一步提升节点扩容的效率,并进一步省去技术人员人工输入待扩容节点需求信息的麻烦。

在获取待扩容节点的需求信息之后,节点扩容装置将使用预先在用户账户创建的AK/SK进行认证授权,以调用云厂商提供的API接口,从而登录云厂商提供的供应端后台,并在该供应端后台根据获取的需求信息筛选对应的云服务器。例如,节点扩容装置可以根据上述规格参数InstanceType,在云厂商的供应端后台筛选具有对应实例规格的云服务器。又例如,节点扩容装置可以根据上述地域信息RegionId,在云厂商的供应端后台筛选处于对应地域的云服务器。又例如,节点扩容装置可以根据上述系统镜像信息ImageId,在云厂商的供应端后台筛选支持对应系统镜像的云服务器。

在一些实施例中,节点扩容装置可以根据上述规格参数InstanceType、地域信息RegionId及系统镜像信息ImageId,在云厂商的供应端后台筛选具有对应实例规格、处于对应地域,并支持对应系统镜像的云服务器。之后,节点扩容装置可以使用从用户账户调用的AK/SK来进行购买操作的认证授权,并利用生成的授权指令自动在该供应端后台购买筛选获得的云服务器。

通过执行上述自动购买云服务器的步骤,该方案能够利用预先编写的脚本程序、预先配置的API接口及预先创建的AK/SK,自动完成云服务器的购买流程,从而提升购买云服务器的效率、降低对技术人员专业素质的要求、避免购买错误云服务器的可能,并省去技术人员到云厂商后台人工查询并选择合适云服务器的麻烦。

在一些实施例中,在完成自动购买云服务器的操作后,节点扩容装置还可以根据待扩容节点的隶属关系,经由安全组信息SecurityGroupId的栏目设置购买的云服务器实例所属的安全组。此外,节点扩容装置还可以经由实例名称InstanceName的栏目为购买的云服务器设置实例名称。

如图1所示,在完成自动购买云服务器的操作后,节点扩容装置将继续执行节点扩容脚本的指令,对购买的云服务器进行磁盘分区、格式化及挂载。

具体来说,请参考图3。图3示出了根据本发明的一些实施例提供的进行磁盘分区、格式化及挂载的流程示意图。

如图3所示,响应于从云厂商的供应端后台购买获得待扩容节点需要的云服务器,节点扩容装置可以首先根据购买的云服务器的规格参数InstanceType、地域信息RegionId和/或系统镜像信息ImageId,判断当前的K8s集群中是否存在充足的可挂载磁盘。

例如,节点扩容装置可以根据购买的云服务器的规格参数InstanceType确定其需要的磁盘大小,再读取当前K8s集群中配置的各云磁盘的磁盘容量参数Size,以判断当前的K8s集群中是否存在充足的云磁盘。

又例如,节点扩容装置可以首先根据购买的云服务器的地域信息RegionId确定该云服务器所处的地域,再读取当前K8s集群中配置的各云磁盘的地域信息RegionId或指定地域信息ZoneId,以筛选处于同一地域的云磁盘。之后,节点扩容装置可以再根据购买的云服务器的规格参数InstanceType确定其需要的磁盘大小,再读取当前K8s集群中配置于同一地域的云磁盘的磁盘容量参数Size,以判断当前的K8s集群在该地域中是否存在充足的云磁盘。在一些实施例中,上述地域信息RegionId及上述指定地域信息ZoneId记载的数据可以为杭州、上海等城市名称信息,从而以城市为单位区分地域。

又例如,节点扩容装置可以首先根据购买的云服务器的地域信息RegionId,以及当前K8s集群中配置的各云磁盘的地域信息RegionId或指定地域信息ZoneId,筛选与该云服务器处于同一地域的云磁盘。之后,节点扩容装置可以根据购买的云服务器的系统镜像信息ImageId,筛选支持相同系统镜像的云磁盘。再之后,节点扩容装置可以根据购买的云服务器的规格参数InstanceType确定其需要的磁盘大小,再读取当前K8s集群中配置于同一地域并支持相同系统镜像的云磁盘的磁盘容量参数Size,以判断当前的K8s集群在该地域中是否存在充足的能够支持相同系统镜像的云磁盘。

如图3所示,若判断结果指示当前的K8s集群中不存在充足的可挂载磁盘,则节点扩容装置可以进一步调用云厂商提供的API接口,以购买该云服务器所需的云磁盘。

具体来说,节点扩容装置可以首先解析获取购买的云服务器的规格参数InstanceType,以确定该云服务器的实例规格,进而确定其需要的磁盘大小。此外,节点扩容装置还可以解析获取购买的云服务器的地域信息RegionId,以确定该云服务器所处的地域(例如:杭州、上海等)。此外,节点扩容装置还可以解析获取购买的云服务器的系统镜像信息ImageId,以确定该云服务器使用的系统镜像(例如CentOS7.9)。进一步地,节点扩容装置还可以如上所述地通过人机接口和/或通信接口,获取所需磁盘的磁盘类型参数DiskCategory,以确定需要购买的云磁盘的类型(例如:普通云盘或SSD云盘)。

之后,节点扩容装置可以如上所述地使用预先在用户账户创建的AK/SK进行认证授权,以调用云厂商提供的API接口,从而登录云厂商提供的供应端后台,并在该供应端后台根据上述规格参数InstanceType、地域信息RegionId、系统镜像信息ImageId和/或磁盘类型参数DiskCategory,筛选支持对应实例规格、处于对应地域、支持对应系统镜像和/或属于对应类型的云磁盘。再之后,节点扩容装置可以如上所述地使用从用户账户调用的AK/SK来进行购买操作的认证授权,并利用生成的授权指令自动在该供应端后台购买筛选获得的云磁盘。

通过执行上述自动购买云磁盘的步骤,该方案能够利用预先编写的脚本程序、预先配置的API接口及预先创建的AK/SK,自动完成云磁盘的购买流程,从而自动为云服务器配置充足的可挂载磁盘、提升购买云磁盘的效率、降低对技术人员专业素质的要求、避免购买错误云磁盘的可能,并省去技术人员到云厂商后台人工查询并选择合适云磁盘的麻烦。

在一些实施例中,在完成自动购买云磁盘的操作后,节点扩容装置还可以经由磁盘名称DiskName的栏目为购买的云磁盘设置磁盘名称。

如图3所示,若判断结果指示当前的K8s集群中存在充足的可挂载磁盘,则节点扩容装置可以根据云服务器的规格参数InstanceType、地域信息RegionId和/或系统镜像信息ImageId对可挂载磁盘进行分区及格式化,并将经过分区及格式化的可挂载磁盘挂载到该云服务器

具体来说,在一些实施例中,在对可挂载的云磁盘进行分区时,节点扩容装置可以根据云服务器的地域信息RegionId和/或系统镜像信息ImageId,选择与云服务器处于同一地域和/或支持相同系统镜像的云磁盘,并根据规格参数InstanceType指示的磁盘大小对该云磁盘进行分区。

在一些实施例中,在对可挂载的云磁盘进行格式化时,节点扩容装置可以根据节点扩容脚本的指令,调用mkfs.ext4命令或mkfs.xfs命令将可挂载的云磁盘格式化成ext4格式或xfs格式的磁盘。

在一些实施例中,在将经过分区及格式化的可挂载磁盘挂载到云服务器时,节点扩容装置可以调用mount命令来挂载磁盘并修改fstab文件。之后,节点扩容装置可以重启云服务器,以自动将可挂载磁盘挂载到该云服务器。

通过执行上述自动分区、自动格式化及自动挂载磁盘的步骤,该方案能够利用预先编写的脚本程序,根据购买的云服务器的规格参数InstanceType、地域信息RegionId和/或系统镜像信息ImageId,自动完成磁盘分区、磁盘格式化及磁盘挂载的流程,从而提升磁盘分区、磁盘格式化及磁盘挂载的效率、降低对技术人员专业素质的要求、避免输入错误命令的可能,并省去技术人员手动选择可挂载磁盘、手动设置分区大小、手动选择格式化格式,以及手动挂载并重启云服务器的麻烦。

如图1所示,在完成磁盘的分区、格式化及挂载操作后,节点扩容装置将继续执行节点扩容脚本的指令,在云服务器上部署待扩容节点所需的组件。

如上所述,Kubernetes涉及多种不同的容器编排服务节点,每种容器编排服务节点又涉及多种不同的组件组合。因此,云平台的开发人员可以预先针对每种待扩容节点编写对应的配置文件,以描述该待扩容节点所需的云服务器及各种组件。如此,节点扩容装置即可根据待扩容节点的索引信息检索配置文件,以确定该待扩容节点所需的各种组件。

在一些实施例中,在完成磁盘的分区、格式化及挂载操作后,节点扩容装置可以优选地通过显示屏等人机输出接口向用户显示“一键部署”的触发按钮。响应于用户点击该触发按钮的触发指令,节点扩容装置可以首先根据预先编写的配置文件确定待扩容节点对应的多个组件,再执行节点扩容脚本的指令自动将确定的多个组件部署到云服务器上,以完成一键部署K8s节点组件的流程。

通过执行上述自动部署K8s节点组件的步骤,该方案能够利用预先编写的脚本程序,根据预先编写的配置文件确定待扩容节点所需的多个组件,以自动完成部署K8s节点组件的流程,从而提升部署节点组件的效率、降低对技术人员专业素质的要求、避免部署错误组件的可能,并省去技术人员手动选择节点组件的麻烦。

如图1所示,在完成K8s节点组件的部署操作后,节点扩容装置将继续执行节点扩容脚本的指令,将云服务器作为扩容的节点加入K8s云平台的集群。

具体来说,在一些实施例中,Kubernetes云平台的开发人员可以预先为节点扩容装置创建长期信令(token),以授权对应的节点扩容装置为Kubernetes云平台扩容节点。该长期信令的有效期一般被设置为长期有效、一个月以上,或一年以上。之后,响应于多个K8s节点组件被部署到待扩容的云服务器上,节点扩容装置可以调用该预先创建的长期信令向K8s云平台的API接口提交加入请求,并在K8s云平台完成信令认证后,将该云服务器作为扩容的节点加入该K8s云平台的集群。

相比于现有技术需要针对每次加入节点请求,单独创建有效期在24小时以内的临时信令的传统方案,该创建并采用长期信令的方案能够进一步提升将云服务器作为扩容节点加入K8s云平台集群的效率,并省去技术人员手动创建临时信令的麻烦。

基于以上描述,本发明提供了一种云平台的节点扩容方法、一种云平台的节点扩容装置,以及一种计算机可读存储介质,能够自动完成云服务器节点的扩容流程以提升节点扩容效率,并省去技术人员人工输入大量基础服务器初始化命令及基础建设命令的麻烦。

尽管为使解释简单化将上述方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述或本文中未图示和描述但本领域技术人员可以理解的其他动作并发地发生。

本领域技术人员将可理解,信息、信号和数据可使用各种不同技术和技艺中的任何技术和技艺来表示。例如,以上描述通篇引述的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光学粒子、或其任何组合来表示。

本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体系统的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。

尽管上述的实施例所述的节点扩容装置是可以通过软件与硬件的组合来实现的。但是可以理解,该节点扩容装置也可单独在软件或硬件中加以实施。对于硬件实施而言,该节点扩容装置可在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、用于执行上述功能的其它电子装置或上述装置的选择组合来加以实施。对软件实施而言,该节点扩容装置可通过在通用芯片上运行的诸如程序模块(procedures)和函数模块(functions)等独立的软件模块来加以实施,其中每一个模块执行一个或多个本文中描述的功能和操作。

结合本文所公开的实施例描述的各种解说性逻辑模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。

提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。

技术分类

06120115627090