CN112527486A - 调度优化方法及装置 - Google Patents

调度优化方法及装置 Download PDF

Info

Publication number
CN112527486A
CN112527486A CN202011496875.7A CN202011496875A CN112527486A CN 112527486 A CN112527486 A CN 112527486A CN 202011496875 A CN202011496875 A CN 202011496875A CN 112527486 A CN112527486 A CN 112527486A
Authority
CN
China
Prior art keywords
node
pod
log
cluster
logs
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.)
Pending
Application number
CN202011496875.7A
Other languages
English (en)
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.)
Aisino Corp
Original Assignee
Aisino Corp
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 Aisino Corp filed Critical Aisino Corp
Priority to CN202011496875.7A priority Critical patent/CN112527486A/zh
Publication of CN112527486A publication Critical patent/CN112527486A/zh
Pending legal-status Critical Current

Links

Images

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • 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
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及云计算技术领域,提供一种调度优化方法及装置,用以解决节点无法正常创建Pod的问题,其中,方法包括:根据待调度Pod对CPU内存资源的需求,对集群中各个节点进行筛选;根据筛选出的节点的优先级和筛选出的节点的评估值,确定筛选出的节点的综合值;从综合值超过预设阈值的节点中选择作为对待调度Pod进行调度的节点。在本申请实施例中,在满足待调度Pod的静态资源的前提下,还要考虑在节点上成功创建Pod的概率,以避免在节点创建Pod时因Pod沙盒创建失败、Pod同步失败或者其他错误导致无法正常创建Pod。

Description

调度优化方法及装置
技术领域
本申请涉及云计算技术领域,提供了一种调度优化方法及装置。
背景技术
云计算平台主要利用了虚拟化技术达到资源的按需供应,传统的虚拟化技术对于资源消耗巨大,并且***架构较为复杂。容器技术作为新一代的虚拟化技术,具有资源开销小、架构简单、更加轻量级的优点,因此容器技术成为了下一代云计算平台的发展方向。
Kubernets平台是一种基于容器技术的轻量级资源编排调度平台,容器组Pod是Kubernetes平台中资源调度的最小单元,Kubernetes平台根据运行环境的静态资源属性,将Pod调度到最优的节点上,所述静态资源属性可以是节点的中央处理器(CentralProcessing Unit,CPU)负载大小、工作节点的内存剩余情况等。但采用上述方式筛选出的节点,可能会因为Pod沙盒创建失败、Pod同步失败或者其他错误导致无法正常创建Pod。
有鉴于此,本申请实施例提供了一种调度优化方法及装置。
发明内容
本申请实施例提供一种调度优化方法及装置,用以解决节点无法正常创建Pod的问题。
第一方面,本申请实施例提供了一种调度优化方法,包括:
根据待调度容器组Pod对中央处理器CPU内存资源的需求,对集群中各个节点进行筛选;
根据筛选出的节点的优先级和所述筛选出的节点的评估值,确定所述筛选出的节点的综合值,其中,所述评估值是基于所述集群中各个节点在预设时间段内创建Pod失败的日志生成的,所述评估值表征在节点上成功创建Pod的概率;
从综合值超过预设阈值的节点中选择作为对所述待调度Pod进行调度的节点。
可选的,所述评估值是通过以下方式生成的:
采集所述集群中各个节点在预设时间段内创建Pod失败的日志;
对采集的各个日志进行聚合处理得到多个日志集合,其中每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志;
根据得到的所述日志集合,分别确定所述集群中各个节点的Pod创建失败率;
基于所述集群中各个节点的Pod创建失败率,计算得到所述集群中各个节点的评估值。
可选的,采集所述集群中各个节点在预设时间段内创建Pod失败的日志之后,对各个日志进行聚合处理得到多个日志集合之前,还包括:
基于所述各个日志的日志错误信息,确定所述各个日志的错误类型;
对各个日志进行聚合处理得到多个日志集合,包括:
按照日志的资源标识、节点标识、错误类型和日志类型,对所述各个日志进行聚合处理,得到所述多个日志集合;
其中,所述日志的资源标识用于确定在创建完毕的Pod上运行的应用服务。
可选的,根据所述集群中各个节点的日志集合,分别计算所述集群中各个节点的Pod创建失败率,包括:
针对任意一个节点,若所述节点对应的日志仅在一个日志集合中,则计算所述一个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第一比值,并基于所述第一比值与预设权重参数确定对应的Pod创建失败率;或
针对任意一个节点,若所述节点对应的日志在多个日志集合中,则针对多个日志集合,分别计算各个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第二比值,并基于各个第二比值执行加权求和操作,确定对应的Pod创建失败率。
可选的,基于所述集群中各个节点的Pod创建失败率,计算得到所述集群中各个节点的评估值,包括:
对各个Pod创建失败率取对数,得到所述集群中各个节点的初始评估值;
将各个初始评估值取负数,得到所述集群中各个节点的评估值。
第二方面,本申请实施例还提供了一种调度优化装置,包括:
初次筛选单元,用于根据待调度容器组Pod对中央处理器CPU内存资源的需求,对集群中各个节点进行筛选;
调度优化单元,用于根据筛选出的节点的优先级和所述筛选出的节点的评估值,确定所述筛选出的节点的综合值,其中,所述评估值是基于所述集群中各个节点在预设时间段内创建Pod失败的日志生成的,所述评估值表征在节点上成功创建Pod的概率;
确定单元,用于从综合值超过预设阈值的节点中选择作为对所述待调度Pod进行调度的节点。
可选的,所述装置还包括生成单元,所述评估值是通过以下方式生成的:
采集所述集群中各个节点在预设时间段内创建Pod失败的日志;
对采集的各个日志进行聚合处理得到多个日志集合,其中每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志;
根据得到的所述日志集合,分别确定所述集群中各个节点的Pod创建失败率;
基于所述集群中各个节点的Pod创建失败率,计算得到所述集群中各个节点的评估值。
可选的,所述生成单元还用于:
基于所述各个日志的日志错误信息,确定所述各个日志的错误类型;
对各个日志进行聚合处理得到多个日志集合,包括:
按照日志的资源标识、节点标识、错误类型和日志类型,对所述各个日志进行聚合处理,得到所述多个日志集合;
其中,所述日志的资源标识用于确定在创建完毕的Pod上运行的应用服务。
可选的,所述生成单元用于:
针对任意一个节点,若所述节点对应的日志仅在一个日志集合中,则计算所述一个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第一比值,并基于所述第一比值与预设权重参数确定对应的Pod创建失败率;或
针对任意一个节点,若所述节点对应的日志在多个日志集合中,则针对多个日志集合,分别计算各个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第二比值,并基于各个第二比值执行加权求和操作,确定对应的Pod创建失败率。
可选的,所述生成单元用于:
对各个Pod创建失败率取对数,得到所述集群中各个节点的初始评估值;
将各个初始评估值取负数,得到所述集群中各个节点的评估值。
第三方面,本申请实施例还提供了一种电子设备,包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行上述任意一种调度优化方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行上述任意一种调度优化方法的步骤。
本申请有益效果如下:
本申请实施例提供的一种调度优化方法及装置,根据待调度Pod对CPU内存资源的需求,对集群中各个节点进行筛选;根据筛选出的节点的优先级和筛选出的节点的评估值,确定筛选出的节点的综合值,其中评估值是基于集群中各个节点在预设时间段内创建Pod失败的日志生成的,评估值表征在节点上成功创建Pod的概率;最后,从综合值超过预设阈值的节点中选择作为对待调度Pod进行调度的节点。在本申请实施例中,通过调用旁路调度器,获取筛选出的节点的评估值,并基于优先级和评估值进行加权操作得到综合值,在满足待调度Pod的静态资源的前提下,还要考虑在节点上成功创建Pod的概率,以避免在节点创建Pod时因Pod沙盒创建失败、Pod同步失败或者其他错误导致无法正常创建Pod。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为调度优化***的架构示意图;
图1b为调度优化方法的流程示意图;
图2a为评估值生成***的架构示意图;
图2b为生成评估值的流程示意图;
图3为本申请实施例中的一种调度优化装置的结构示意图;
图4为本审实施例中的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请技术方案保护的范围。
Kubernets平台是一种基于容器技术的轻量级资源编排调度平台,可运行Kubernets功能部件的多个节点构成了一个Kubernets平台,每个节点可以是物理服务器(即具备实体的服务器),也可以是虚拟服务器(即云服务器)。Pod作为Kubernetes平台中资源调度的最小单元,由Kubernetes平台根据运行环境的静态资源属性,将Pod调度到最优的节点上,所述静态资源属性可以是节点的CPU负载大小、工作节点的内存剩余情况等。但采用上述方式筛选出的节点,可能会因为Pod沙盒创建失败、Pod同步失败或者其他错误导致无法正常创建Pod。有鉴于此,本申请实施例提出了一种调度优化方法。
参阅图1a示出的架构示意图,在本申请实施例中包括默认调度器和旁路调度器,旁路调度器具体包括网络服务器(Web Server)、打分器(Scorer)和数据管理器(DataManager)三个子模块。默认调度器主要用于对Kubernets集群中的全部节点进行初步筛选,并通过Web Server提供的HTTP接口调用旁路调度器,Scorer基于节点的优先级和评估值,确定符合要求的节点的综合值,所述评估值是由Scorer生成的;默认调度器再基于综合值选择合适的节点作为对待调度Pod进行调度的节点。Data Manager用于维护Kubernets集群中各个节点的综合值,每当Data Manager接收到Scorer发送过来的评估数据,就对相应的节点的综合值进行更新,保留新的综合值,舍弃原有的综合值。
参阅图1b示出的流程示意图,对本申请实施例提出的调度优化方法进行介绍。
S101:根据待调度Pod对CPU内存资源的需求,对集群中各个节点进行筛选。
根据上述介绍可知,可运行Kubernets功能部件的多个节点构成了Kubernets集群,假设共有8个节点,每个节点均可运行Kubernets功能部件,则这8个节点构成了一个Kubernets集群;假设共有8个节点,其中5个节点可运行Kubernets功能部件,则这5个节点构成了一个Kubernets集群。
在Kubernets集群中的节点可分为两类,一类是控制节点,一类是负载节点。根据待调度Pod对CPU内存资源的需求遍历Kubernets集群中的全部节点,过滤掉不满足条件的节点,保证筛选后的节点能够为待调度Pod提供足够的CPU内存资源;假设Kubernets集群中的全部节点均不满足条件,那么Pod将会一直处于待定(Pending)状态,直到有节点满足条件时Pod才会结束待定状态。
S102:根据筛选出的节点的优先级和筛选出的节点的评估值,确定筛选出的节点的综合值,其中,评估值是基于集群中各个节点在预设时间段内创建Pod失败的日志生成的,评估值表征在节点上成功创建Pod的概率。
在传统的调度流程中,若步骤101筛选出多个符合要求的节点,则按照节点优先级排序,选择优先级最高的节点来部署Pod应用。但是,基于静态资源属性筛选得到的节点在创建Pod时,可能会因Pod沙盒创建失败、Pod同步失败或者其他错误导致无法正常创建Pod。因此,本申请实施例基于评估值对已得到的节点们进行二次筛选,即筛选出的节点的优先级和对应评估值,加权求和得到对应节点的综合值,这样,可以大大提高成功创建Pod的概率。
接下来,参阅图2a示出的架构示意图,先对评估值生成***进行介绍。该***包括日志采集模块、日志聚合模块和旁路调度器三部分。其中,日志采集模块,顾名思义,该模块用于采集Kubernets集群中每个节点在预设时间段内创建Pod失败的日志;日志聚合模块具体分为日志处理子模块和日志聚合子模块,在本申请实施例中日志类型分为事件级日志、应用级日志和***级日志,为了避免不同类型的日志混淆在一起,针对每一类日志分别建立一个对应的日志处理子模块,即该日志处理子模块仅能处理该类日志,日志聚合子模块用于聚合处理得到多个日志集合,其中每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志;旁路调度器基于节点的Pod创建失败率生成评估值,再基于节点的优先级和评估值,生成综合值。
参阅图2b示出的流程示意图,再对生成评估值的过程进行介绍。
S201:采集集群中各个节点在预设时间段内创建Pod失败的日志。
在Kubernets集群的每个节点上运行一个日志采集服务,若该节点为控制节点,则日志采集服务采集该节点上的三类日志,分别是事件级日志、应用级日志和***级日志;若该节点为负载节点,则日志采集服务仅采集该节点上的应用级日志和***级日志。
其中,事件级日志包括Pod内的容器状态数据,可以通过Kubernets管理应用程序接口(Application Programming Interface,API)采集到事件级日志;应用级日志包括容器内程序输出日志,可以通过Docker管理API采集到应用级日志;***级日志主要是运行Docker服务和Kubelet服务时自身产生的日志数据,包括服务的状态数据和systemd输出日志,可以通过Systemctl管理工作采集到服务的状态数据,可以通过journalctl工具采集到systemd输出日志。
每个节点上的日志采集服务在采集到该节点预设时间段内的所有日志数据后,仅保留Pod创建失败的日志,为了节省带宽,每个节点将保留下来的日志分批次压缩打包发给日志处理单元进一步处理,其中一条日志至少包括资源标识、节点标识、日志类型、采集日志的时间戳和日志错误信息。
S202:对采集的各个日志进行聚合处理得到多个日志集合,其中每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志。
Kubernets集群中每个节点将采集到的日志集合同时发送给三个日志处理子模块。其中,任意一个日志处理子模块X读取一个日志集合X',并对该日志集合X'执行解压操作获取该日志集合X'中的所有日志;然后,该日志处理子模块X读取一条日志Y,若日志Y的日志类型不符合日志处理子模块X可处理的日志类型,则日志处理子模块X会过滤掉日志Y,不再进行处理;若日志Y的日志类型符合要求的话,则日志处理子模块X将日志Y携带的资源标识、节点标识、Pod名称作为日志Y的定位标识,所述资源标识用于确定在创建完毕的Pod上运行的应用服务,同时日志处理子模块X还要根据日志Y的日志错误信息,确定日志Y的错误类型,将<定位标识,错误类型>作为日志Y的标签;最后,日志处理子模块X将处理后的多个日志Y压缩、打包发送给日志聚合子模块进一步处理。
日志聚合子模块在接收到三个日志处理子模块处理后的日志集合后,先对日志集合进行解压操作,再按照日志的资源标识、节点标识、错误类型和日志类型,对各个日志进行聚合处理,得到多个日志集合,其中每个日志集合的定位标识为<资源标识,节点标识,错误类型,日志类型>,表征每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志。
S203:根据得到的日志集合,分别确定集群中各个节点的Pod创建失败率。
针对任意一个节点,若节点对应的日志仅在一个日志集合中,则计算该日志集合所包含的Pod总数量与该节点上已占用的Pod总数量之间的第一比值,并基于第一比值与预设权重参数确定对应的Pod创建失败率;或
针对任意一个节点,若节点对应的日志在多个日志集合中,则针对多个日志集合,分别计算各个日志集合所包含的Pod总数量与该节点上已占用Pod总数量之间的第二比值,并基于各个第二比值执行加权求和操作,确定对应的Pod创建失败率。
资源标识不仅能确定在创建完毕的Pod上运行的应用服务,还可以确定应用服务是运行在哪个Pod上,也就是说资源标识至少包含了应用服务名称和Pod名称两种标识信息,那么Scorer可以根据日志的资源标识确定一个日志集合所包含的Pod总数量。假设在该日志集合中存在两条采集时间不同,但定位标识完全相同的日志,那么这两条日志所包含的Pod数量只能计为1,不能计为2。
S204:基于集群中各个节点的Pod创建失败率,计算得到集群中各个节点的评估值。
Scorer对各个Pod创建失败率取对数,得到集群中各个节点的初始评估值;再将各个初始评估值取负数,得到集群中各个节点的评估值。其中,计算一个节点的评估值的公式为
Figure BDA0002842435830000091
为该节点的综合值,n表示该节点下各个日志集合中所包含的日志总数,N为该节点上已占用的Pod总数量,a、b、c依次为事件级日志、应用级日志和***级日志对应的权重参数,Xi、Yi和Zi依次为事件级日志中所包含的Pod总数量、应用级日志中所包含的Pod总数量和***级日志中所包含的Pod总数量。
S103:从综合值超过预设阈值的节点中选择作为对待调度Pod进行调度的节点。
在本申请实施例中,可以从综合值超过预设阈值的节点中选择一个节点,作为对待调度Pod进行调度的节点;还可以使用一种更优的实施方式,即将综合值最高的节点,作为对待调度Pod进行调度的节点。
参阅图3示出的结构示意图,在调度优化装置中可以包括初次筛选单元301、调度优化单元302、确定单元303和生成单元304,其中,
初次筛选单元301,用于根据待调度容器组Pod对中央处理器CPU内存资源的需求,对集群中各个节点进行筛选;
调度优化单元302,用于根据筛选出的节点的优先级和所述筛选出的节点的评估值,确定所述筛选出的节点的综合值,其中,所述评估值是基于所述集群中各个节点在预设时间段内创建Pod失败的日志生成的,所述评估值表征在节点上成功创建Pod的概率;
确定单元303,用于从综合值超过预设阈值的节点中选择作为对所述待调度Pod进行调度的节点。
可选的,所述装置还包括生成单元304,所述评估值是通过以下方式生成的:
采集所述集群中各个节点在预设时间段内创建Pod失败的日志;
对采集的各个日志进行聚合处理得到多个日志集合,其中每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志;
根据得到的所述日志集合,分别确定所述集群中各个节点的Pod创建失败率;
基于所述集群中各个节点的Pod创建失败率,计算得到所述集群中各个节点的评估值。
可选的,所述生成单元304还用于:
基于所述各个日志的日志错误信息,确定所述各个日志的错误类型;
对各个日志进行聚合处理得到多个日志集合,包括:
按照日志的资源标识、节点标识、错误类型和日志类型,对所述各个日志进行聚合处理,得到所述多个日志集合;
其中,所述日志的资源标识用于确定在创建完毕的Pod上运行的应用服务。
可选的,所述生成单元304用于:
针对任意一个节点,若所述节点对应的日志仅在一个日志集合中,则计算所述一个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第一比值,并基于所述第一比值与预设权重参数确定对应的Pod创建失败率;或
针对任意一个节点,若所述节点对应的日志在多个日志集合中,则针对多个日志集合,分别计算各个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第二比值,并基于各个第二比值执行加权求和操作,确定对应的Pod创建失败率。
可选的,所述生成单元304用于:
对各个Pod创建失败率取对数,得到所述集群中各个节点的初始评估值;
将各个初始评估值取负数,得到所述集群中各个节点的评估值。
在一些可能的实施方式中,本申请实施例还提供一种电子设备,参阅图4所示,电子设备可以至少包括至少一个处理器401、以及至少一个存储器402。其中,存储器402存储有程序代码,当程序代码被处理器401执行时,使得处器401执行本说明书上述描述的根据本申请各种示例性实施方式的调度优化方法中的步骤。例如,处理器401可以执行如图1b中所示的步骤。
在一些可能的实施方式中,本申请提供的业务控制方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述描述的根据本申请各种示例性实施方式的调度优化方法中的步骤,例如,计算机设备可以执行如图1b中所示的步骤。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于业务控制的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在计算装置上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行***、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算装置上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算装置上部分在远程计算装置上执行、或者完全在远程计算装置或服务器上执行。在涉及远程计算装置的情形中,远程计算装置可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算装置,或者,可以连接到外部计算装置(例如利用因特网服务提供商来通过因特网连接)。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (12)

1.一种调度优化方法,其特征在于,包括:
根据待调度容器组Pod对中央处理器CPU内存资源的需求,对集群中各个节点进行筛选;
根据筛选出的节点的优先级和所述筛选出的节点的评估值,确定所述筛选出的节点的综合值,其中,所述评估值是基于所述集群中各个节点在预设时间段内创建Pod失败的日志生成的,所述评估值表征在节点上成功创建Pod的概率;
从综合值超过预设阈值的节点中选择作为对所述待调度Pod进行调度的节点。
2.如权利要求1所述的方法,其特征在于,所述评估值是通过以下方式生成的:
采集所述集群中各个节点在预设时间段内创建Pod失败的日志;
对采集的各个日志进行聚合处理得到多个日志集合,其中每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志;
根据得到的所述日志集合,分别确定所述集群中各个节点的Pod创建失败率;
基于所述集群中各个节点的Pod创建失败率,计算得到所述集群中各个节点的评估值。
3.如权利要求2所述的方法,其特征在于,采集所述集群中各个节点在预设时间段内创建Pod失败的日志之后,对各个日志进行聚合处理得到多个日志集合之前,还包括:
基于所述各个日志的日志错误信息,确定所述各个日志的错误类型;
对各个日志进行聚合处理得到多个日志集合,包括:
按照日志的资源标识、节点标识、错误类型和日志类型,对所述各个日志进行聚合处理,得到所述多个日志集合;
其中,所述日志的资源标识用于确定在创建完毕的Pod上运行的应用服务。
4.如权利要求2所述的方法,其特征在于,根据所述集群中各个节点的日志集合,分别计算所述集群中各个节点的Pod创建失败率,包括:
针对任意一个节点,若所述节点对应的日志仅在一个日志集合中,则计算所述一个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第一比值,并基于所述第一比值与预设权重参数确定对应的Pod创建失败率;或
针对任意一个节点,若所述节点对应的日志在多个日志集合中,则针对多个日志集合,分别计算各个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第二比值,并基于各个第二比值执行加权求和操作,确定对应的Pod创建失败率。
5.如权利要求2所述的方法,其特征在于,基于所述集群中各个节点的Pod创建失败率,计算得到所述集群中各个节点的评估值,包括:
对各个Pod创建失败率取对数,得到所述集群中各个节点的初始评估值;
将各个初始评估值取负数,得到所述集群中各个节点的评估值。
6.一种调度优化装置,其特征在于,包括:
初次筛选单元,用于根据待调度容器组Pod对中央处理器CPU内存资源的需求,对集群中各个节点进行筛选;
调度优化单元,用于根据筛选出的节点的优先级和所述筛选出的节点的评估值,确定所述筛选出的节点的综合值,其中,所述评估值是基于所述集群中各个节点在预设时间段内创建Pod失败的日志生成的,所述评估值表征在节点上成功创建Pod的概率;
确定单元,用于从综合值超过预设阈值的节点中选择作为对所述待调度Pod进行调度的节点。
7.如权利要求6所述的装置,其特征在于,所述装置还包括生成单元,所述评估值是通过以下方式生成的:
采集所述集群中各个节点在预设时间段内创建Pod失败的日志;
对采集的各个日志进行聚合处理得到多个日志集合,其中每个日志集合中的日志是为同一个应用服务在同一个节点创建Pod时,因相同的错误类型而生成的失败日志;
根据得到的所述日志集合,分别确定所述集群中各个节点的Pod创建失败率;
基于所述集群中各个节点的Pod创建失败率,计算得到所述集群中各个节点的评估值。
8.如权利要求7所述的装置,其特征在于,所述生成单元还用于:
基于所述各个日志的日志错误信息,确定所述各个日志的错误类型;
对各个日志进行聚合处理得到多个日志集合,包括:
按照日志的资源标识、节点标识、错误类型和日志类型,对所述各个日志进行聚合处理,得到所述多个日志集合;
其中,所述日志的资源标识用于确定在创建完毕的Pod上运行的应用服务。
9.如权利要求7所述的装置,其特征在于,所述生成单元用于:
针对任意一个节点,若所述节点对应的日志仅在一个日志集合中,则计算所述一个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第一比值,并基于所述第一比值与预设权重参数确定对应的Pod创建失败率;或
针对任意一个节点,若所述节点对应的日志在多个日志集合中,则针对多个日志集合,分别计算各个日志集合所包含的Pod总数量与所述一个节点上已占用的Pod总数量之间的第二比值,并基于各个第二比值执行加权求和操作,确定对应的Pod创建失败率。
10.如权利要求7所述的装置,其特征在于,所述生成单元用于:
对各个Pod创建失败率取对数,得到所述集群中各个节点的初始评估值;
将各个初始评估值取负数,得到所述集群中各个节点的评估值。
11.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~5中任一项所述方法的步骤。
12.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~5中任一项所述方法的步骤。
CN202011496875.7A 2020-12-17 2020-12-17 调度优化方法及装置 Pending CN112527486A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011496875.7A CN112527486A (zh) 2020-12-17 2020-12-17 调度优化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011496875.7A CN112527486A (zh) 2020-12-17 2020-12-17 调度优化方法及装置

Publications (1)

Publication Number Publication Date
CN112527486A true CN112527486A (zh) 2021-03-19

Family

ID=75001063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011496875.7A Pending CN112527486A (zh) 2020-12-17 2020-12-17 调度优化方法及装置

Country Status (1)

Country Link
CN (1) CN112527486A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297568A (zh) * 2021-06-04 2021-08-24 国网汇通金财(北京)信息科技有限公司 一种基于沙箱的数据处理方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590008A (zh) * 2017-08-02 2018-01-16 中国科学院计算技术研究所 一种通过加权熵判断分布式集群可靠度的方法和***
CN109361750A (zh) * 2018-10-24 2019-02-19 上海精数信息科技有限公司 资源分配方法、装置、电子设备、存储介质
CN111143059A (zh) * 2019-12-17 2020-05-12 天津大学 改进的Kubernetes资源调度方法
CN111221631A (zh) * 2018-11-23 2020-06-02 ***通信集团有限公司 一种任务调度方法、装置及存储介质
CN111857990A (zh) * 2020-06-23 2020-10-30 苏州浪潮智能科技有限公司 一种加强yarn长类型服务调度的方法、***
CN111966500A (zh) * 2020-09-07 2020-11-20 网易(杭州)网络有限公司 资源调度方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590008A (zh) * 2017-08-02 2018-01-16 中国科学院计算技术研究所 一种通过加权熵判断分布式集群可靠度的方法和***
CN109361750A (zh) * 2018-10-24 2019-02-19 上海精数信息科技有限公司 资源分配方法、装置、电子设备、存储介质
CN111221631A (zh) * 2018-11-23 2020-06-02 ***通信集团有限公司 一种任务调度方法、装置及存储介质
CN111143059A (zh) * 2019-12-17 2020-05-12 天津大学 改进的Kubernetes资源调度方法
CN111857990A (zh) * 2020-06-23 2020-10-30 苏州浪潮智能科技有限公司 一种加强yarn长类型服务调度的方法、***
CN111966500A (zh) * 2020-09-07 2020-11-20 网易(杭州)网络有限公司 资源调度方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297568A (zh) * 2021-06-04 2021-08-24 国网汇通金财(北京)信息科技有限公司 一种基于沙箱的数据处理方法及***
CN113297568B (zh) * 2021-06-04 2024-04-30 国网汇通金财(北京)信息科技有限公司 一种基于沙箱的数据处理方法及***

Similar Documents

Publication Publication Date Title
Yao et al. Fog resource provisioning in reliability-aware IoT networks
WO2021213293A1 (zh) 一种面向群智感知的泛在操作***
CN108632365B (zh) 服务资源调整方法、相关装置和设备
CN111414233A (zh) 一种在线模型推理***
CN111355606B (zh) 面向web应用的容器集群自适应扩缩容***和方法
CN112363813A (zh) 资源调度方法、装置、电子设备和计算机可读介质
US20200159622A1 (en) Rule based failure addressing
CN111770162A (zh) 网络带宽限制方法、装置、主节点及存储介质
CN115543577A (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN114911615B (zh) 微服务运行时智能预测调度的方法及应用
CN110781180A (zh) 一种数据筛选方法和数据筛选装置
CN114493373A (zh) 一种遥感卫星处理***中应急任务处理方法及装置
CN111984505A (zh) 一种运维数据采集引擎及采集方法
CN112527486A (zh) 调度优化方法及装置
WO2024045784A1 (zh) 作业调度方法、调度器及相关设备
CN115665157B (zh) 一种基于应用资源类型的均衡调度方法和***
CN108427599A (zh) 异步任务统一处理方法、装置及存储介质
CN110971532B (zh) 一种网络资源管理方法、装置及设备
CN116700929A (zh) 基于人工智能的任务批量处理方法及***
CN110515716A (zh) 一种支持优先级和反亲和的云优化调度方法及***
CN114443293A (zh) 一种大数据平台的部署***及方法
CN115309501A (zh) 一种集群资源规划方法、设备、装置及介质
CN114035906A (zh) 虚拟机迁移方法、装置、电子设备及存储介质
CN113259878A (zh) 话单结算方法、***、电子设备及计算机可读存储介质
CN113760484A (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