CN117194003A - 容器部署单元的调度方法、装置、设备、介质及程序产品 - Google Patents
容器部署单元的调度方法、装置、设备、介质及程序产品 Download PDFInfo
- Publication number
- CN117194003A CN117194003A CN202210621842.3A CN202210621842A CN117194003A CN 117194003 A CN117194003 A CN 117194003A CN 202210621842 A CN202210621842 A CN 202210621842A CN 117194003 A CN117194003 A CN 117194003A
- Authority
- CN
- China
- Prior art keywords
- container deployment
- deployment unit
- container
- scheduling
- pod
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000012216 screening Methods 0.000 claims description 54
- 238000003860 storage Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 19
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 description 87
- 238000007726 management method Methods 0.000 description 72
- 238000005516 engineering process Methods 0.000 description 28
- 101100491335 Caenorhabditis elegans mat-2 gene Proteins 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 13
- 101100495256 Caenorhabditis elegans mat-3 gene Proteins 0.000 description 11
- 102100033121 Transcription factor 21 Human genes 0.000 description 11
- 101710119687 Transcription factor 21 Proteins 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000012827 research and development Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 3
- -1 pod2 Proteins 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种容器部署单元的调度方法、装置、设备、介质及程序产品,属于计算机技术领域。可应用于数据库场景中,该方法包括:接收外部调度器发送的容器部署单元的调度信息,所述调度信息用于指示将实例对应的所述容器部署单元调度至第一节点;将所述调度信息与所述实例进行关联存储,得到目标实例;响应于创建目标实例请求,创建所述目标实例对应的所述容器部署单元,以及基于所述调度信息将所述容器部署单元调度至所述第一节点上运行。基于上述方法,可通过外部干预的方式实现将容器部署单元调度至指定节点,在充分利用现有容器应用管理系统的基础上,无需重构与调度相关的架构,从而极大的提升了现有产品的上云进程。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种容器部署单元的调度方法、装置、设备、介质及程序产品。
背景技术
容器技术是云计算中应用的主要技术之一。提供服务的系统可以将用于提供服务的程序部署在容器中,再将容器部署在不同节点中,从而能够实现服务的分布式部署。
容器应用管理系统(Kubernetes,K8s)能够通过容器部署单元(Pod)对容器集群进行管理,每个Pod中可以部署一个或多个容器。K8s系统基于创建实例请求,将Pod调度至某一节点。
在K8s系统中,Pod的调度完全依赖于K8s系统中的调度规则来实现Pod的调度,在现有产品上云时,需要重构所有与调度相关的架构,从而导致现有产品上云进程变慢。
发明内容
本申请提供了一种容器部署单元的调度方法、装置、设备、介质及程序产品,所述技术方案如下:
根据本申请的一方面,提供了一种容器部署单元的调度方法,所述方法包括:
接收外部调度器发送的容器部署单元的调度信息,所述调度信息用于指示将实例对应的所述容器部署单元调度至第一节点的信息;
将所述调度信息与所述实例进行关联存储,得到目标实例;
响应于创建目标实例请求,创建所述目标实例对应的所述容器部署单元,以及基于所述调度信息将所述容器部署单元调度至所述第一节点上运行。
根据本申请的一方面,提供了一种容器部署单元的调度装置,所述装置包括:
资源管控中心,用于接收外部调度器发送的容器部署单元的调度信息,所述调度信息用于指示将实例对应的所述容器部署单元调度至第一节点的信息;
资源管控中心,用于将所述调度信息与所述实例进行关联存储,得到目标实例;
调度模块,用于响应于创建目标实例请求,创建所述目标实例对应的所述容器部署单元,以及基于所述调度信息将所述容器部署单元Pod调度至所述第一节点上。
根据本申请的另一方面,提供了一种计算机设备,该计算机设备包括:处理器和存储器,存储器中存储有至少一条计算机程序,至少一条计算机程序由处理器加载并执行以实现如上方面所述的容器部署单元的调度方法。
根据本申请的另一方面,提供了一种计算机存储介质或计算机设备集群,计算机可读存储介质中存储有至少一条计算机程序,至少一条计算机程序由处理器加载并执行以实现如上方面所述的容器部署单元的调度方法。
根据本申请的另一方面,提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机程序由计算机设备的处理器从所述计算机可读存储介质读取并执行,使得所述计算机设备执行如上方面所述的容器部署单元的调度方法。
本申请提供的技术方案带来的有益效果至少包括:
通过外部调度器计算的方式获取实例对应的容器部署单元Pod的调度信息,并将调度信息与实例进行关联存储,生成为具有调度信息的目标实例,基于目标实例携带的调度信息,实现将容器部署单元Pod调度至第一节点上运行,基于上述方法,可通过外部干预的方式实现将容器部署单元Pod调度至指定节点,在充分利用现有容器应用管理系统的基础上,无需重构所有与调度相关的架构,从而极大的提升了现有产品的上云进程。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的一种容器部署单元的调度方法的示意图;
图2是本申请一个示例性实施例提供的计算机系统的架构示意图;
图3是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图;
图4是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图;
图5是本申请一个示例性实施例提供的目标实例的示意图;
图6是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图;
图7是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图;
图8是本申请一个示例性实施例提供的目标实例的调度状态的流程图;
图9是本申请一个示例性实施例提供的一种容器部署单元的调度方法的示意图;
图10是本申请一个示例性实施例提供的容器部署单元的调度装置的结构示意图;
图11是本申请一个示例性实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请实施例涉及的若干个名词进行简介:
容器应用管理系统Kubernetes(简称k8s):一种容器操作平台,其可以实现将若干个容器组合成一个服务及动态地分配容器运行的主机等功能,为用户使用容器提供了极大的便利。Kubernetes可以是开源也可以不开源。
容器部署单元Pod:Kubernetes的基本调度单元称为“pod”。通过该种抽象类别可以把更高级别的抽象内容增加到容器化组件。一个pod一般包含一个或多个容器,这样可以保证它们一直位于主机上,并且可以共享资源。Kubernetes中的每个pod都被分配一个唯一的(在集群内的)IP地址,这样就可以允许应用程序使用同一端口,而避免了发生冲突的问题。
容器(Container):是指计算机设备中与系统其他部分隔离的应用进程。容器内的应用进程使用同一个操作系统内核。不同容器的应用进程是相互独立运行的。
虚拟机(Virtual Machine,VM):通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。
数据服务接口(Application Programming Interface Server,API Server):APIServer是一个关键组件,并使用Kubernetes API和JSON over HTTP(Hyper TextTransfer Protocol超文本传输协议)来提供Kubernetes的内部和外部接口。APIServer处理和验证REST请求(如获取(get)资源,添加(post)资源,更新(put)资源以及删除(delete)资源),并更新API对象的状态etcd(一个分布式键值对存储系统),从而允许客户端在Worker节点(工作节点)之间配置工作负载和容器。
云技术(Cloud technology):是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology):基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
云计算(Cloud computing):是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池,简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、Web(World Wide Web,全球广域网)容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
数据库(DataBase):简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(DataBase Management System,DBMS):是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、可扩展标记语言(Extensible MarkupLanguage,XML);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(Structured Query Language,SQL)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
本申请实施例提供了一种容器部署单元的调度方法的示意图,如图1所示,该方法可以由容器应用管理系统执行,以容器应用管理系统为Kubernetes为例,容器应用管理系统Kubernetes与外部调度器相连。
示例性地,外部调度器102获取实例101需要的资源配置,且外部调度器102基于资源配置确定出容器部署单元Pod的调度信息。
资源配置反映实例101在运行时需要的容器部署单元Pod的情况。
例如,外部调度器102确定出实例101对应的调度信息为:实例101需要4个容器部署单元Pod,且容器部署单元Pod1调度至节点1、容器部署单元Pod2调度至节点2、容器部署单元Pod3调度至节点3、容器部署单元Pod4调度至节点3。
容器应用管理系统Kubernetes103中的资源管控中心Controller Manager104请求数据服务接口API Server105生成至少一个调度器配置SchedulerConfig来存储容器部署单元Pod的调度信息,并将调度器配置SchedulerConfig与实例101进行关联存储,得到带有调度信息的实例,即目标实例。
例如,资源管控中心Controller Manager104请求数据服务接口API Server105生成的调度器配置SchedulerConfig(1)用于存储调度信息“容器部署单元Pod1调度至节点1”、调度器配置SchedulerConfig(2)用于存储调度信息“容器部署单元Pod2调度至节点2”、调度器配置SchedulerConfig(3)用于存储调度信息“容器部署单元Pod3调度至节点3”、调度器配置SchedulerConfig(4)用于存储调度信息“容器部署单元Pod4调度至节点3”。
容器应用管理系统Kubernetes103中的容器部署单元组控制中心PodGroupController107将目标实例上的调度器配置SchedulerConfig整合为一个容器部署单元组PodGroup,即,一个目标实例对应一个容器部署单元组PodGroup,一个容器部署单元组PodGroup包括至少一个容器部署单元Pod。
容器部署单元组PodGroup用于存储容器部署单元Pod的个数、调度超时时间、容器部署单元Pod的调度信息及容器部署单元组PodGroup的调度状态信息等,但不限于此,本申请实施例对此不作具体限定。
容器应用管理系统Kubernetes103中的资源管控中心Controller Manager104基于目标实例创建目标实例对应的容器部署单元Pod,且在容器部署单元Pod上标定对应的容器部署单元组PodGroup的标签标识。
容器应用管理系统Kubernetes103中的调度框架106通过数据服务接口APIServer105检测到容器部署单元Pod,并基于容器部署单元Pod对应的标签标识确定该容器部署单元Pod对应的调度信息;容器应用管理系统Kubernetes103中的调度框架106获取第一节点的资源容量;在第一节点的资源容量支持容器部署单元Pod运行的情况下,调度框架106根据调度信息,将容器部署单元Pod调度至第一节点上运行。
示例性地,容器部署单元组PodGroup中包括n个容器部署单元Pod;
在第一节点的资源容量支持第i个容器部署单元Pod的情况下,将第i个容器部署单元Pod设置为预调度状态,并设置超时时间;
在i等于n的情况下,将n个预调度状态的容器部署单元Pod分别调度至第一节点上运行;
在i小于n且前i个容器部署单元Pod中的任一容器部署单元Pod对应的超时时间大于第二时间阈值的情况下,取消前i个容器部署单元Pod的预调度状态,并拒绝调度容器部署单元组PodGroup中的n个容器部署单元Pod,i为小于等于n的正整数,n为正整数。
例如,容器应用管理系统Kubernetes103中的资源管控中心ControllerManager104基于目标实例创建容器部署单元Pod,比如,创建Pod1、Pod2、Pod3、Pod4,资源管控中心Controller Manager104分别对Pod1、Pod2、Pod3、Pod4标记同一个标签标识,例如,标签A;标签A用于表征Pod1、Pod2、Pod3、Pod4属于同一个容器部署单元组PodGroup。即,根据Pod3所携带的标签标识确定该Pod3所属的容器部署单元组PodGroup。
调度框架106基于容器部署单元Pod对应的标签标识从容器部署单元组PodGroup中确定调度信息,调度框架106根据调度信息将Pod1调度至节点1、将Pod2调度至节点2、将Pod3调度至节点3、将Pod4调度至节点3。
在一种可能的实现方式中,容器应用管理系统Kubernetes103中的调度框架通过数据服务接口API Server105获取容器部署单元Pod,并基于排序原则将容器部署单元Pod进行排序;调度框架106对进行排序的容器部署单元Pod进行预筛选处理;并基于预筛选处理后的容器部署单元Pod对应的标签标识确定调度信息。
可选地,排序原则包括:基于容器部署单元Pod的优先级属性进行排序;
或,在容器部署单元Pod的优先级属性相同的情况下,基于容器部署单元Pod的初始排序时间进行排序;
或,在容器部署单元Pod的优先级属性相同、且初始排序时间一致的情况下,基于容器部署单元Pod的标识进行排序。
可选地,预筛选处理包括以下情况中的任意一种:
在容器部署单元Pod没有标签标识的情况下,通过预筛选处理;
或,在容器部署单元Pod所属的容器部署单元组PodGroup属于调度失败的容器部署单元组PodGroup的情况下,拒绝调度容器部署单元Pod;
或,在容器部署单元Pod对应的创建时间段小于第一时间阈值的情况下,通过预筛选处理,创建时间段是指从创建容器部署单元Pod到预筛选处理容器部署单元Pod之间的时间段;
或,基于标签标识确定容器部署单元Pod所属的容器部署单元组PodGroup,在容器部署单元组PodGroup中进行排序的容器部署单元Pod的个数小于容器部署单元组PodGroup中包含的容器部署单元Pod的总个数的情况下,拒绝调度容器部署单元Pod。
在一种可能的实现方式中,在未将容器部署单元Pod调度至第一节点上运行的情况下,响应于创建目标实例请求,将容器部署单元Pod调度至第二节点上,第二节点是指节点集群中的任意节点。
综上所述,本实施例提供的方法,通过外部调度器获取容器部署单元Pod的调度信息;将调度信息关联至实例上,得到目标实例;响应于创建目标实例请求,将容器部署单元Pod调度至第一节点上运行。本申请通过外部调度器计算的方式获取实例对应的容器部署单元Pod的调度信息,并将调度信息关联至实例上,生成为具有调度信息的目标实例,基于目标实例携带的调度信息,实现将容器部署单元Pod调度至第一节点上运行,基于上述方法,可通过外部干预的方式实现将容器部署单元Pod调度至指定节点,极大的加速了现有产品的上云进程,同时提高了研发效率。
图2示出了本申请一个实施例提供的计算机系统的架构示意图。该计算机系统可以包括:终端100和服务器200。
终端100可以是诸如手机、平板电脑、车载终端(车机)、可穿戴设备、个人计算机(Personal Computer,PC)、智能语音交互设备、智能家电、车载终端、飞行器、无人售货终端等电子设备。
服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器200可以是上述目标应用程序的后台服务器,用于为目标应用程序的客户端提供后台服务。
其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
在一些实施例中,上述服务器还可以实现为区块链系统中的节点。区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
终端100和服务器200之间可以通过网络进行通信,如有线或无线网络。
本申请实施例提供的容器部署单元的调度方法,各步骤对应的执行主体容器应用管理系统Kubernetes。以图2所示的方案实施环境为例,可以在终端100执行容器部署单元的调度方法,也可以在服务器200执行该容器部署单元的调度方法,或者由终端100和服务器200交互配合执行,本申请对此不作限定。
图3是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图。该方法可以由容器应用管理系统执行,以容器应用管理系统为Kubernetes为例,容器应用管理系统Kubernetes可以实现于图2中的终端100或服务器200,该方法可用于数据库场景。该方法包括:
步骤302:接收外部调度器发送的容器部署单元Pod的调度信息。
外部是指通过外部干预的方式实现容器应用管理系统调度容器部署单元Pod。
外部干预的方式是指通过外部调度器确定容器部署单元Pod的调度信息,并将调度信息发送至容器应用管理系统Kubernetes,用以辅助容器应用管理系统Kubernetes实现将容器部署单元Pod调度至第一节点。
外部调度器基于对象等级、对象信息、其他调度信息计算得到实例对应的容器部署单元Pod的调度信息,外部调度器不同于容器应用管理系统Kubernetes。
可选地,外部调度器为一组程序、一个系统,但不限于此,本申请实施例对此不作具体限定。
容器应用管理系统Kubernetes与外部调度器相连。
调度信息是指通过外部调度器得到的将容器部署单元Pod调度至第一节点的信息。
可以理解的是,将容器部署单元Pod调度至第一节点是指可以将容器部署单元Pod调度至相同的第一节点或不同的第一节点,本申请实施例对此不作具体限定。
该容器部署单元Pod中能够部署有一个或多个容器(container),容器中运行有程序,程序能够提供服务和功能。通常情况下,容器部署单元Pod中的容器中的程序,都属于同一个应用。不同容器中的程序,能够组合提供一类服务和功能。从而,容器部署单元Pod中的各容器提供的服务和功能,形成应用能够提供的服务和功能。在完成运行后,会将容器部署单元Pod销毁。
第一节点是指节点集群中的指定节点。
节点可以是一台物理机,或者由若干台物理机组成的物理机集群,或者是一个云计算服务中心中的虚拟机等,但不限于此,本申请实施例对此不作具体限定。
步骤304:将调度信息与实例进行关联存储,得到目标实例。
关联是指将调度信息与实例进行关联存储,从而生成具有调度信息的实例。
示例性地,容器应用管理系统Kubernetes将外部调度器计算得到的调度信息关联至实例上,得到带有调度信息的实例,即目标实例。
例如,外部调度器确定出实例对应的调度信息为:实例需要4个容器部署单元Pod,且容器部署单元Pod1调度至节点1、容器部署单元Pod2调度至节点2、容器部署单元Pod3调度至节点3、容器部署单元Pod4调度至节点3。容器应用管理系统Kubernetes将上述调度信息关联至实例上,使得实例携带有上述调度信息,从而得到目标实例。
步骤306:响应于创建目标实例请求,创建目标实例对应的容器部署单元,以及基于调度信息将容器部署单元调度至第一节点上运行。
调度是指将容器部署单元Pod分配于节点上运行。
节点可以是一台物理机,或者由若干台物理机组成的物理机集群,或者是一个云计算服务中心中的虚拟机等,但不限于此,本申请实施例对此不作具体限定。
示例性地,容器应用管理系统Kubernetes响应于创建目标实例请求,创建目标实例对应的容器部署单元Pod,将实例部署于容器中,再将容器部署在容器部署单元Pod中,并根据调度信息将容器部署单元Pod调度至第一节点上运行,从而实现通过运行容器部署单元Pod来提供实例对应的服务。综上所述,本实施例提供的方法,通过接收外部调度器发送的容器部署单元Pod的调度信息;将调度信息与实例关联存储,得到目标实例;响应于创建目标实例请求,创建目标实例对应的容器部署单元Pod,将容器部署单元Pod调度至第一节点上运行。本申请通过外部调度器计算的方式获取实例对应的容器部署单元Pod的调度信息,并将调度信息关联至实例上,生成为具有调度信息的目标实例,基于目标实例携带的调度信息,实现将容器部署单元Pod调度至第一节点上运行,基于上述方法,可通过外部干预的方式实现将容器部署单元Pod调度至指定节点,在充分利用现有容器应用管理系统的基础上,极大的加速了现有产品的上云进程,同时提高了研发效率。
图4是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图。该方法可以由容器应用管理系统执行,以容器应用管理系统为Kubernetes为例,容器应用管理系统Kubernetes可以实现于图2中的终端100或服务器200,该方法可用于数据库场景。该方法包括:
步骤402:接收外部调度器发送的容器部署单元Pod的调度信息。
容器应用管理系统Kubernetes与外部调度器相连。
调度信息是指将容器部署单元Pod调度至第一节点的信息。
第一节点是指节点集群中的指定节点。
节点可以是一台物理机,或者由若干台物理机组成的物理机集群,或者是一个云计算服务中心中的虚拟机等,但不限于此,本申请实施例对此不作具体限定。
可选地,物理机可以是上文介绍的服务器,也可以是终端。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但不限于此,本申请实施例对此不作具体限定。物理机与容器应用管理系统Kubernetes可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
示例性地,外部调度器获取实例需要的资源配置,外部调度器基于资源配置确定容器部署单元Pod的调度信息。
资源配置反映实例在运行时需要的容器部署单元Pod的情况。
可以理解的是,在数据库场景中,一个容器部署单元Pod相当于一个数据库。
资源配置包括CPU请求总量、内存请求总量和硬盘请求总量中的至少一种,但不限于此,本申请实施例对此不作具体限定。
步骤404:生成至少一个调度器配置,将调度器配置与实例进行关联存储,得到目标实例。
示例性地,容器应用管理系统Kubernetes将外部调度器计算得到的调度信息关联至实例上,得到带有调度信息的实例,即目标实例。
示例性地,容器应用管理系统Kubernetes中的资源管控中心Controller Manager生成至少一个调度器配置SchedulerConfig,并将调度器配置SchedulerConfig关联至实例上,得到目标实例。
调度器配置SchedulerConfig用于存储容器部署单元Pod的调度信息。
示例性地,调度器配置SchedulerConfig的内容如下:
例如,如图5所示出的目标实例的示意图,外部调度器确定出实例501对应的调度信息为:实例501需要4个容器部署单元Pod,且容器部署单元Pod1调度至节点1、容器部署单元Pod2调度至节点2、容器部署单元Pod3调度至节点3、容器部署单元Pod4调度至节点3。
资源管控中心Controller Manager请求数据服务接口API Server生成四个调度器配置SchedulerConfig。调度器配置SchedulerConfig(1)502用于存储调度信息“容器部署单元Pod1调度至节点1”、调度器配置SchedulerConfig(2)503用于存储调度信息“容器部署单元Pod2调度至节点2”、调度器配置SchedulerConfig(3)504用于存储调度信息“容器部署单元Pod3调度至节点3”、调度器配置SchedulerConfig(4)505用于存储调度信息“容器部署单元Pod4调度至节点3”。
资源管控中心Controller Manager将上述调度器配置SchedulerConfig关联至实例501上,得到目标实例506。
步骤406:响应于创建目标实例请求,创建目标实例对应的容器部署单元且,以及基于调度信息将容器部署单元调度至第一节点上运行。
示例性地,容器应用管理系统Kubernetes响应于容创建目标实例请求且调度信息为至少两个,容器应用管理系统Kubernetes中的容器部署单元组控制中心PodGroupController基于目标实例关联的调度器配置SchedulerConfig生成与所述目标实例对应的容器部署单元组PodGroup,即,一个目标实例对应一个容器部署单元组PodGroup,一个容器部署单元组PodGroup包括至少一个容器部署单元Pod,容器部署单元的个数与调度信息的数量相同。
资源管控中心Controller Manager创建目标实例对应的容器部署单元Pod,且在容器部署单元Pod上标定对应的容器部署单元组PodGroup的标签标识。
容器应用管理系统Kubernetes中的调度框架基于容器部署单元Pod对应的标签标识,确定容器部署单元Pod对应的调度信息。
调度框架根据调度信息,将容器部署单元Pod调度至第一节点上运行。
容器部署单元Pod通过其上的标签标识与对应的容器部署单元组PodGroup进行关联。容器部署单元组PodGroup用于存储容器部署单元Pod的个数、调度超时时间、容器部署单元Pod的调度信息及容器部署单元组PodGroup的调度状态信息。
示例性地,容器部署单元组PodGroup可表示为:
示例性地,容器部署单元组PodGroup用于存储容器部署单元Pod的个数、调度超时时间、容器部署单元Pod的调度信息可表示为:
示例性地,容器部署单元组PodGroup用于存储容器部署单元Pod的调度状态信息可表示为:
在一种可能的实现方式中,调度框架通过数据服务接口API Server获取容器部署单元Pod,并基于排序原则将容器部署单元Pod进行排序;调度框架对进行排序的容器部署单元Pod进行预筛选处理;调度框架基于预筛选处理后的容器部署单元Pod对应的标签标识确定调度信息。
示例性地,排序原则包括以下方式中的至少一种:
基于容器部署单元的优先级属性对容器部署单元进行排序;
基于容器部署单元的初始排序时间对容器部署单元进行排序;
基于容器部署单元的标识对容器部署单元进行排序。
可选地,调度框架确定容器部署单元的优先级属性;在容器部署单元的优先级属性不同的情况下,调度框架基于容器部署单元的优先级属性对容器部署单元进行排序;
在容器部署单元的优先级属性相同且初始排序时间不一致的情况下,调度框架基于容器部署单元的初始排序时间进行排序;
在容器部署单元的优先级属性相同且初始排序时间一致的情况下,调度框架基于容器部署单元的标识进行排序。
其中,优先级属性是指容器部署单元Pod被优先调度的级别属性,容器部署单元Pod的优先级高则该容器部署单元Pod优先被调度。容器部署单元Pod的优先级属性可以从`pod.Spec.Priority`中获得。
例如,首先比较容器部署单元Pod的优先级,将优先级较高的容器部署单元Pod排在前列并结束排序;在容器部署单元Pod优先级一致的情况下,比较两个容器部署单元Pod的初始排队时间,将初始排队时间在前的容器部署单元Pod排在前列并结束排序。
初始排序时间是指容器部署单元Pod进入队列进行排序的时间,或,指容器部署单元Pod所属的容器部署单元组Pod Group的开始调度时间。
初始排队时间的获取规则为:如果容器部署单元Pod属于某一podGroup,就使用该容器部署单元组PodGroup的开始调度时间(Schedule Start Time),如果容器部署单元Pod不属于任何容器部署单元组PodGroup,则使用该容器部署单元Pod进入队列的时间(Initial Attempt Timestamp)。在容器部署单元组PodGroup的开始调度时间(ScheduleStart Time)为空的情况下,表明该容器部署单元Pod是该容器部署单元组PodGroup中第一个到达的容器部署单元Pod,以它进入队列的时间来初始化开始调度时间(Schedule StartTime)。
在容器部署单元Pod的优先级属性相同、且初始排序时间一致的情况下,基于容器部署单元Pod的标识进行排序。标识的格式为:namespace/name。比如,以容器部署单元Pod的标识在字典中的序列来排序,在字典中序列在前的排在队列的前列。
可选地,在对容器部署单元Pod进行排序时,将属于同一个容器部署单元组PodGroup的容器部署单元Pod排在相邻位置,且支持对不属于任何容器部署单元组PodGroup的容器部署单元Pod进行排序。
在一种可能的实现方式中,调度框架对进行排序的容器部署单元Pod进行预筛选处理,包括以下情况中的任意一种:
基于容器部署单元的标签标识对容器部署单元进行预筛选处理;
基于容器部署单元对应的容器部署单元组的属性对容器部署单元进行预筛选处理;
基于容器部署单元对应的创建时间对容器部署单元进行预筛选处理;
基于容器部署单元的排序个数对容器部署单元进行预筛选处理。
可选地,调度框架获取容器部署单元的标签标识;在容器部署单元没有标签标识的情况下,通过预筛选处理。
在容器部署单元具有标签标识且容器部署单元所属的容器部署单元组属于调度失败的容器部署单元组的情况下,拒绝调度该容器部署单元。
在容器部署单元具有标签标识且所述容器部署单元对应的创建时间段小于第一时间阈值的情况下,通过预筛选处理,创建时间段是指从创建容器部署单元到预筛选处理容器部署单元之间的时间段。
比如,设置第一时间阈值为3s,如果容器部署单元Pod对应的创建时间段小于3s,则该容器部署单元Pod通过预筛选处理,执行下一步。
在容器部署单元具有标签标识且容器部署单元组中排序的容器部署单元的个数小于容器部署单元组中包含的容器部署单元的总个数的情况下,拒绝调度容器部署单元。
比如,基于标签标识确定容器部署单元Pod所属的容器部署单元组PodGro up,统计容器部署单元组PodGroup中有五个容器部署单元Pod,而该容器部署单元组PodGroup中进行排序的容器部署单元Pod的个数仅有三个,则拒绝调度容器部署单元Pod。
可以理解到是,通过预筛选处理可以在调度容器部署单元Pod前拒绝掉一些不符合调度条件的容器部署单元Pod,提升了调度效率。
在一种可能的实现方式中,调度框架基于预筛选处理后的容器部署单元Pod对应的标签标识确定容器部署单元Pod所属的容器部署单元组PodGroup;并在容器部署单元组PodGroup中确定容器部署单元Pod对应的调度信息。
在获取容器部署单元Pod对应的调度信息的情况下,调度框架获取第一节点的资源容量;在第一节点的资源容量支持容器部署单元Pod运行的情况下,调度框架根据调度信息,将容器部署单元Pod调度至第一节点上运行。
可选地,第一节点的资源容量包括该第一节点中已经被占用的资源的量、剩余的资源的量。
可选地,容器部署单元组PodGroup中包括n个容器部署单元Pod;在第一节点的资源容量支持第i个容器部署单元Pod的情况下,将第i个容器部署单元Pod设置为预调度状态,并设置超时时间;
在i等于n的情况下,将n个预调度状态的容器部署单元Pod分别调度至第一节点上运行;
在i小于n且前i个容器部署单元Pod中的任一容器部署单元Pod对应的超时时间大于第二时间阈值的情况下,取消前i个容器部署单元Pod的预调度状态,并拒绝调度容器部署单元组PodGroup中的n个容器部署单元Pod,i为小于等于n的正整数,n为正整数。
例如,容器部署单元组PodGroup中包括5个容器部署单元Pod,在第一节点的资源容量支持第3个容器部署单元Pod的情况下,将第3个容器部署单元Pod设置为预调度状态,并开始设置超时时间,比如,第二时间阈值为60s,在60s内容器部署单元组PodGroup中包括5个容器部署单元Pod均未进入预调度状态的情况下,取消前3个容器部署单元Pod的预调度状态,并拒绝调度容器部署单元组PodGroup中的5个容器部署单元Pod,同时,将该容器部署单元组PodGroup放入调度失败的容器部署单元组PodGroup序列中,清空容器部署单元组PodGroup的开始调度时间。
在一种可能的实现方式中,在未将容器部署单元Pod调度至第一节点上运行的情况下,响应于创建目标实例请求,将容器部署单元Pod调度至第二节点上,第二节点是指节点集群中的任意节点。
在一种可能的实现方式中,在未将容器部署单元Pod调度至第一节点上运行的情况下,拒绝调度该容器部署单元Pod。
综上所述,本实施例提供的方法,外部调度器获取容器部署单元Pod的调度信息并将调度信息发送至资源管控中心Controller Manager;通过资源管控中心ControllerManager生成的调度器配置SchedulerConfig存储调度信息,并将调度器配置SchedulerConfig与实例进行关联存储,得到目标实例;响应于创建目标实例请求,将容器部署单元Pod调度至第一节点上运行。本申请通过外部调度器计算的方式获取实例对应的容器部署单元Pod的调度信息,并将调度信息关联至实例上,生成为具有调度信息的目标实例,基于目标实例携带的调度信息,实现将容器部署单元Pod调度至第一节点上运行,基于上述方法,可通过外部干预的方式实现将容器部署单元Pod调度至指定节点,在充分利用现有容器应用管理系统的基础上,极大的加速了现有产品的上云进程,同时提高了研发效率;同时,通过采用外部调度器获取实例对应的容器部署单元Pod的调度信息的方式,可避免容器应用管理系统Kubernetes感知影响容器部署单元的调度的所有信息,从而避免了信息的泄露。
图6是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图。该方法可以由容器应用管理系统执行,以容器应用管理系统为Kubernetes为例,容器应用管理系统Kubernetes可以实现于图2中的终端100或服务器200,该方法可用于数据库场景。该方法包括:
步骤601:获取实例的资源配置。
外部调度器获取实例需要的资源配置。资源配置反映实例在运行时需要的容器部署单元Pod的情况。
可选地,实例的资源配置可以是用户自定义设定。例如,外部调度器获取实例需要4个容器部署单元Pod,在数据库场景下,一个容器部署单元Pod等于一个数据库。
步骤602:获取容器部署单元Pod的调度信息。
外部调度器基于资源配置确定容器部署单元Pod的调度信息。
例如,容器部署单元Pod的调度信息为实例需要4个容器部署单元Pod,且容器部署单元Pod1调度至节点1、容器部署单元Pod2调度至节点2、容器部署单元Pod3调度至节点3、容器部署单元Pod4调度至节点3。
步骤603:生成至少一个调度器配置SchedulerConfig。
容器应用管理系统Kubernetes中的资源管控中心Controller Manager请求数据服务接口API Server生成至少一个调度器配置SchedulerConfig来存储容器部署单元Pod的调度信息。
例如,资源管控中心Controller Manager请求数据服务接口API Server生成的调度器配置SchedulerConfig(1)用于存储调度信息“容器部署单元Pod1调度至节点1”、调度器配置SchedulerConfig(2)用于存储调度信息“容器部署单元Pod2调度至节点2”、调度器配置SchedulerConfig(3)用于存储调度信息“容器部署单元Pod3调度至节点3”、调度器配置SchedulerConfig(4)用于存储调度信息“容器部署单元Pod4调度至节点3”。
步骤604:关联生成的调度器配置SchedulerConfig到实例上。
容器应用管理系统Kubernetes中的资源管控中心Controller Manager将调度器配置SchedulerConfig与实例关联存储。
步骤605:请求数据服务接口API Server生成目标实例。
资源管控中心Controller Manager将调度器配置SchedulerConfig关联至实例上,并请求数据服务接口API Server生成带有调度信息的实例,即目标实例。
步骤606:检测到实例与调度器配置SchedulerConfig。
容器部署单元组控制中心PodGroup Controller通过数据服务接口API Server检测到带有调度器配置SchedulerConfig的实例。
步骤607:构造容器部署单元组PodGroup,初始化容器部署单元组PodGroup的状态。
在容器部署单元组控制中心PodGroup Controller通过数据服务接口API Server检测到带有调度器配置SchedulerConfig的实例的情况下,容器部署单元组控制中心PodGroup Controller将目标实例上的调度器配置SchedulerConfig整合为一个容器部署单元组PodGroup,即,一个目标实例对应一个容器部署单元组PodGroup,一个容器部署单元组PodGroup包括至少一个容器部署单元Pod。
步骤608:构造目标实例下的所有pod,并在容器部署单元Pod上标定对应的容器部署单元组PodGroup的标签标识。
容器应用管理系统Kubernetes中的资源管控中心Controller Manager基于目标实例依次创建目标实例对应的容器部署单元Pod,且在容器部署单元Pod上标定对应的容器部署单元组PodGroup的标签标识。
步骤609:基于容器部署单元Pod对应的标签标识,确定容器部署单元Pod对应的调度信息。
容器应用管理系统Kubernetes中的调度框架通过数据服务接口API Server检测到容器部署单元Pod,并基于容器部署单元Pod对应的标签标识确定该容器部署单元Pod对应的调度信息。
步骤610:根据调度信息,将容器部署单元Pod调度至第一节点上。
容器应用管理系统Kubernetes中的调度框架获取第一节点的资源容量;在第一节点的资源容量支持容器部署单元Pod运行的情况下,调度框架根据调度信息,将容器部署单元Pod调度至第一节点上运行。
在目标实例下的所有容器部署单元Pod均被调度至第一节点的情况下,所有容器部署单元Pod开始运行并提供服务。
综上所述,本实施例提供的方法,通过外部调度器获取容器部署单元Pod的调度信息;通过资源管控中心Controller Manager生成的调度器配置Scheduler Config存储调度信息,并将调度器配置Scheduler Config关联至实例上,得到目标实例;响应于创建目标实例请求,将容器部署单元Pod调度至第一节点上运行。本申请通过外部调度器计算的方式获取实例对应的容器部署单元Pod的调度信息,并将调度信息关联至实例上,生成为具有调度信息的目标实例,基于目标实例携带的调度信息,实现将容器部署单元Pod调度至第一节点上运行,可通过外部干预的方式实现将容器部署单元Pod调度至指定节点运行,在充分利用现有容器应用管理系统的基础上,极大的加速了现有产品的上云进程,同时提高了研发效率;同时,通过采用外部调度器获取实例对应的容器部署单元Pod的调度信息的方式,可避免容器应用管理系统Kubernetes感知影响容器部署单元的调度的所有信息,从而避免了信息的泄露。
图7是本申请一个示例性实施例提供的容器部署单元的调度方法的流程图。该方法可以由容器应用管理系统Kubernetes执行,容器应用管理系统Kubernetes可以实现于图2中的终端100或服务器200,该方法可用于数据库场景。该方法包括:
步骤701:获取容器部署单元Pod。
在获取目标实例的情况下,响应于创建目标实例请求,资源管控中心ControllerManager创建目标实例对应的容器部署单元Pod,且在容器部署单元Pod上标定对应的容器部署单元组PodGroup的标签标识。
步骤702:对容器部署单元Pod进行排序。
调度框架通过数据服务接口API Server获取容器部署单元Pod,并基于排序原则将容器部署单元Pod进行排序。
可选地,在对容器部署单元Pod进行排序时,将属于同一个容器部署单元组PodGroup的容器部署单元Pod排在相邻位置,且支持对不属于任何容器部署单元组PodGroup的容器部署单元Pod进行排序。
可选地,排序原则包括:基于容器部署单元Pod的优先级属性进行排序;
或,在容器部署单元Pod的优先级属性相同的情况下,基于容器部署单元Pod的初始排序时间进行排序;
或,在容器部署单元Pod的优先级属性相同、且初始排序时间一致的情况下,基于容器部署单元Pod的标识进行排序。
其中,容器部署单元Pod的优先级属性可以从`pod.Spec.Priority`中获得。
步骤703:预筛选处理。
调度框架对进行排序的容器部署单元Pod进行预筛选处理,包括以下情况中的任意一种:
在容器部署单元Pod没有标签标识的情况下,通过预筛选处理,执行步骤704;
或,在容器部署单元Pod所属的容器部署单元组PodGroup属于调度失败的容器部署单元组PodGroup的情况下,拒绝调度容器部署单元Pod,执行步骤708;
或,在容器部署单元Pod对应的创建时间段小于第一时间阈值的情况下,通过预筛选处理,执行步骤703,创建时间段是指从创建容器部署单元Pod到预筛选处理容器部署单元Pod之间的时间段;
比如,设置第一时间阈值为3s,如果容器部署单元Pod对应的创建时间段小于3s,则该容器部署单元Pod通过预筛选处理,执行步骤704。
或,基于标签标识确定容器部署单元Pod所属的容器部署单元组PodGroup,在容器部署单元组PodGroup中进行排序的容器部署单元Pod的个数小于容器部署单元组PodGroup中包含的容器部署单元Pod的总个数的情况下,拒绝调度容器部署单元Pod,执行步骤708。
比如,基于标签标识确定容器部署单元Pod所属的容器部署单元组PodGro up,统计容器部署单元组PodGroup中有五个容器部署单元Pod,而该容器部署单元组PodGroup中进行排序的容器部署单元Pod的个数仅有三个,则拒绝调度容器部署单元Pod。
通过预筛选处理可以在调度容器部署单元Pod前拒绝掉一些不符合调度条件的容器部署单元Pod,提升了调度效率。
步骤704:调度容器部署单元Pod。
调度框架基于预筛选处理后的容器部署单元Pod对应的标签标识确定容器部署单元Pod所属的容器部署单元组PodGroup;并在容器部署单元组PodGroup中确定容器部署单元Pod对应的调度信息。
在容器部署单元Pod没有标签标识的情况下,直接跳过本步骤,执行步骤705;
在容器部署单元Pod具有标签标识的情况下,基于容器部署单元Pod对应的标签标识确定容器部署单元Pod所属的容器部署单元组PodGroup;并在容器部署单元组PodGroup中确定容器部署单元Pod对应的调度信息。
在获取容器部署单元Pod对应的调度信息的情况下,调度框架获取第一节点的资源容量;在第一节点的资源容量支持容器部署单元Pod运行的情况下,调度框架根据调度信息,将容器部署单元Pod调度至第一节点上运行。
示例性地,在第一节点的资源容量不支持容器部署单元Pod运行的情况下,响应于创建目标实例请求,将容器部署单元Pod调度至第二节点上,第二节点是指节点集群中的任意节点。
可选地,在第一节点的资源容量不支持容器部署单元Pod运行的情况下,执行步骤708。
步骤705:阻断等待协同调度阶段。
在容器部署单元Pod没有标签标识的情况下,直接跳过本步骤,执行步骤706。
在容器部署单元Pod具有标签标识的情况下,基于容器部署单元Pod对应的标签标识确定容器部署单元Pod所属的容器部署单元组PodGroup,并确定当前处于预调度状态的容器部署单元Pod个数,以及容器部署单元组PodGroup中容器部署单元Pod的总个数。
例如,当前的容器部署单元Pod为第i个容器部署单元Pod,容器部署单元组PodGroup中容器部署单元Pod的总个数为n。
在第一节点的资源容量支持第i个容器部署单元Pod的情况下,将第i个容器部署单元Pod设置为预调度状态,并设置超时时间;
在i等于n的情况下,将n个预调度状态的容器部署单元Pod分别调度至第一节点上运行;
在i小于n且前i个容器部署单元Pod中的任一容器部署单元Pod对应的超时时间大于第二时间阈值的情况下,取消前i个容器部署单元Pod的预调度状态,并拒绝调度容器部署单元组PodGroup中的n个容器部署单元Pod,i为小于等于n的正整数,n为正整数。
例如,容器部署单元组PodGroup中包括5个容器部署单元Pod,在第一节点的资源容量支持第3个容器部署单元Pod的情况下,将第3个容器部署单元Pod设置为预调度状态,并开始设置超时时间,比如,第二时间阈值为60s,在60s内容器部署单元组PodGroup中包括5个容器部署单元Pod均未进入预调度状态的情况下,执行步骤707,取消前3个容器部署单元Pod的预调度状态,并拒绝调度容器部署单元组PodGroup中的5个容器部署单元Pod。
步骤706:调度善后阶段。
在调度框架对容器部署单元组PodGroup中的容器部署单元Pod进行调度后,更新容器部署单元组PodGroup的状态。
容器部署单元组PodGroup的状态包括:当前的容器部署单元Pod的调度状态、已调度的容器部署单元Pod的个数,但不限于此,本申请实施例对此不作具体限定。
步骤707:超时释放资源阶段。
在前i个容器部署单元Pod中的任一容器部署单元Pod对应的超时时间大于第二时间阈值的情况下,容器部署单元组PodGroup中的n个容器部署单元Pod未完成调度,取消前i个容器部署单元Pod的预调度状态,并拒绝调度容器部署单元组PodGroup中的n个容器部署单元Pod,同时,执行步骤709,将容器部署单元组PodGroup中的调度失败的容器部署单元Pod放入调度失败的容器部署单元Pod序列;将该容器部署单元组PodGroup放入拒绝调度缓存中,并自定义设置失效时间,,清空容器部署单元组PodGroup的开始调度时间。
步骤708:调度失败阶段。
在容器部署单元Pod没有标签标识的情况下,直接跳过本步骤,执行步骤709。
在容器部署单元Pod具有标签标识的情况下,基于容器部署单元Pod对应的标签标识确定容器部署单元Pod所属的容器部署单元组PodGroup,并确定当前处于未处于预调度状态的容器部署单元Pod个数j,以及容器部署单元组PodGroup中容器部署单元Pod的总个数k,在j/k的比值小于阈值的情况下,该容器部署单元组PodGroup可继续执行容器部署单元Pod的调度;在j/k的比值大于等于阈值的情况下,执行步骤709,将容器部署单元组PodGroup中调度失败的容器部署单元Pod放入调度失败的容器部署单元Pod序列;将该容器部署单元组PodGroup放入拒绝调度缓存中,并自定义设置失效时间,,清空容器部署单元组PodGroup的开始调度时间。
步骤709:调度失败的容器部署单元Pod序列。
在容器部署单元组PodGroup中的容器部署单元Pod调度失败的情况下,将容器部署单元组PodGroup中调度失败的容器部署单元Pod放入调度失败的容器部署单元Pod序列,将调度失败的该容器部署单元组PodGroup放入拒绝调度缓存中,并自定义设置失效时间,,清空容器部署单元组PodGroup的开始调度时间。
例如,设置失效时间为2s,在2s后重新调整该容器部署单元组PodGroup,并进行下一轮调度。
步骤710:容器部署单元Pod调度结束。
综上所述,本实施例提供的方法,通过获取目标实例的容器部署单元Pod,对容器部署单元Pod进行优先级排序,并对排序的容器部署单元Pod进行预筛选处理,调度框架基于预筛选处理后的容器部署单元Pod进行调度。本申请通过对获取的目标实例的容器部署单元Pod进行优先级排序、预筛选处理、调度处理、调度善后处理,基于上述方法,可通过外部干预的方式实现将容器部署单元Pod调度至指定节点,极大的加速了现有产品的上云进程,同时提高了研发效率;同时,通过采用外部调度器获取实例对应的容器部署单元Pod的调度信息的方式,可避免容器应用管理系统Kubernetes感知影响容器部署单元的调度的所有信息,从而避免了信息的泄露。
图8是本申请一个示例性实施例提供的目标实例的调度状态的流程图。该方法可以由容器应用管理系统执行,以容器应用管理系统为Kubernetes为例,容器应用管理系统Kubernetes可以实现于图2中的终端100或服务器200,该方法可用于数据库场景。该方法包括:
步骤801:初始调度状态。
调度框架通过数据服务接口API Server获取容器部署单元Pod,目标实例处于初始调度状态,并基于排序原则将容器部署单元Pod进行优先级排序。
步骤802:等待调度状态。
在进行优先级排序的容器部署单元Pod的个数达到容器部署单元组PodGroup中的容器部署单元Pod的总个数的情况下,目标实例处于等待调度状态。
在第一节点的资源容量不支持容器部署单元Pod运行的情况下,执行步骤806,目标实例处于调度失败状态。
步骤803:预调度状态。
容器部署单元组PodGroup中包括n个容器部署单元Pod;
在第一节点的资源容量支持第i个容器部署单元Pod的情况下,将第i个容器部署单元Pod设置为预调度状态。
在预调度状态的容器部署单元Pod的个数i未达到容器部署单元组PodGroup中的Pod的总个数n的情况下,目标实例处于预调度状态。
在第一节点的资源容量支持第i个容器部署单元Pod的情况下,将第i个容器部署单元Pod设置为预调度状态,并设置超时时间;
在预调度状态的容器部署单元Pod的个数i未达到容器部署单元组PodGroup中的Pod的总个数n,且前i个容器部署单元Pod中的任一容器部署单元Pod对应的超时时间大于第二时间阈值的情况下,执行步骤806,目标实例处于调度失败状态。
步骤804:调度完成状态。
在预调度状态的容器部署单元Pod的个数达到容器部署单元组PodGroup中的容器部署单元Pod的个数的情况下,目标实例处于调度完成状态。
步骤805:运行状态。
在目标实例下所有的容器部署单元Pod的状态都是运行状态的情况下,目标实例处于运行状态。
步骤806:失败状态。
在第一节点的资源容量不支持容器部署单元Pod运行的情况下,目标实例处于调度失败状态;
或,在预调度状态的容器部署单元Pod的个数i未达到容器部署单元组PodGroup中的Pod的总个数n,且前i个容器部署单元Pod中的任一容器部署单元Pod对应的超时时间大于第二时间阈值的情况下,目标实例处于调度失败状态。
综上所述,本实施例提供的方法,通过外部调度器获取容器部署单元Pod的调度信息;并将调度信息与实例关联存储,得到目标实例;响应于创建目标实例请求,将容器部署单元Pod调度至第一节点上运行。本申请通过外部调度器计算的方式获取实例对应的容器部署单元Pod的调度信息,并基于目标实例携带的调度信息,实现将容器部署单元Pod调度至第一节点上运行,通过外部干预的方式实现将容器部署单元Pod调度至指定节点,极大的加速了现有产品的上云进程,同时提高了研发效率;同时,通过采用外部调度器获取实例对应的容器部署单元Pod的调度信息的方式,可避免容器应用管理系统Kubernetes感知影响容器部署单元的调度的所有信息,从而避免了信息的泄露。
图9是本申请一个示例性实施例提供的容器部署单元的调度方法的示意图。该方法可以由容器应用管理系统Kubernetes执行,容器应用管理系统Kubernetes可以实现于图2中的终端100或服务器200,该方法可用于数据库场景。该方法包括:
示例性地,A机构研发出一个互联网产品,需要将该互联网产品上云应用。该互联网产品即为实例901。A机构基于该实例901上云需要的资源或对象自定义指定,确定出该实例901需要的资源配置,外部调度器902基于资源配置确定出容器部署单元Pod的调度信息。
资源配置反映实例901在运行时需要的容器部署单元Pod的情况。
A机构研发出的互联网产品在上云进程中需要B机构的容器应用管理系统Kubernetes903提供服务、管理、运营,A机构仅需提出针对性的调度信息即可。
在A机构的外部调度器902确定出容器部署单元Pod的调度信息的情况下,A机构将调度信息发送至B机构的容器应用管理系统Kubernetes903。容器应用管理系统Kubernetes903将A机构发送的调度信息与实例901关联存储,得到带有调度信息的实例,即,目标实例,从而将目标实例进行管理、调度、运营。
B机构的容器应用管理系统Kubernetes903响应于容器部署单元的创建目标实例请求,将容器部署单元调度至C机构的第一节点上。
第一节点是指节点集群中的指定节点。
节点可以是一台物理机,或者由若干台物理机组成的物理机集群,或者是一个云计算服务中心中的虚拟机等,但不限于此,本申请实施例对此不作具体限定。
可以理解的是,上述的A机构、B机构、C机构可以为同一家机构,也可以为不同的机构,本申请实施例对此不作具体限定。
例如,对象需要将程序产品G上云运行,一种实现方式为,将程序产品G中所有与调度相关的架构调整为适应于容器应用管理系统Kubernetes的架构,容器应用管理系统Kubernetes收到对象的上云请求,容器应用管理系统Kubernetes基于内部调度规则将该程序调度至随机节点运行,比如,将该程序产品G调度至虚拟机C和虚拟机D上运行;另一种实现方式为,基于外部调度器在程序产品G原有的调度相关的架构上获取调度信息,比如,调度信息为:对象指定程序产品G运行于虚拟机A。外部调度器基于对象的调度要求生成调度信息,并发送给容器应用管理系统Kubernetes,容器应用管理系统Kubernetes基于程序产品G及调度信息,将程序产品G调度至虚拟机A上运行。
综上所述,本实施例提供的方法,通过外部调度器获取容器部署单元Pod的调度信息;响应于创建目标实例请求,将容器部署单元Pod调度至第一节点上运行。本申请通过外部调度器计算的方式获取实例对应的容器部署单元Pod的调度信息,基于目标实例携带的调度信息,实现将容器部署单元Pod调度至第一节点上运行,可通过外部干预的方式实现将容器部署单元Pod调度至指定节点,在充分利用现有容器应用管理系统的基础上,无需调整原有产品的架构,从而极大的加速了现有产品的上云进程,同时提高了研发效率;同时,通过采用外部调度器获取实例对应的容器部署单元Pod的调度信息的方式,可避免容器应用管理系统Kubernetes感知影响容器部署单元的调度的所有信息,从而避免了信息的泄露。
图10示出了本申请一个示例性实施例提供的容器部署单元的调度装置的结构示意图。该装置可以通过软件、硬件或者两者的结合实现成为计算机设备的全部或一部分,该装置包括:
资源管控中心1001,用于接收外部调度器发送的所述容器部署单元的调度信息,所述调度信息用于指示将实例对应的所述容器部署单元调度至第一节点的信息;
资源管控中心1001,用于将所述调度信息与所述实例进行关联存储,得到目标实例;
调度模块1002,用于响应于创建目标实例请求,创建所述目标实例对应的所述容器部署单元,以及基于所述调度信息将所述容器部署单元Pod调度至所述第一节点上。
在一种可能的实现方式中,资源管控中心1001,还用于生成至少一个调度器配置SchedulerConfig,将所述实例对应的所述容器部署单元的调度信息存储至所述调度器配置;将所述调度器配置SchedulerConfig与所述实例进行关联存储,得到所述目标实例。
在一种可能的实现方式中,调度模块1002,还用于响应于创建目标实例请求且所述调度信息为至少两个,基于所述目标实例关联上的所述调度器配置SchedulerConfig生成与所述目标实例对应的容器部署单元组PodGroup,所述容器部署单元组PodGroup用于存储所述容器部署单元Pod的个数、每个容器部署单元Pod的调度信息,所述容器部署单元的个数与所述调度信息的数量相同;
创建所述目标实例对应的所述容器部署单元Pod,且在所述容器部署单元Pod上标定对应的所述容器部署单元组PodGroup的标签标识;
基于所述容器部署单元Pod对应的所述标签标识,确定所述容器部署单元Pod对应的所述调度信息;
根据所述调度信息,将所述容器部署单元Pod调度至所述第一节点上运行。
在一种可能的实现方式中,调度模块1002,还用于获取所述容器部署单元Pod,并基于排序原则将所述容器部署单元Pod进行排序;
对进行排序的所述容器部署单元Pod进行预筛选处理;
基于预筛选处理后的所述容器部署单元Pod对应的所述标签标识确定所述调度信息。
所述排序原则包括至少一种:
基于所述容器部署单元的优先级属性对所述容器部署单元进行排序;
基于所述容器部署单元的初始排序时间对所述容器部署单元进行排序;
基于所述容器部署单元的标识对所述容器部署单元进行排序。
在一种可能的实现方式中,调度模块1002,还用于在所述容器部署单元的优先级属性不同的情况下,基于所述容器部署单元的优先级属性对所述容器部署单元进行排序;在所述容器部署单元的优先级属性相同且初始排序时间不一致的情况下,基于所述容器部署单元的初始排序时间进行排序。在所述容器部署单元的优先级属性相同且初始排序时间一致的情况下,基于所述容器部署单元的标识进行排序。
预筛选处理包括以下情况中的至少一种:
基于所述容器部署单元的所述标签标识对所述容器部署单元进行预筛选处理;
基于所述容器部署单元对应的所述容器部署单元组的属性对所述容器部署单元进行预筛选处理;
基于所述容器部署单元对应的创建时间对所述容器部署单元进行预筛选处理;
基于所述容器部署单元的排序个数对所述容器部署单元进行预筛选处理。
在一种可能的实现方式中,调度模块1002,还用于在所述容器部署单元没有所述标签标识的情况下,通过预筛选处理;在所述容器部署单元具有所述标签标识且所述容器部署单元所属的所述容器部署单元组属于调度失败的容器部署单元组的情况下,拒绝调度所述容器部署单元;在所述容器部署单元具有所述标签标识且所述容器部署单元对应的创建时间段小于第一时间阈值的情况下,通过预筛选处理,所述创建时间段是指从创建所述容器部署单元到预筛选处理所述容器部署单元之间的时间段;在所述容器部署单元具有所述标签标识且所述容器部署单元组中排序的所述容器部署单元的个数小于所述容器部署单元组中包含的所述容器部署单元的总个数的情况下,拒绝调度所述容器部署单元。
在一种可能的实现方式中,调度模块1002,还用于基于预筛选处理后的所述容器部署单元Pod对应的所述标签标识确定所述容器部署单元Pod所属的容器部署单元组PodGroup;在所述容器部署单元组PodGroup中确定所述容器部署单元Pod对应的所述调度信息。
在一种可能的实现方式中调度模块1002,还用于获取所述第一节点的资源容量;在所述第一节点的资源容量支持所述容器部署单元Pod运行的情况下,所述调度框架根据所述调度信息,将所述容器部署单元Pod调度至所述第一节点上运行。
在一种可能的实现方式中,调度模块1002,还用于在所述第一节点的资源容量支持第i个容器部署单元Pod的情况下,将所述第i个容器部署单元Pod设置为预调度状态,并设置超时时间;
在i等于n的情况下,将n个预调度状态的所述容器部署单元Pod分别调度至所述第一节点上运行;
在i小于n且前i个容器部署单元Pod中的任一容器部署单元Pod对应的超时时间大于第二时间阈值的情况下,取消前i个容器部署单元Pod的预调度状态,并拒绝调度所述容器部署单元组PodGroup中的n个所述容器部署单元Pod,i为小于等于n的正整数,n为正整数。
在一种可能的实现方式中,调度模块1002,还用于在未将所述容器部署单元Pod调度至所述第一节点上运行的情况下,响应于创建目标实例请求,将所述容器部署单元Pod调度至第二节点上运行,所述第二节点是指节点集群中的任意节点。
在一种可能的实现方式中,资源管控中心1001,还用于通过所述外部调度器获取实例需要的资源配置,所述资源配置反映所述实例在运行时需要的容器部署单元Pod的情况;
所述外部调度器基于所述资源配置确定并发送所述容器部署单元Pod的调度信息。
图11示出了本申请一示例性实施例示出的计算机设备1100的结构框图。该计算机设备可以实现为本申请上述方案中的服务器。所述图像计算机设备1100包括中央处理单元(Central Processing Unit,CPU)1101、包括随机存取存储器(Random Access Memory,RAM)1102和只读存储器(Read-Only Memory,ROM)1103的系统存储器1104,以及连接系统存储器1104和中央处理单元1101的系统总线1105。所述图像计算机设备1100还包括用于存储操作系统1109、应用程序1110和其他程序模块1111的大容量存储设备1106。
所述大容量存储设备1106通过连接到系统总线1105的大容量存储控制器(未示出)连接到中央处理单元1101。所述大容量存储设备1106及其相关联的计算机可读介质为图像计算机设备1100提供非易失性存储。也就是说,所述大容量存储设备1106可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、可擦除可编程只读寄存器(Erasable Programmable Read Only Memory,EPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1104和大容量存储设备1106可以统称为存储器。
根据本公开的各种实施例,所述图像计算机设备1100还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即图像计算机设备1100可以通过连接在所述系统总线1105上的网络接口单元1107连接到网络1108,或者说,也可以使用网络接口单元1107来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括至少一段计算机程序,所述至少一段计算机程序存储于存储器中,中央处理器1101通过执行该至少一段程序来实现上述各个实施例所示的容器部署单元的调度方法中的全部或部分步骤。
本申请实施例还提供一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条程序,该至少一条程序由处理器加载并执行以实现上述各方法实施例提供的容器部署单元的调度方法。
本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有至少一条计算机程序,该至少一条计算机程序由处理器加载并执行以实现上述各方法实施例提供的容器部署单元的调度方法。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机程序由计算机设备的处理器从所述计算机可读存储介质读取并执行,使得所述计算机设备执行以实现上述各方法实施例提供的容器部署单元的调度方法。
可以理解的是,在本申请的具体实施方式中,涉及到的数据,历史数据,以及画像等与用户身份或特性相关的用户数据处理等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。
Claims (17)
1.一种容器部署单元的调度方法,其特征在于,所述方法包括:
接收外部调度器发送的容器部署单元的调度信息,所述调度信息用于指示将实例对应的所述容器部署单元调度至第一节点的信息;
将所述调度信息与所述实例进行关联存储,得到目标实例;
响应于创建目标实例请求,创建所述目标实例对应的所述容器部署单元,以及基于所述调度信息将所述容器部署单元调度至所述第一节点上运行。
2.根据权利要求1所述的方法,其特征在于,所述将所述调度信息与所述实例进行关联存储,得到目标实例,包括:
生成至少一个调度器配置,将所述实例对应的所述容器部署单元的调度信息存储至所述调度器配置;
将所述调度器配置与所述实例进行关联存储,得到所述目标实例。
3.根据权利要求2所述的方法,其特征在于,所述响应于创建目标实例请求,创建所述目标实例对应的所述容器部署单元,以及基于所述调度信息将所述容器部署单元调度至所述第一节点上运行,包括:
响应于所述创建目标实例请求且所述调度信息为至少两个,基于所述目标实例关联的所述调度器配置生成与所述目标实例对应的容器部署单元组,所述容器部署单元组用于存储所述容器部署单元的个数、及每个所述容器部署单元对应的调度信息,所述容器部署单元的个数与所述调度信息的数量相同;
创建所述目标实例对应的所述容器部署单元,且在所述容器部署单元上标定对应的所述容器部署单元组的标签标识;
基于所述容器部署单元对应的所述标签标识,确定所述容器部署单元对应的所述调度信息;
基于所述调度信息,将所述容器部署单元调度至所述第一节点上运行。
4.根据权利要求3所述的方法,其特征在于,所述基于所述容器部署单元对应的所述标签标识,确定所述容器部署单元对应的所述调度信息,包括:
获取所述容器部署单元,并基于排序原则将所述容器部署单元进行排序;
对排序后的所述容器部署单元进行预筛选处理;
基于预筛选处理后的所述容器部署单元对应的所述标签标识确定所述调度信息。
5.根据权利要求4所述的方法,其特征在于,所述排序原则包括至少一种:
基于所述容器部署单元的优先级属性对所述容器部署单元进行排序;
基于所述容器部署单元的初始排序时间对所述容器部署单元进行排序;
基于所述容器部署单元的标识对所述容器部署单元进行排序。
6.根据权利要求5所述的方法,其特征在于,所述基于排序原则将所述容器部署单元进行排序,包括:
在所述容器部署单元的优先级属性不同的情况下,基于所述容器部署单元的优先级属性对所述容器部署单元进行排序;
在所述容器部署单元的优先级属性相同且初始排序时间不一致的情况下,基于所述容器部署单元的初始排序时间进行排序;
在所述容器部署单元的优先级属性相同且所述初始排序时间一致的情况下,基于所述容器部署单元的标识进行排序。
7.根据权利要求4所述的方法,其特征在于,所述预筛选处理包括以下情况中的至少一种:
基于所述容器部署单元的所述标签标识对所述容器部署单元进行预筛选处理;
基于所述容器部署单元对应的所述容器部署单元组的属性对所述容器部署单元进行预筛选处理;
基于所述容器部署单元对应的创建时间对所述容器部署单元进行预筛选处理;
基于所述容器部署单元的排序个数对所述容器部署单元进行预筛选处理。
8.根据权利要求7所述的方法,其特征在于,所述对排序后的所述容器部署单元进行预筛选处理,包括:
在所述容器部署单元没有所述标签标识的情况下,通过预筛选处理;
在所述容器部署单元具有所述标签标识且所述容器部署单元所属的所述容器部署单元组属于调度失败的容器部署单元组的情况下,拒绝调度所述容器部署单元;
在所述容器部署单元具有所述标签标识且所述容器部署单元对应的创建时间段小于第一时间阈值的情况下,通过预筛选处理,所述创建时间段是指从创建所述容器部署单元到预筛选处理所述容器部署单元之间的时间段;
在所述容器部署单元具有所述标签标识且所述容器部署单元组中排序的所述容器部署单元的个数小于所述容器部署单元组中包含的所述容器部署单元的总个数的情况下,拒绝调度所述容器部署单元。
9.根据权利要求4所述的方法,其特征在于,所述基于预筛选处理后的所述容器部署单元对应的所述标签标识确定所述调度信息,包括:
基于预筛选处理后的所述容器部署单元对应的所述标签标识确定所述容器部署单元所属的容器部署单元组;
在所述容器部署单元组中确定所述容器部署单元对应的所述调度信息。
10.根据权利要求3所述的方法,其特征在于,所述根据所述调度信息,将所述容器部署单元调度至所述第一节点上运行,包括:
获取所述第一节点的资源容量;
在所述第一节点的资源容量支持所述容器部署单元运行的情况下,根据所述调度信息,将所述容器部署单元调度至所述第一节点上运行。
11.根据权利要求10所述的方法,其特征在于,所述容器部署单元组中包括n个所述容器部署单元;
所述在所述第一节点的资源容量支持所述容器部署单元运行的情况下,根据所述调度信息,将所述容器部署单元调度至所述第一节点上运行,包括:
在所述第一节点的资源容量支持第i个容器部署单元运行的情况下,将所述第i个容器部署单元设置为预调度状态,并设置超时时间;
在i等于n的情况下,将n个预调度状态的所述容器部署单元Pod分别调度至所述第一节点上运行;
在i小于n且前i个容器部署单元中的任一容器部署单元对应的所述超时时间大于第二时间阈值的情况下,取消前i个容器部署单元的预调度状态,并拒绝调度所述容器部署单元组中的n个所述容器部署单元,i为小于等于n的正整数,n为正整数。
12.根据权利要求1至11任一所述的方法,其特征在于,所述方法还包括:
在未将所述容器部署单元调度至所述第一节点上运行的情况下,响应于创建所述目标实例请求,将所述容器部署单元调度至第二节点上运行,所述第二节点是指节点集群中的任意节点。
13.根据权利要求1至11任一所述的方法,其特征在于,所述方法还包括:
通过所述外部调度器获取实例需要的资源配置,所述资源配置反映所述实例在运行时需要的所述容器部署单元的情况;
所述外部调度器基于所述资源配置确定并发送所述容器部署单元的调度信息。
14.一种容器部署单元的调度装置,其特征在于,所述装置包括:
资源管控中心,用于接收外部调度器发送的容器部署单元的调度信息,所述调度信息用于指示将实例对应的所述容器部署单元调度至第一节点的信息;
所述资源管控中心,用于将所述调度信息与所述实例进行关联存储,得到目标实例;
调度模块,用于响应于创建目标实例请求,创建所述目标实例对应的所述容器部署单元,以及基于所述调度信息将所述容器部署单元调度至所述第一节点上运行。
15.一种计算机设备或计算机设备集群,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条计算机程序,至少一条所述计算机程序由所述处理器加载并执行以实现如权利要求1至13中任一项所述的容器部署单元的调度方法。
16.一种计算机存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,至少一条计算机程序由处理器加载并执行以实现如权利要求1至13中任一项所述的容器部署单元的调度方法。
17.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机程序由计算机设备的处理器从所述计算机可读存储介质读取并执行,使得所述计算机设备执行如权利要求1至13中任一项所述的容器部署单元的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210621842.3A CN117194003A (zh) | 2022-06-01 | 2022-06-01 | 容器部署单元的调度方法、装置、设备、介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210621842.3A CN117194003A (zh) | 2022-06-01 | 2022-06-01 | 容器部署单元的调度方法、装置、设备、介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194003A true CN117194003A (zh) | 2023-12-08 |
Family
ID=88993022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210621842.3A Pending CN117194003A (zh) | 2022-06-01 | 2022-06-01 | 容器部署单元的调度方法、装置、设备、介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194003A (zh) |
-
2022
- 2022-06-01 CN CN202210621842.3A patent/CN117194003A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yao et al. | Fog resource provisioning in reliability-aware IoT networks | |
US10986168B2 (en) | Distributed catalog service for multi-cluster data processing platform | |
US11422853B2 (en) | Dynamic tree determination for data processing | |
Pham et al. | A cost-and performance-effective approach for task scheduling based on collaboration between cloud and fog computing | |
US10606881B2 (en) | Sharing container images between mulitple hosts through container orchestration | |
JP7275171B2 (ja) | オンデマンドネットワークコード実行システムにおけるオペレーティングシステムカスタマイゼーション | |
US8150889B1 (en) | Parallel processing framework | |
CN112753019A (zh) | 按需代码执行系统中执行环境的有效状态维持 | |
US8190593B1 (en) | Dynamic request throttling | |
US11394794B2 (en) | Fast ingestion of records in a database using data locality and queuing | |
CN111108479A (zh) | 自主多租户数据库云服务框架 | |
US10505791B2 (en) | System and method to handle events using historical data in serverless systems | |
US9459897B2 (en) | System and method for providing data analysis service in cloud environment | |
US20200278975A1 (en) | Searching data on a synchronization data stream | |
WO2018005125A1 (en) | Ingestion manager for analytics platform | |
US11418583B2 (en) | Transaction process management by dynamic transaction aggregation | |
Deshai et al. | Big data Hadoop MapReduce job scheduling: A short survey | |
CN112199200B (zh) | 资源调度方法、装置、计算机设备和存储介质 | |
CN117076096A (zh) | 任务流程的执行方法、装置、计算机可读介质及电子设备 | |
US20230289214A1 (en) | Intelligent task messaging queue management | |
CN117194003A (zh) | 容器部署单元的调度方法、装置、设备、介质及程序产品 | |
Loganathan et al. | Job scheduling with efficient resource monitoring in cloud datacenter | |
US10162626B2 (en) | Ordered cache tiering for program build files | |
US9436523B1 (en) | Holistic non-invasive evaluation of an asynchronous distributed software process | |
US10902346B2 (en) | Efficient semi-supervised concept organization accelerated via an inequality process |
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 |