CN113296870B - 预测Kubernetes集群配置的方法以及装置 - Google Patents

预测Kubernetes集群配置的方法以及装置 Download PDF

Info

Publication number
CN113296870B
CN113296870B CN202010266152.1A CN202010266152A CN113296870B CN 113296870 B CN113296870 B CN 113296870B CN 202010266152 A CN202010266152 A CN 202010266152A CN 113296870 B CN113296870 B CN 113296870B
Authority
CN
China
Prior art keywords
node
working
pod
resources required
virtual machine
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.)
Active
Application number
CN202010266152.1A
Other languages
English (en)
Other versions
CN113296870A (zh
Inventor
顾静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010266152.1A priority Critical patent/CN113296870B/zh
Publication of CN113296870A publication Critical patent/CN113296870A/zh
Application granted granted Critical
Publication of CN113296870B publication Critical patent/CN113296870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Abstract

本说明书实施例提供预测Kubernetes集群配置的方法以及装置,其中所述Kubernetes集群包括主节点以及工作节点,所述方法包括:根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量;将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源;其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合;根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。

Description

预测Kubernetes集群配置的方法以及装置
技术领域
本说明书实施例涉及分布式系统技术领域,特别涉及一种预测Kubernetes集群配置的方法。本说明书一个或者多个实施例同时涉及一种预测Kubernetes集群配置的装置,计算设备,以及计算机可读存储介质。
背景技术
随着云计算技术的成熟,越来越多的用户选择将工作部署到公有云上以减少研发运维成本。Kubernetes是一个成熟的容器服务编排框架,为容器提供了全生命周期管理,是上云的主要载体,可以自动部署、管理容器应用程序,支持容器弹性伸。因Kubernetes的高可用性、弹性伸缩能力强等原因,Kubernetes成为企业上云的不二选择。
但是,由于虚拟机类型多种多样,用户需要运行的工作类型复杂多样,如何配置Kubernetes集群能满足用户需要,成为了困扰用户的难题。
发明内容
有鉴于此,本说明书施例提供了一种预测Kubernetes集群配置的方法。本说明书一个或者多个实施例同时涉及一种预测Kubernetes集群配置的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种预测Kubernetes集群配置的方法,所述Kubernetes集群包括主节点以及工作节点,所述方法包括:根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量;将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源;其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合;根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
可选地,所述方法还包括:根据各种虚拟机类型分别对应的推荐权重以及所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量,计算出所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量的推荐分数;根据各种虚拟机类型分别对应的推荐权重以及所述满足工作节点所需资源的虚拟机类型及对应的工作节点数量,计算出所述满足工作节点所需资源的虚拟机类型对应的虚拟机数量的推荐分数;筛选出所述推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量;将筛选出的虚拟机类型及对应的虚拟机数量推荐给所述用户。
可选地,所述根据用户为所述工作节点输入的Pod数量及Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量包括:接收用户为所述工作节点输入的Pod数量及Pod配置;根据所述工作节点所需资源与Pod占用资源率之积等于所述Pod配置下的单个Pod消耗的资源与所述Pod数量之积,计算出所述工作节点所需资源,其中,所述Pod占用资源率等于节点资源利用率与系统进程资源利用率之差;根据各种虚拟机类型所能提供的资源,列举出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
可选地,所述方法还包括:接收用户输入的节点资源利用率。
可选地,所述将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源包括:将所述工作节点数量及所述Pod数量输入预先经过训练的APIServer性能模型,预测出所述主节点的APIServer组件所需资源;将所述工作节点数量及所述Pod数量输入预先经过训练的ETCD性能模型,预测出所述主节点的ETCD组件所需资源;所述根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量包括:根据所述主节点的APIServer组件所需资源与所述主节点的ETCD组件所需资源,得到所述主节点所需总资源;根据各种虚拟机类型所能提供的资源,计算出满足所述主节点所需总资源的虚拟机类型以及对应的虚拟机数量。
可选地,所述方法还包括:控制Kubernetes集群分别在多种工作节点配置下执行预设多种操作,所述工作节点配置包括工作节点数量配置以及工作节点上Pod数量配置;分别针对多种工作节点配置,采集所述Kubernetes集群的工作节点处于所针对的工作节点配置下执行预设多种操作时所述预设组件在所述预设多种操作中的资源消耗最大值;将所述多种工作节点配置中所采用的工作节点数量以及Pod数量作为输入样本,将对应所述多种工作节点配置分别采集到的资源消耗最大值作为输出样本,对采用机器学习算法的性能模型进行训练,得到经过训练的性能模型。
可选地,所述采用机器学习算法的性能模型包括:线性回归模型、SVM回归模型、随机森林回归模型或XGBoost回归模型中的任一种回归模型。
根据本说明书实施例的第二方面,提供了一种预测Kubernetes集群配置的装置,所述Kubernetes集群包括主节点以及工作节点,所述装置包括:工作节点计算模块,被配置为根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。模型预测模块,被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源。其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合。主节点计算模块,被配置为根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
可选地,所述装置还包括:主节点推荐分数计算模块,被配置为根据各种虚拟机类型分别对应的推荐权重以及所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量,计算出所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量的推荐分数。工作节点推荐分数计算模块,被配置为根据各种虚拟机类型分别对应的推荐权重以及所述满足工作节点所需资源的虚拟机类型及对应的工作节点数量,计算出所述满足工作节点所需资源的虚拟机类型对应的虚拟机数量的推荐分数。筛选模块,被配置为筛选出所述推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量。推荐模块,被配置为将筛选出的虚拟机类型及对应的虚拟机数量推荐给所述用户。
可选地,所述工作节点计算模块包括:接收子模块,被配置为接收用户为所述工作节点输入的Pod数量及Pod配置。资源计算子模块,被配置为根据所述工作节点所需资源与Pod占用资源率之积等于所述Pod配置下的单个Pod消耗的资源与所述Pod数量之积,计算出所述工作节点所需资源,其中,所述Pod占用资源率等于节点资源利用率与系统进程资源利用率之差。工作节点列举子模块,被配置为根据各种虚拟机类型所能提供的资源,列举出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
可选地,所述接收子模块,还被配置为接收用户输入的节点资源利用率。
可选地,所述模型预测模块包括:APIServer预测子模块,被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的APIServer性能模型,预测出所述主节点的APIServer组件所需资源。ETCD预测子模块,被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的ETCD性能模型,预测出所述主节点的ETCD组件所需资源。所述主节点计算模块包括:总资源计算子模块,被配置为根据所述主节点的APIServer组件所需资源与所述主节点的ETCD组件所需资源,得到所述主节点所需总资源。主节点配置计算子模块,被配置为根据各种虚拟机类型所能提供的资源,计算出满足所述主节点所需总资源的虚拟机类型以及对应的虚拟机数量。
可选地,所述装置还包括:控制模块,被配置为控制Kubernetes集群分别在多种工作节点配置下执行预设多种操作,所述工作节点配置包括工作节点数量配置以及工作节点上Pod数量配置。采集模块,被配置为分别针对多种工作节点配置,采集所述Kubernetes集群的工作节点处于所针对的工作节点配置下执行预设多种操作时所述预设组件在所述预设多种操作中的资源消耗最大值。训练模块,被配置为将所述多种工作节点配置中所采用的工作节点数量以及Pod数量作为输入样本,将对应所述多种工作节点配置分别采集到的资源消耗最大值作为输出样本,对采用机器学习算法的性能模型进行训练,得到经过训练的性能模型。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量;将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源;其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合;根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意一实施例所述预测Kubernetes集群配置的方法的步骤。
本说明书的一个实施例提供了预测Kubernetes集群配置的方法,该方法根据用户为Kubernetes集群工作节点输入的Pod数量及Pod配置,计算出满足工作节点所需资源的虚拟机类型及对应的工作节点数量,将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,由于性能模型用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合,因此,能够保证性能模型预测出的资源量满足预设多种操作中的任意操作,进而根据不同虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。可见,该方法根据用户输入的Pod数量及配置即可帮助用户预测出满足工作节点所需资源的虚拟机类型及对应的工作节点数量即虚拟机数量,以及,满足主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量,不受用户工作类型限制,通用性强,降低了用户配置Kubernetes集群的难度。
附图说明
图1是本说明书一个实施例提供的一种预测Kubernetes集群配置的方法的流程图;
图2是本说明书一个实施例提供的Kubernetes集群架构示意图;
图3是本说明书一个实施例提供的一种预测Kubernetes集群配置的方法的算法框架图;
图4是本说明书一个实施例提供的一种预测Kubernetes集群配置的方法的处理过程流程图;
图5a是本说明书一个实施例提供的各种虚拟机类型对应的资源示意图;
图5b是本说明书一个实施例提供的主节点所需总资源的示意图;
图5c是本说明书一个实施例提供的满足主节点所需总资源的虚拟机类型示意图;
图6是本说明书一个实施例提供的一种预测Kubernetes集群配置的装置的结构示意图;
图7是本说明书另一个实施例提供的一种预测Kubernetes集群配置的装置的结构示意图;
图8是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本说明书中,提供了一种预测Kubernetes集群配置的方法,本说明书同时涉及一种预测Kubernetes集群配置的装置,计算设备,以及计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种预测Kubernetes集群配置的方法的流程图,包括步骤102至步骤106。
步骤102:根据用户为工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
例如,如图2所示Kubernetes集群架构示意图,Kubernetes集群包括一个或多个主节点以及一个或多个工作节点。主节点,用于部署Controller Pods,如APIServer、Scheduler、ETCD等。工作节点,用于部署用户的工作Pod。
用户可以在云平台用于提供云服务的页面上输入用户计划部署的Pod数量以及Pod配置。应用了本说明书实施例提供的方法的云平台响应于用户的输入,获取用户输入的Pod数量以及Pod配置作为工作节点的Pod数量、Pod配置。其中,Pod配置包括CPU大小的配置、Memory大小的配置等。
可以理解的是,在工作节点上Pod数量、Pod配置确定的情况下,可以计算出工作节点所需资源,进而查找出满足工作节点所需资源的虚拟机类型及对应的工作节点数量。本说明书实施例对计算工作节点所需资源的具体方式不限,可以根据实施场景需要设置。例如,可以根据工作节点所需资源以及各种虚拟机类型所能提供的资源,穷举出满足工作节点所需资源的虚拟机类型及对应的工作节点数量。
步骤104:将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源。
其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合。
例如,在预先训练性能模型时,采用的输入样本数据可以包括多种工作节点配置所采用的工作节点数量以及Pod数量,输出样本数据可以包括Kubernetes集群的工作节点处于上述工作节点配置下时所述预设组件在预设多种操作中的资源消耗最大值。
其中,所述预设组件可以是主节点的任意组件。例如,可以是APIServer、Scheduler、ETCD等中的任一个或多个组件。由于生产环境中的Kubernetes集群是一个动态集群。为满足生产运维需求,常常需要对集群进行一些操作如添加node,创建pod,查看pod列表等,这些操作会引入资源消耗。为了模拟动态环境下集群资源消耗情况,定义了一组常见集群操作集合作为预设多种操作。例如,所述预设多种操作可以是包括创建Pod、删除Pod、查询Pod、创建Worker、删除Worker等常见操作的集合。
步骤106:根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
例如,可以根据主节点的预设组件所需资源以及各种虚拟机类型所能提供的资源,穷举出满足主节点的预设组件所需资源的虚拟机类型及对应的工作节点数量。
可见,该方法根据用户输入的Pod数量及配置即可帮助用户预测出满足工作节点所需资源的虚拟机类型及对应的工作节点数量,以及,满足主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量,也即预测出了满足用户需要的虚拟机类型以及对应的虚拟机数量,不受用户工作类型限制,通用性强,降低了用户配置Kubernetes集群的难度。
本说明书一个或多个实施例中,为了构建性能模型,可以模拟不同工作节点数量、Pod配置下预设组件的资源消耗情况,收集样本数据,训练性能模型。具体地,所述方法可以通过以下步骤得到经过训练的性能模型:
控制Kubernetes集群分别在多种工作节点配置下执行预设多种操作,所述工作节点配置包括工作节点数量配置以及工作节点上Pod数量配置;所述多种工作节点配置之间可以是工作节点数量不同和/或工作节点上Pod数量不同;
分别针对多种工作节点配置,采集所述Kubernetes集群的工作节点处于所针对的工作节点配置下执行预设多种操作时所述预设组件在所述预设多种操作中的资源消耗最大值;
将所述多种工作节点配置中所采用的工作节点数量以及Pod数量作为输入样本,将对应所述多种工作节点配置分别采集到的资源消耗最大值作为输出样本,对采用机器学习算法的性能模型进行训练,得到经过训练的性能模型。
根据上述步骤,性能模型的表达式如下:
预设组件_Resource=Performance_Model(Worker_Number,Pod_Number,Actions)
其中,预设组件_Resource,表示预设组件在预设多种操作中的资源消耗最大值,Worker_Number,表示工作节点数量,Pod_Number表示Pod数量,Actions,表示预设多种操作。Performance_Model的表达可以依据具体采用的机器学习算法来设置。
例如,机器学习算法以XGBoost回归算法为例,Performance_Model可以表示为:XGBoost(Worker_Number,Pod_Number,Actions)。具体地,XGBoost在训练过程中可以采用以下设置:
输入X_train为一组[Worker_Number,Pod_Number];
输出y_train为对应的APIServer消耗总资源;
model=xgb.XGBRegressor(max_depth=5,learning_rate=0.1,n_estimators=160,silent=True,objective='reg:gamma')
model.fit(X_train,y_train)
其中,XGBRegressor,为模型自带的参数,max_depth,表示构建的树的深度,learning_rate,表示学习率,n_estimators表示树的个数,silent,表示运行时是否打印日志,objective xgboost,表示模型类别,reg:gamma,表示是回归问题,目标函数为gamma。reg:gamma是对数链接的伽马回归,输出为gamma分布的平均值。对于一个节点的划分,在其gamma分布的平均值大于0时会继续划分。
需要说明的是,上述XGBoost回归算法的示例仅用于对本说明书实施例可以采用的机器学习算法进行示例性说明。本说明书实施例可以采用其他任意可能的机器学习算法来实现。例如,本说明书实施例所述采用机器学习算法的性能模型可以包括:线性回归模型、SVM回归模型、随机森林回归模型或XGBoost回归模型中的任一种回归模型。
由于该实施方式中训练性能模型所采用的输出样本数据为Kubernetes集群的工作节点处于多种工作节点配置下执行预设多种操作时采集到的所述预设组件在所述预设多种操作中的资源消耗最大值,因此,性能模型预测出的资源量够满足预设多种操作中的任意操作的需要。
本说明书一个或多个实施例中,为了进一步降低用户配置Kubernetes集群的难度,所述方法还包括:根据各种虚拟机类型分别对应的推荐权重以及所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量,计算出所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量的推荐分数;根据各种虚拟机类型分别对应的推荐权重以及所述满足工作节点所需资源的虚拟机类型及对应的工作节点数量,计算出所述满足工作节点所需资源的虚拟机类型对应的虚拟机数量的推荐分数;筛选出所述推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量;将筛选出的虚拟机类型及对应的虚拟机数量推荐给所述用户。
例如,所述推荐权重可以按照虚拟机类型对应的单价设置。所述推荐分数可以等于虚拟机类型对应的推荐权重乘以虚拟机类型对应的虚拟机数量。所述预设推荐条件可以为推荐分数最小,也即总价最小,从而可以筛选出总价最小的虚拟机类型及对应的虚拟机数量推荐给用户。
可见,该实施方式在计算出满足工作节点所需资源的虚拟机类型以及对应的虚拟机数量,并且计算出主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量之后,可以进一步根据各种虚拟机类型对应的推荐权重,筛选出推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量推荐给用户,进一步降低了用户配置Kubernetes集群的难度。
本说明书一个或多个实施例中,考虑到工作节点的资源利用率并不能达到100%,而且系统进程对资源还存在一定的占用,因此,所述根据用户为所述工作节点输入的Pod数量及Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量可以包括:接收用户为所述工作节点输入的Pod数量及Pod配置;根据所述工作节点所需资源与Pod占用资源率之积等于所述Pod配置下的单个Pod消耗的资源与所述Pod数量之积,计算出所述工作节点所需资源,其中,所述Pod占用资源率等于节点资源利用率与系统进程资源利用率之差;根据各种虚拟机类型所能提供的资源,列举出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
例如,所述工作节点所需资源可以根据以下算式计算得到:
Node_Resources×(Resource_Utilization-System_Resource_Utilization)=Per_Pod_Resource×Pod_Num
其中,Node_Resources,表示工作节点所需资源,Resource_Utilization,表示节点资源利用率,System_Resource_Utilization,表示系统进程资源利用率,Per_Pod_Resource,表示所述Pod配置下的单个Pod消耗的资源,Pod_Num,表示Pod数量。
其中,所述节点资源利用率可以采用预设默认的值,也可以采用用户输入的节点资源利用率。例如,节点资源利用率为70%,则用户部署所有Pod后,集群平均CPU利用率为70%,平均内存利用率也为70%。例如,所述方法还可以进一步接收用户输入的节点资源利用率。不同资源类型可以对应不同的节点资源利用率。所述系统进程资源利用率可以采用预设默认的值,具体可以预先在工作节点空载时对系统进程的资源利用率进行采集得到。
可见,在该实施例中,将预期的节点资源利用率以及系统进程资源利用率加入到计算中来,更加准确地计算出了工作节点所需资源的虚拟机类型及对应的工作节点数量,进一步提高了预测的准确度。
本说明书一个或多个实施例中,根据Kubernetes集群中,主节点的APIServer组件提供操作所有集群资源的统一接口,ETCD组件负责存储集群数据,随着集群规模增加,APIServer组件和ETCD组件的资源消耗变化显著,因此,预先训练了APIServer性能模型以及ETCD性能模型,依据这两个性能模型进行预测。具体地,在该实施例中,所述将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源可以包括:将所述工作节点数量及所述Pod数量输入预先经过训练的APIServer性能模型,预测出所述主节点的APIServer组件所需资源;将所述工作节点数量及所述Pod数量输入预先经过训练的ETCD性能模型,预测出所述主节点的ETCD组件所需资源。所述根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量可以包括:根据所述主节点的APIServer组件所需资源与所述主节点的ETCD组件所需资源,得到所述主节点所需总资源;根据各种虚拟机类型所能提供的资源,计算出满足所述主节点所需总资源的虚拟机类型以及对应的虚拟机数量。
例如,所述主节点所需资源可以根据以下算式计算得到:
Master_Resources×Resource_Utilization=APIServer_Resource+ETCD_Resource
其中,Master_Resources,表示主节点所需资源,Resource_Utilization,表示节点资源利用率,APIServer_Resource,表示APIServer组件所需资源,ETCD_Resource表示ETCD组件所需资源。
可见,该实施例中利用ETCD性能模型预测出了ETCD组件所需资源,利用APIServer性能模型预测出了APIServer组件所需资源,根据两个组件所需资源,计算出了满足主节点所需总资源,进而可以确定满足主节点所需总资源的虚拟机类型以及对应的虚拟机数量,准确地预测出了主节点的配置,降低了用户配置Kubernetes集群的难度。
下面,对结合上述多个实施例的一种实施方式进行详细说明。例如,参见图3所示本说明书一实施例所述预测Kubernetes集群配置的方法的算法框架图。如算法框架图所示,在该实施方式中,输入包括:Pod数量、Pod配置、节点资源利用率、虚拟机类型及推荐权重。处理过程包括:计算工作节点所需资源;利用APIServer组件性能模型及ETCD组件性能模型计算主节点所需资源;由工作节点所需资源确定出工作节点虚拟机类型及对应的数量,由主节点所需资源确定出主节点虚拟机类型及对应的数量;根据推荐权重筛选推荐分数满足预设推荐条件的虚拟机类型及对应的数量作为优化配置推荐给用户。
具体地,参见图4所示的预测Kubernetes集群配置的方法的处理过程流程图所示,具体步骤包括步骤402至步骤422。
步骤402:接收用户为所述工作节点输入的Pod数量、Pod配置以及节点资源利用率。
步骤404:根据所述工作节点所需资源与Pod占用资源率之积等于所述Pod配置下的单个Pod消耗的资源与所述Pod数量之积,计算出所述工作节点所需资源。
其中,所述Pod占用资源率等于节点资源利用率与系统进程资源利用率之差。
步骤406:根据各种虚拟机类型所能提供的资源,列举出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量也即虚拟机数量。
步骤408:将所述工作节点数量及所述Pod数量输入预先经过训练的APIServer性能模型,预测出所述主节点的APIServer组件所需资源。
步骤410:将所述工作节点数量及所述Pod数量输入预先经过训练的ETCD性能模型,预测出所述主节点的ETCD组件所需资源。
步骤412:根据所述主节点的APIServer组件所需资源与所述主节点的ETCD组件所需资源,得到所述主节点所需总资源。
步骤414:根据所述主节点所需总资源,列举出满足所述主节点所需总资源的虚拟机类型以及对应的虚拟机数量。
步骤416:根据各种虚拟机类型分别对应的推荐权重以及满足所述主节点所需总资源的虚拟机类型,计算出满足所述主节点所需总资源的虚拟机类型对应的虚拟机数量的推荐分数。
步骤418:根据各种虚拟机类型分别对应的推荐权重以及满足所述工作节点所需资源的虚拟机类型,计算出满足所述工作节点所需资源的虚拟机类型对应的虚拟机数量的推荐分数。
步骤420:筛选出所述主节点的虚拟机类型对应的推荐分数与所述工作节点的虚拟机类型对应的推荐分数之和最小的虚拟机类型及对应的虚拟机数量,作为满足预设推荐条件的虚拟机类型及对应的虚拟机数量。
步骤422:将筛选出的虚拟机类型及对应的虚拟机数量作为优化配置推荐给所述用户。
下面,结合一实例对上述预测过程进行示例性说明:
例如,图5a为各种虚拟机类型对应的资源示意图。假设计算得到工作节点所需资源为48个CPU。根据图5a所示的各种虚拟机类型对应的资源,列举出的满足工作节点所需资源的两种可能的虚拟机类型包括:12个Type A类型的虚拟机或者23个Type B类型的虚拟机。
分别将工作节点的两种可能的虚拟机数量即工作节点数量、Pod数量输入到APIServer性能模型和ETCD性能模型中。假设预测出主节点所需总资源的两种可能如图5b所示包括:2个CPU,4G内存或4个CPU,8G内存。
根据如图5a所示的虚拟机类型,则可能列举出的满足主节点所需总资源的虚拟机类型如图5c所示,包括:对应2个CPU,4G内存,主节点所需的虚拟机为1个Type A类型虚拟机或1个Type B类型虚拟机;对应4个CPU,8G内存,主节点所需的虚拟机为1个Type A类型虚拟机或2个Type B类型虚拟机。
根据如图5a所示的虚拟机类型对应的推荐权重,工作节点以及主节点所需的虚拟机类型对应的推荐分数之和如图5c所示,包括:“520”、“506”、“638”、“650”。根据筛选出推荐分数之和最小的虚拟机类型及对应的虚拟机数量,筛选出推荐总分数为“506”的虚拟机类型以及对应数量,包括:工作节点配置12个Type A类型虚拟机,主节点配置1个Type B类型虚拟机。
可见,该实施例首先根据用户输入的Pod数量及Pod配置,计算工作节点所需资源,又根据性能模型预测主节点所需资源,再根据主节点及工作节点所需资源计算推荐分数,进而筛选出推荐分数之和最小也即配置优化的虚拟机类型及对应的数量推荐给用户,极大降低了用户配置Kubernetes集群的难度。
与上述方法实施例相对应,本说明书还提供了预测Kubernetes集群配置的装置实施例。所述Kubernetes集群包括主节点以及工作节点,图6示出了本说明书一个实施例提供的一种预测Kubernetes集群配置的装置的结构示意图。如图6所示,该装置包括:工作节点计算模块602、模型预测模块604及主节点计算模块606。
该工作节点计算模块602,可以被配置为根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
该模型预测模块604,可以被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源。
其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合。
该主节点计算模块606,可以被配置为根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
可见,该装置根据用户输入的Pod数量及配置即可帮助用户预测出满足工作节点所需资源的虚拟机类型及对应的工作节点数量,以及,满足主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量,也即预测出了满足用户需要的虚拟机类型以及对应的虚拟机数量,不受用户工作类型限制,通用性强,降低了用户配置Kubernetes集群的难度。
图7示出了本说明书另一个实施例提供的一种预测Kubernetes集群配置的装置的结构示意图。如图7所示,该装置还可以包括:主节点推荐分数计算模块608、工作节点推荐分数计算模块610、筛选模块612及推荐模块614。
该主节点推荐分数计算模块608,可以被配置为根据各种虚拟机类型分别对应的推荐权重以及所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量,计算出所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量的推荐分数。
该工作节点推荐分数计算模块610,可以被配置为根据各种虚拟机类型分别对应的推荐权重以及所述满足工作节点所需资源的虚拟机类型及对应的工作节点数量,计算出所述满足工作节点所需资源的虚拟机类型对应的虚拟机数量的推荐分数。
该筛选模块612,可以被配置为筛选出所述推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量。
该推荐模块614,可以被配置为将筛选出的虚拟机类型及对应的虚拟机数量推荐给所述用户。
可见,该实施方式在计算出满足工作节点所需资源的虚拟机类型以及对应的虚拟机数量,并且计算出主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量之后,可以进一步根据各种虚拟机类型对应的推荐权重,筛选出推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量推荐给用户,进一步降低了用户配置Kubernetes集群的难度。
本说明书一个或多个实施例中,如图7所示,所述工作节点计算模块602可以包括:接收子模块6022、资源计算子模块6024及工作节点列举子模块6026。
该接收子模块6022,可以被配置为接收用户为所述工作节点输入的Pod数量及Pod配置。
该资源计算子模块6024,可以被配置为根据所述工作节点所需资源与Pod占用资源率之积等于所述Pod配置下的单个Pod消耗的资源与所述Pod数量之积,计算出所述工作节点所需资源,其中,所述Pod占用资源率等于节点资源利用率与系统进程资源利用率之差。
该工作节点列举子模块6026,可以被配置为根据各种虚拟机类型所能提供的资源,列举出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
其中,所述节点资源利用率可以采用预设默认的值,也可以采用用户输入的节点资源利用率。例如,节点资源利用率为70%,则用户部署所有Pod后,集群平均CPU利用率为70%,平均内存利用率也为70%。例如,所述接收子模块6022,还可以被配置为接收用户输入的节点资源利用率。不同资源类型可以对应不同的节点资源利用率。所述系统进程资源利用率可以采用预设默认的值,具体可以预先在工作节点空载时对系统进程的资源利用率进行监测得到。
在该实施例中,将预期的节点资源利用率以及系统进程资源利用率加入到计算中来,更加准确地计算出了工作节点所需资源的虚拟机类型及对应的工作节点数量,进一步提高了预测的准确度。
本说明书一个或多个实施例中,所述模型预测模块604可以包括:APIServer预测子模块6042及ETCD预测子模块6044。
该APIServer预测子模块6042,可以被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的APIServer性能模型,预测出所述主节点的APIServer组件所需资源。
该ETCD预测子模块6044,可以被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的ETCD性能模型,预测出所述主节点的ETCD组件所需资源。
所述主节点计算模块606可以包括:总资源计算子模块6062及主节点配置计算子模块6064。
该总资源计算子模块6062,可以被配置为根据所述主节点的APIServer组件所需资源与所述主节点的ETCD组件所需资源,得到所述主节点所需总资源。
该主节点配置计算子模块6064,可以被配置为根据各种虚拟机类型所能提供的资源,计算出满足所述主节点所需总资源的虚拟机类型以及对应的虚拟机数量。
该实施例中利用ETCD性能模型预测出了ETCD组件所需资源,利用APIServer性能模型预测出了APIServer组件所需资源,根据两个组件所需资源,计算出了满足主节点所需总资源,进而可以确定满足主节点所需总资源的虚拟机类型以及对应的虚拟机数量,准确地预测出了主节点的配置,降低了用户配置Kubernetes集群的难度。
本说明书一个或多个实施例中,如图7所示,该装置还可以包括:控制模块616、采集模块618及训练模块620。
该控制模块616,可以被配置为控制Kubernetes集群分别在多种工作节点配置下执行预设多种操作,所述工作节点配置包括工作节点数量配置以及工作节点上Pod数量配置。
该采集模块618,可以被配置为分别针对多种工作节点配置,采集所述Kubernetes集群的工作节点处于所针对的工作节点配置下执行预设多种操作时所述预设组件在所述预设多种操作中的资源消耗最大值。
该训练模块620,可以被配置为将所述多种工作节点配置中所采用的工作节点数量以及Pod数量作为输入样本,将对应所述多种工作节点配置分别采集到的资源消耗最大值作为输出样本,对采用机器学习算法的性能模型进行训练,得到经过训练的性能模型。
其中,所述预设组件可以是主节点的任意组件。例如,可以是APIServer、Scheduler、ETCD等中的任一个或多个组件。由于生产环境中的Kubernetes集群是一个动态集群。为满足生产运维需求,常常需要对集群进行一些操作如添加node,创建pod,查看pod列表等,这些操作会引入额外的资源消耗。为了模拟动态环境下集群资源消耗情况,定义了一组常见集群操作集合作为预设多种操作。例如,所述预设多种操作可以是包括创建Pod、删除Pod、查询Pod、创建Worker、删除Worker等常见操作的集合。
所述采用机器学习算法的性能模型例如可以包括:线性回归模型、SVM回归模型、随机森林回归模型或XGBoost回归模型中的任一种回归模型。
由于该实施方式中训练性能模型所采用的输出样本数据为Kubernetes集群的工作节点处于多种工作节点配置下执行预设多种操作时采集到的所述预设组件在所述预设多种操作中的资源消耗最大值,因此,性能模型预测出的资源量够满足预设多种操作中的任意操作的需要。
上述为本实施例的一种预测Kubernetes集群配置的装置的示意性方案。需要说明的是,该预测Kubernetes集群配置的装置的技术方案与上述的预测Kubernetes集群配置的方法的技术方案属于同一构思,预测Kubernetes集群配置的装置的技术方案未详细描述的细节内容,均可以参见上述预测Kubernetes集群配置的方法的技术方案的描述。
图8示出了根据本说明书一个实施例提供的一种计算设备800的结构框图。该计算设备800的部件包括但不限于存储器810和处理器820。处理器820与存储器810通过总线830相连接,数据库850用于保存数据。
计算设备800还包括接入设备840,接入设备840使得计算设备800能够经由一个或多个网络860通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备840可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备800的上述部件以及图8中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图8所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备800可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备800还可以是移动式或静止式的服务器。
其中,处理器820可以用于执行计算机可执行指令以实现上述任意一项实施例中所述预测Kubernetes集群配置的方法的步骤。具体步骤可参考前述方法实施例中的描述,此处不再赘述。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的预测Kubernetes集群配置的方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述预测Kubernetes集群配置的方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以实现上述任意一项实施例中所述预测Kubernetes集群配置的方法的步骤。具体步骤可参考前述方法实施例中的描述,此处不再赘述。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的预测Kubernetes集群配置的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述预测Kubernetes集群配置的方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (15)

1.一种预测Kubernetes集群配置的方法,所述Kubernetes集群包括主节点以及工作节点,所述方法包括:
根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量;
将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源;
其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合;
根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
2.根据权利要求1所述的方法,还包括:
根据各种虚拟机类型分别对应的推荐权重以及所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量,计算出所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量的推荐分数;
根据各种虚拟机类型分别对应的推荐权重以及所述满足工作节点所需资源的虚拟机类型及对应的工作节点数量,计算出所述满足工作节点所需资源的虚拟机类型对应的虚拟机数量的推荐分数;
筛选出所述推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量;
将筛选出的虚拟机类型及对应的虚拟机数量推荐给所述用户。
3.根据权利要求1所述的方法,所述根据用户为所述工作节点输入的Pod数量及Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量包括:
接收用户为所述工作节点输入的Pod数量及Pod配置;
根据所述工作节点所需资源与Pod占用资源率之积等于所述Pod配置下的单个Pod消耗的资源与所述Pod数量之积,计算出所述工作节点所需资源,其中,所述Pod占用资源率等于节点资源利用率与系统进程资源利用率之差;
根据各种虚拟机类型所能提供的资源,列举出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
4.根据权利要求3所述的方法,还包括:
接收用户输入的节点资源利用率。
5.根据权利要求1所述的方法,所述将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源包括:
将所述工作节点数量及所述Pod数量输入预先经过训练的APISERVER性能模型,预测出所述主节点的APISERVER组件所需资源;
将所述工作节点数量及所述Pod数量输入预先经过训练的ETCD性能模型,预测出所述主节点的ETCD组件所需资源;
所述根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量包括:
根据所述主节点的APIServer组件所需资源与所述主节点的ETCD组件所需资源,得到所述主节点所需总资源;
根据各种虚拟机类型所能提供的资源,计算出满足所述主节点所需总资源的虚拟机类型以及对应的虚拟机数量。
6.根据权利要求1所述的方法,还包括:
控制Kubernetes集群分别在多种工作节点配置下执行预设多种操作,所述工作节点配置包括工作节点数量配置以及工作节点上Pod数量配置;
分别针对多种工作节点配置,采集所述Kubernetes集群的工作节点处于所针对的工作节点配置下执行预设多种操作时所述预设组件在所述预设多种操作中的资源消耗最大值;
将所述多种工作节点配置中所采用的工作节点数量以及Pod数量作为输入样本,将对应所述多种工作节点配置分别采集到的资源消耗最大值作为输出样本,对采用机器学习算法的性能模型进行训练,得到经过训练的性能模型。
7.根据权利要求6所述的方法,所述采用机器学习算法的性能模型包括:线性回归模型、SVM回归模型、随机森林回归模型或XGBoost回归模型中的任一种回归模型。
8.一种预测Kubernetes集群配置的装置,所述Kubernetes集群包括主节点以及工作节点,所述装置包括:
工作节点计算模块,被配置为根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量;
模型预测模块,被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源;
其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合;
主节点计算模块,被配置为根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
9.根据权利要求8所述的装置,还包括:
主节点推荐分数计算模块,被配置为根据各种虚拟机类型分别对应的推荐权重以及所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量,计算出所述满足主节点的预设组件所需资源的虚拟机类型对应的虚拟机数量的推荐分数;
工作节点推荐分数计算模块,被配置为根据各种虚拟机类型分别对应的推荐权重以及所述满足工作节点所需资源的虚拟机类型及对应的工作节点数量,计算出所述满足工作节点所需资源的虚拟机类型对应的虚拟机数量的推荐分数;
筛选模块,被配置为筛选出所述推荐分数满足预设推荐条件的虚拟机类型及对应的虚拟机数量;
推荐模块,被配置为将筛选出的虚拟机类型及对应的虚拟机数量推荐给所述用户。
10.根据权利要求8所述的装置,所述工作节点计算模块包括:
接收子模块,被配置为接收用户为所述工作节点输入的Pod数量及Pod配置;
资源计算子模块,被配置为根据所述工作节点所需资源与Pod占用资源率之积等于所述Pod配置下的单个Pod消耗的资源与所述Pod数量之积,计算出所述工作节点所需资源,其中,所述Pod占用资源率等于节点资源利用率与系统进程资源利用率之差;
工作节点列举子模块,被配置为根据各种虚拟机类型所能提供的资源,列举出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量。
11.根据权利要求10所述的装置,所述接收子模块,还被配置为接收用户输入的节点资源利用率。
12.根据权利要求8所述的装置,所述模型预测模块包括:
APIServer预测子模块,被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的APIServer性能模型,预测出所述主节点的APIServer组件所需资源;
ETCD预测子模块,被配置为将所述工作节点数量及所述Pod数量输入预先经过训练的ETCD性能模型,预测出所述主节点的ETCD组件所需资源;
所述主节点计算模块包括:
总资源计算子模块,被配置为根据所述主节点的APIServer组件所需资源与所述主节点的ETCD组件所需资源,得到所述主节点所需总资源;
主节点配置计算子模块,被配置为根据各种虚拟机类型所能提供的资源,计算出满足所述主节点所需总资源的虚拟机类型以及对应的虚拟机数量。
13.根据权利要求8所述的装置,还包括:
控制模块,被配置为控制Kubernetes集群分别在多种工作节点配置下执行预设多种操作,所述工作节点配置包括工作节点数量配置以及工作节点上Pod数量配置;
采集模块,被配置为分别针对多种工作节点配置,采集所述Kubernetes集群的工作节点处于所针对的工作节点配置下执行预设多种操作时所述预设组件在所述预设多种操作中的资源消耗最大值;
训练模块,被配置为将所述多种工作节点配置中所采用的工作节点数量以及Pod数量作为输入样本,将对应所述多种工作节点配置分别采集到的资源消耗最大值作为输出样本,对采用机器学习算法的性能模型进行训练,得到经过训练的性能模型。
14.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
根据用户为所述工作节点输入的Pod数量、Pod配置,计算出满足所述工作节点所需资源的虚拟机类型及对应的工作节点数量;
将所述工作节点数量及所述Pod数量输入预先经过训练的性能模型,预测出所述主节点的预设组件所需资源;
其中,所述性能模型,用于采用机器学习算法对输入的工作节点数量以及Pod数量输出Kubernetes集群的工作节点的预设组件在预设多种操作中的资源消耗最大值进行拟合;
根据各种虚拟机类型所能提供的资源,计算出满足所述主节点的预设组件所需资源的虚拟机类型以及对应的虚拟机数量。
15.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至8任意一项所述预测Kubernetes集群配置的方法的步骤。
CN202010266152.1A 2020-04-07 2020-04-07 预测Kubernetes集群配置的方法以及装置 Active CN113296870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010266152.1A CN113296870B (zh) 2020-04-07 2020-04-07 预测Kubernetes集群配置的方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010266152.1A CN113296870B (zh) 2020-04-07 2020-04-07 预测Kubernetes集群配置的方法以及装置

Publications (2)

Publication Number Publication Date
CN113296870A CN113296870A (zh) 2021-08-24
CN113296870B true CN113296870B (zh) 2024-03-08

Family

ID=77317900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010266152.1A Active CN113296870B (zh) 2020-04-07 2020-04-07 预测Kubernetes集群配置的方法以及装置

Country Status (1)

Country Link
CN (1) CN113296870B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404523A (zh) * 2017-07-21 2017-11-28 中国石油大学(华东) 云平台自适应资源调度系统和方法
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
WO2019196692A1 (zh) * 2018-04-09 2019-10-17 阿里巴巴集团控股有限公司 虚拟机的调度方法和装置
CN110928689A (zh) * 2019-12-05 2020-03-27 中国人民解放军军事科学院国防科技创新研究院 面向分布式强化学习训练的自适应资源管理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885762B (zh) * 2017-09-19 2021-06-11 北京百度网讯科技有限公司 智能大数据系统、提供智能大数据服务的方法和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107404523A (zh) * 2017-07-21 2017-11-28 中国石油大学(华东) 云平台自适应资源调度系统和方法
WO2019196692A1 (zh) * 2018-04-09 2019-10-17 阿里巴巴集团控股有限公司 虚拟机的调度方法和装置
CN109117265A (zh) * 2018-07-12 2019-01-01 北京百度网讯科技有限公司 在集群中调度作业的方法、装置、设备及存储介质
CN110928689A (zh) * 2019-12-05 2020-03-27 中国人民解放军军事科学院国防科技创新研究院 面向分布式强化学习训练的自适应资源管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Kubernetes负载特征的资源预测模型研究;谢文舟;孙艳霞;;网络安全技术与应用(第04期);全文 *

Also Published As

Publication number Publication date
CN113296870A (zh) 2021-08-24

Similar Documents

Publication Publication Date Title
US11392843B2 (en) Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer
EP3893154A1 (en) Recommendation model training method and related apparatus
CN108089921B (zh) 用于云端大数据运算架构的服务器及其运算资源最佳化方法
CA2859500C (en) Cloud-edge topologies
US20210034407A1 (en) Virtual Machine Scheduling Method and Apparatus
US20190391897A1 (en) Adaptive thresholds for containers
US11436050B2 (en) Method, apparatus and computer program product for resource scheduling
CN102707995B (zh) 基于云计算环境的业务调度的方法及装置
Mechalikh et al. PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments
CN107291337A (zh) 一种提供业务访问的方法及装置
CN116127899B (zh) 芯片设计系统、方法、电子设备和存储介质
Barve et al. Fecbench: A holistic interference-aware approach for application performance modeling
CN112783607A (zh) 容器集群中任务部署方法及装置
CN113240226A (zh) 一种卫星地面站间的资源分配方法及装置
WO2023093375A1 (zh) 一种计算资源获取方法、装置、电子设备和存储介质
CN113467944A (zh) 面向复杂软件系统的资源部署装置及方法
WO2020206699A1 (en) Predicting virtual machine allocation failures on server node clusters
Mahmud et al. Power profiling of context aware systems: a contemporary analysis and framework for power conservation
CN113296870B (zh) 预测Kubernetes集群配置的方法以及装置
CN116089367A (zh) 动态分桶方法、装置、电子设备和介质
CN115525394A (zh) 容器数量的调整方法及装置
CN114035940A (zh) 资源分配方法以及装置
CN112579246A (zh) 虚拟机迁移处理方法及装置
EP4012630A1 (en) Model optimization method and apparatus, storage medium, and device
CN113806217A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40058002

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant