CN111008063B - 一种基于docker的用户绑定调度方法及系统 - Google Patents

一种基于docker的用户绑定调度方法及系统 Download PDF

Info

Publication number
CN111008063B
CN111008063B CN201911122211.1A CN201911122211A CN111008063B CN 111008063 B CN111008063 B CN 111008063B CN 201911122211 A CN201911122211 A CN 201911122211A CN 111008063 B CN111008063 B CN 111008063B
Authority
CN
China
Prior art keywords
node
rule
scheduling
pod
subfield
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
CN201911122211.1A
Other languages
English (en)
Other versions
CN111008063A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201911122211.1A priority Critical patent/CN111008063B/zh
Publication of CN111008063A publication Critical patent/CN111008063A/zh
Application granted granted Critical
Publication of CN111008063B publication Critical patent/CN111008063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种基于docker的用户绑定调度方法及系统,方法包括如下步骤:S1.为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段;S2.获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;S3.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;S4.为调度目标节点集合中各节点打分确定调度目标节点。本发明通过改进待调度Pod的描述文件,增加多节点匹配规则字段,根据多节匹配规则字段对用户定义调度策略进行绑定,应对用户在为Pod指定宿主机的复杂场景。

Description

一种基于docker的用户绑定调度方法及系统
技术领域
本发明属于虚拟化容器技术领域,具体涉及一种基于docker的用户绑定调度方法及系统。
背景技术
Docker自2013年诞生以来,立即被广大软件提供商看到了其所带来的巨大变革意义,并因此纷纷向Docker靠拢,针对其搭建了满足各种需求的生态系统。从而也使得Docker得到了迅速发展,现已成云计算领域最火热的话题之一。Docker的优势在于隔离性、资源可控制和便携性,可以为软件开发、部署和维护提供诸多便利,因此自诞生起就受到了IT界的极大重视。当前比较流行的容器集群管理工具有Google的Kubernetes和分布式操作系统CoreOS。这二者中,由于Kubernetes具有完善的副本管理和访问代理功能、强大的开发团队以及活跃的开源社区,Kubernetes中的基本概念有:Pod、Replication Controller、Service、Label和Selector;Pod,是Kubernetes最基本的部署调度单元,可以包含container,逻辑上表示某种应用的一个实例;Replication Controller,是pod的复制抽象,用于解决pod的扩容缩容问题;Service,是pod的路由代理抽象,用于解决pod之间的服务发现问题;Label,就是为pod加上可用于搜索或关联的一组key/value标签,而service和replicationController正是通过label来与pod关联的;Selector,带有Label的对象创建好之后,我们就可以通过LabelSelector来引用这些对象。Kubernetes是管理Docker容器的集群管理系统,而Docker主要关注于提供容器和镜像,而无论是互联网巨头亦或是初创型公司,甚至是普通的用户,他们都需要一个集成的容器云平台高效地完成应用封装、资源分配、任务调度、自动化部署、服务发现、网络管理、健康监控等任务,让用户能透明地享用容器技术带来的便利。云服务运营商希望在为用户提供可靠服务的同时使成本最小化,而用户则关注于获得优质的服务,这就需要一个有效的资源调度策略来解决上述问题。
Kubernetes进行用户绑定调度策略时主要依据是根据Pod的资源描述文件的nodeName属性和nodeSelectors属性,当二者不为空时,则遍历集群所有可用节点,找出与资源描述文件匹配的节点集合,再通过其它Predicate策略和Priority策略选出最佳节点进行调度。上述的调度方式是一种强绑定方式,匹配规则较为简单,在选择节点的过程中,一旦工作节点的相关属性值与Pod资源描述文件不匹配,或者属性匹配但资源不足,调度器都会无视一切用户需求,选择其他调度策略进行调度。显然这种调度方式不适合复杂的应用场景。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于docker的用户绑定调度方法及系统,是非常有必要的。
发明内容
针对现有技术的上述容器集群管理工具有Kubernetes现有调度模式带来的资源分配不灵活的缺陷,本发明提供一种基于docker的用户绑定调度方法及系统,以解决上述技术问题。
第一方面,本发明提供一种基于docker的用户绑定调度方法,包括如下步骤:
S1.为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段;
S2.获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;
S3.从多节点匹配规则字段中解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;
S4.为调度目标节点集合中各节点打分确定调度目标节点。
进一步地,步骤S1中还包括设定默认目标节点调度规则;
步骤S2具体包括如下步骤:
S21.获取并解析待调度Pod的描述文件,判断其中是否含有多节点匹配规则字段;
若是,则进入步骤S22;
若否,则进入步骤S23;
S22.解析出待调度Pod的描述文件中的多节点匹配规则字段,进入步骤S3;
S23.采用默认目标节点调度规则。
进一步地,步骤S1中多节点匹配规则字段配置的子字段还包括集合为空处理规则子字段;
步骤S3具体步骤如下:
S31.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段;
S32.根据调度目标节点集合确定规则子字段确定调度目标节点集合;
S33.判断调度目标节点集合是否为空;
若否,则进入步骤S4;
若是,则进入步骤S34;
S34.根据集合为空处理规则子字段的规则进行目标节点调度。
进一步地,步骤S34具体步骤如下:
S341.判断集合为空处理规则子字段的规则为重新安排还是默认;
若是默认,则进入步骤S23;
若是重新安排,则进入步骤S342;
S342.将该Pod配置到待调度Pod队列的队尾,等待下一次调度。
进一步地,所述调度目标节点集合确定规则子字段的确定规则包括:
待调度目标节点的标签为设定的主机名称,且其值为设定的Web服务器软件。待调度目标节点的标签中包含key=kubernetes.io/hostname,其值为设定的Web服务器软件apache或者nginx时才能成为调度的目标主机。
进一步地,步骤S1中多节点匹配规则字段配置的子字段还包括节点标签更改处理规则子字段;
还包括步骤S5.判断运行节点的标签是否发生更改,并在节点标签更改时,按照节点标签更改处理规则子字段的规则对节点进行处理。
进一步地,步骤S5具体步骤如下:
S51.每间隔设定周期判断运行节点标签是否发生更改;
若是,进入步骤S52;
S52.获取并判断节点标签更改处理规则子字段的规则为维持原状、重新安排还是销毁;
若是维持原状,则设定该节点的Pod仍然运行;
若是重新安排,则将该节点的Pod放入待调度队列,等待重新调度;
若是销毁,则将该节点的Pod销毁,并回收其所占资源。
进一步地,步骤S4具体步骤如下:
S41.为调度目标集合中各节点打分;
S42.获取得分最高的节点,并判断得分最高的节点是否为多个;
若否,则设定得分最高的节点为调度目标节点;
若是,从得分最高的多个节点中随机选取一个作为调度目标节点。
第二方面,本发明还提供一种基于docker的用户绑定调度系统,包括:
待调度Pod描述文件配置模块,用于为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段、集合为空处理规则子字段和节点标签更改处理规则子字段;还用于设定默认目标节点调度规;
Pod描述文件解析模块,用于获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;
调度目标节点集合确定模块,用于从多节点匹配规则字段中解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;
调度目标节点确定模块,用于为调度目标节点集合中各节点打分确定调度目标节点;
运行节点标签更改处理模块,用于判断运行节点的标签是否发生更改,并在节点标签更改时,按照节点标签更改处理规则子字段的规则对节点进行处理。
进一步地,Pod描述文件解析模块包括:
多节点匹配规则判断单元,用于获取并解析待调度Pod的描述文件,判断其中是否含有多节点匹配规则字段;
多节点匹配规则字段解析单元,用于当待调度Pod的描述文件含有多节点匹配规则字段时,解析出待调度Pod的描述文件中的多节点匹配规则字段;
默认规则调度单元,用于当待调度Pod的描述文件不含有多节点匹配规则字段时,采用默认目标节点调度规则;
调度目标节点集合确定模块包括:
调度目标节点集合确定规则子字段解析单元,用于从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段;
调度目标节点集合确定单元,用于根据调度目标节点集合确定规则子字段确定调度目标节点集合;
调度目标节点集合判断单元,用于判断调度目标节点集合是否为空;
目标节点调度单元,用于当调度目标节点集合为空时,根据集合为空处理规则子字段的规则进行目标节点调度;
调度目标节点确定模块包括:
打分单元,用于为调度目标集合中各节点打分;
得分最高节点获取单元,用于获取得分最高的节点,并判断得分最高的节点是否为多个;
调度目标节点设定第一单元,用于当得分最高的节点只有一个时,设定得分最高的节点为调度目标节点;
调度目标节点设定第二单元,用于当得分最高的节点为多个时,从得分最高的多个节点中随机选取一个作为调度目标节点;
运行节点标签更改处理模块包括:
运行节点标签更改判断单元,用于每间隔设定周期判断运行节点标签是否发生更改;
标签更改处理规则判断单元,用于当运行节点标签发生更改时,获取并判断节点标签更改处理规则子字段的规则为维持原状、重新安排还是销毁;
Pod保持单元,用于当运行节点标签发生更改,且节点标签更改处理规则子字段的规则为维持原状时,设定该节点的Pod仍然运行;
Pod重新调度单元,用于当运行节点标签发生更改,且节点标签更改处理规则子字段的规则为重新安排时,将该节点的Pod放入待调度队列,等待重新调度;
Pod销毁单元,用于运行节点标签发生更改,且当节点标签更改处理规则子字段的规则为重新销毁时,将该节点的Pod销毁,并回收其所占资源。
本发明的有益效果在于,
本发明提供的基于docker的用户绑定调度方法及系统,通过改进待调度Pod的描述文件,在原有PodSelectorsMatches基础上,增加多节点匹配规则字段,根据多节匹配规则字段对用户定义调度策略进行绑定,应对用户在为Pod指定宿主机的复杂场景。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的方法流程示意图一;
图2是本发明的方法流程示意图二;
图3是本发明的系统示意图;
图中,1-待调度Pod描述文件配置模块;2-Pod描述文件解析模块;2.1-多节点匹配规则判断单元;2.2-多节点匹配规则字段解析单元;2.3-默认规则调度单元;3-调度目标节点集合确定模块;3.1-调度目标节点集合确定规则子字段解析单元;3.2-调度目标节点集合确定单元;3.3-调度目标节点集合判断单元;3.4-目标节点调度单元;4-调度目标节点确定模块;4.1-打分单元;4.2-得分最高节点获取单元;4.3-调度目标节点设定第一单元;4.4-调度目标节点设定第二单元;5-运行节点标签更改处理模块;5.1-运行节点标签更改判断单元;5.2-标签更改处理规则判断单元;5.3-Pod保持单元;5.4-Pod重新调度单元。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种基于docker的用户绑定调度方法,包括如下步骤:
S1.为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段;
S2.获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;
S3.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;
S4.为调度目标节点集合中各节点打分确定调度目标节点。在我们实际应用中经常需要把指定的Pod调度到指定的服务器上运行,例如一些公司将服务器集群按功能或部门分类,这就需要将特定功能的Pod调度到作为节点的特定的机器上运行。Kubernetes里的所有资源对象都是采用yaml或者JSON格式的文件来定义描述的。因此将指定Pod调度到指定的节点上,需要为Pod和Node添加相应的匹配标签,直接使用kubectl命令行为指定Node添加标签。
实施例2:
如图1所示,本发明提供一种基于docker的用户绑定调度方法,包括如下步骤:
S1.为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段和节点标签更改处理规则子字段;
S2.获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;
S3.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;
S4.为调度目标节点集合中各节点打分确定调度目标节点;
S5.判断运行节点的标签是否发生更改,并在节点标签更改时,按照节点标签更改处理规则子字段的规则对节点进行处理;
其中,所述调度目标节点集合确定规则子字段的确定规则包括:
待调度目标节点的标签为设定的主机名称,且其值为设定的Web服务器软件。待调度目标节点的标签中包含key=kubernetes.io/hostname,其值为设定的Web服务器软件apache或者nginx时才能成为调度的目标主机。
实施例3:
如图2所示,本发明提供本发明提供一种基于docker的用户绑定调度方法,包括如下步骤:
S1.为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段、集合为空处理规则子字段和节点标签更改处理规则子字段;同时设定默认目标节点调度规则;
S2.获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;具体包括如下步骤:
S21.获取并解析待调度Pod的描述文件,判断其中是否含有多节点匹配规则字段;
若是,则进入步骤S22;
若否,则进入步骤S23;
S22.解析出待调度Pod的描述文件中的多节点匹配规则字段,进入步骤S3;
S23.采用默认目标节点调度规则;
S3.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;具体步骤如下:
S31.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段;
S32.根据调度目标节点集合确定规则子字段确定调度目标节点集合;
S33.判断调度目标节点集合是否为空;
若否,则进入步骤S4;
若是,则进入步骤S34;
S34.根据集合为空处理规则子字段的规则进行目标节点调度;具体步骤如下:
S341.判断集合为空处理规则子字段的规则为重新安排还是默认;
若是默认,则进入步骤S23;
若是重新安排,则进入步骤S342;
S342.将该Pod配置到待调度Pod队列的队尾,等待下一次调度;
S4.为调度目标节点集合中各节点打分确定调度目标节点;具体步骤如下:
S41.为调度目标集合中各节点打分;
S42.获取得分最高的节点,并判断得分最高的节点是否为多个;
若否,则设定得分最高的节点为调度目标节点;
若是,从得分最高的多个节点中随机选取一个作为调度目标节点;
S5.判断运行节点的标签是否发生更改,并在节点标签更改时,按照节点标签更改处理规则子字段的规则对节点进行处理;具体步骤如下:
S51.每间隔设定周期判断运行节点标签是否发生更改;
若是,进入步骤S52;
S52.获取并判断节点标签更改处理规则子字段的规则为维持原状、重新安排还是销毁;
若是维持原状,则设定该节点的Pod仍然运行;
若是重新安排,则将该节点的Pod放入待调度队列,等待重新调度;
若是销毁,则将该节点的Pod销毁,并回收其所占资源。
上述实施例3中,为服务器名为node.js-backend的节点指定标签hostname值为node.js-backend,使用如下命令:
kubectl label nodes node.js-backend hostname=node.js-backend
然后为Pod的描述文件添加一个multiNodeSelectors字段来表示匹配的具体规则。例如我们可以指定一个名为node.js-backend的Pod定义如下:
Figure BDA0002275751620000121
Figure BDA0002275751620000131
其中,子字段expressions是一个对象数组,存储一个或多个表达式,这里的设置表明只有Node的labels中包含key=kubernetes.io/hostname,并且其value为“apache”或者“nginx”时才能成为调度的目标主机;
子字段nodeLabelChange属性设置为still表示在后期运行中当节点的标签发生更改时,导致Pod的匹配表达式不再匹配时,该Pod将仍在该节点上运行,若设置为reshedule,则表示当节点的标签发生更改时,Pod会重新调度到合适的目标节点上,还可以设置为kill,表示节点的标签发生更改将回收此Pod;
子字段collectionIsEmpty属性表示按expressions表达式查找出的候选节点集合为空时调度器的应对方式,有两个可选值,default表示,在挑选目标节点时最好按照匹配表达式的规则寻找最佳Node,但是当不存在表达式所描述的节点时使用default算法的其它调度策略重新选择宿主机,这种方式适合那些希望Pod尽快被调度运行的场景,是一种弱绑定;reshedule表示目标节点不存在时将该Pod放入待调度Pod队列中等待下次被重新调度,直到找到匹配宿主机为止,是一种强绑定。
实施例4:
如图3所示,本发明提供一种基于docker的用户绑定调度系统,包括:
待调度Pod描述文件配置模块1,用于为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段、集合为空处理规则子字段和节点标签更改处理规则子字段;还用于设定默认目标节点调度规;
Pod描述文件解析模块2,用于获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;Pod描述文件解析模块2包括:
多节点匹配规则判断单元2.1,用于获取并解析待调度Pod的描述文件,判断其中是否含有多节点匹配规则字段;
多节点匹配规则字段解析单元2.2,用于当待调度Pod的描述文件含有多节点匹配规则字段时,解析出待调度Pod的描述文件中的多节点匹配规则字段;
默认规则调度单元2.3,用于当待调度Pod的描述文件不含有多节点匹配规则字段时,采用默认目标节点调度规则;
调度目标节点集合确定模块3,用于从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;调度目标节点集合确定模块3包括:
调度目标节点集合确定规则子字段解析单元3.1,用于从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段;
调度目标节点集合确定单元3.2,用于根据调度目标节点集合确定规则子字段确定调度目标节点集合;
调度目标节点集合判断单元3.3,用于判断调度目标节点集合是否为空;
目标节点调度单元3.4,用于当调度目标节点集合为空时,根据集合为空处理规则子字段的规则进行目标节点调度;
调度目标节点确定模块4,用于为调度目标节点集合中各节点打分确定调度目标节点;调度目标节点确定模块4包括:
打分单元4.1,用于为调度目标集合中各节点打分;
得分最高节点获取单元4.2,用于获取得分最高的节点,并判断得分最高的节点是否为多个;
调度目标节点设定第一单元4.3,用于当得分最高的节点只有一个时,设定得分最高的节点为调度目标节点;
调度目标节点设定第二单元4.4,用于当得分最高的节点为多个时,从得分最高的多个节点中随机选取一个作为调度目标节点;
运行节点标签更改处理模块5,用于判断运行节点的标签是否发生更改,并在节点标签更改时,按照节点标签更改处理规则子字段的规则对节点进行处理;运行节点标签更改处理模块5包括:
运行节点标签更改判断单元5.1,用于每间隔设定周期判断运行节点标签是否发生更改;
标签更改处理规则判断单元5.2,用于当运行节点标签发生更改时,获取并判断节点标签更改处理规则子字段的规则为维持原状、重新安排还是销毁;
Pod保持单元5.3,用于当运行节点标签发生更改,且节点标签更改处理规则子字段的规则为维持原状时,设定该节点的Pod仍然运行;
Pod重新调度单元5.4,用于当运行节点标签发生更改,且节点标签更改处理规则子字段的规则为重新安排时,将该节点的Pod放入待调度队列,等待重新调度;
Pod销毁单元5.5,用于运行节点标签发生更改,且当节点标签更改处理规则子字段的规则为重新销毁时,将该节点的Pod销毁,并回收其所占资源。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (4)

1.一种基于docker的用户绑定调度方法,其特征在于,包括如下步骤:
S1.为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段;步骤S1中还包括设定默认目标节点调度规则;步骤S1中多节点匹配规则字段配置的子字段还包括集合为空处理规则子字段;步骤S1中多节点匹配规则字段配置的子字段还包括节点标签更改处理规则子字段;
S2.获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;具体包括如下步骤:
S21.获取并解析待调度Pod的描述文件,判断其中是否含有多节点匹配规则字段;
若是,则进入步骤S22;
若否,则进入步骤S23;
S22.解析出待调度Pod的描述文件中的多节点匹配规则字段,进入步骤S3;
S23.采用默认目标节点调度规则;
S3.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;具体步骤如下:
S31.从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段;
S32.根据调度目标节点集合确定规则子字段确定调度目标节点集合;
S33.判断调度目标节点集合是否为空;
若否,则进入步骤S4;
若是,则进入步骤S34;
S34.根据集合为空处理规则子字段的规则进行目标节点调度;
S4.为调度目标节点集合中各节点打分确定调度目标节点;具体步骤如下:
S41.为调度目标集合中各节点打分;
S42.获取得分最高的节点,并判断得分最高的节点是否为多个;
若否,则设定得分最高的节点为调度目标节点;
若是,从得分最高的多个节点中随机选取一个作为调度目标节点;
S5.判断运行节点的标签是否发生更改,并在节点标签更改时,按照节点标签更改处理规则子字段的规则对节点进行处理;具体步骤如下:
S51.每间隔设定周期判断运行节点标签是否发生更改;
若是,进入步骤S52;
S52.获取并判断节点标签更改处理规则子字段的规则为维持原状、重新安排还是销毁;
若是维持原状,则设定该节点的Pod仍然运行;
若是重新安排,则将该节点的Pod放入待调度队列,等待重新调度;
若是销毁,则将该节点的Pod销毁,并回收其所占资源。
2.如权利要求1所述的基于docker的用户绑定调度方法,其特征在于,步骤S34具体步骤如下:
S341.判断集合为空处理规则子字段的规则为重新安排还是默认;
若是默认,则进入步骤S23;
若是重新安排,则进入步骤S342;
S342.将该Pod配置到待调度Pod队列的队尾,等待下一次调度。
3.如权利要求1所述的基于docker的用户绑定调度方法,其特征在于,所述调度目标节点集合确定规则子字段的确定规则包括:
待调度目标节点的标签为设定的主机名称,且其值为设定的Web服务器软件。
4.一种基于docker的用户绑定调度系统,其特征在于,包括:
待调度Pod描述文件配置模块(1),用于为待调度Pod的描述文件配置多节点匹配规则字段,并为多节点匹配规则字段配置子字段,所述子字段包括调度目标节点集合确定规则子字段、集合为空处理规则子字段和节点标签更改处理规则子字段;还用于设定默认目标节点调度规则 ;
Pod描述文件解析模块(2),用于获取待调度Pod的描述文件,解析出待调度Pod的描述文件中的多节点匹配规则字段;Pod描述文件解析模块(2)包括:
多节点匹配规则判断单元(2.1),用于获取并解析待调度Pod的描述文件,判断其中是否含有多节点匹配规则字段;
多节点匹配规则字段解析单元(2.2),用于当待调度Pod的描述文件含有多节点匹配规则字段时,解析出待调度Pod的描述文件中的多节点匹配规则字段;
默认规则调度单元(2.3),用于当待调度Pod的描述文件不含有多节点匹配规则字段时,采用默认目标节点调度规则;
调度目标节点集合确定模块(3),用于从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段,确定调度目标节点集合;调度目标节点集合确定模块(3)包括:
调度目标节点集合确定规则子字段解析单元(3.1),用于从多节点匹配规则字段中的解析出调度目标节点集合确定规则子字段;
调度目标节点集合确定单元(3.2),用于根据调度目标节点集合确定规则子字段确定调度目标节点集合;
调度目标节点集合判断单元(3.3),用于判断调度目标节点集合是否为空;
目标节点调度单元(3.4),用于当调度目标节点集合为空时,根据集合为空处理规则子字段的规则进行目标节点调度;
调度目标节点确定模块(4),用于为调度目标节点集合中各节点打分确定调度目标节点;调度目标节点确定模块(4)包括:
打分单元(4.1),用于为调度目标集合中各节点打分;
得分最高节点获取单元(4.2),用于获取得分最高的节点,并判断得分最高的节点是否为多个;
调度目标节点设定第一单元(4.3),用于当得分最高的节点只有一个时,设定得分最高的节点为调度目标节点;
调度目标节点设定第二单元(4.4),用于当得分最高的节点为多个时,从得分最高的多个节点中随机选取一个作为调度目标节点;
运行节点标签更改处理模块(5),用于判断运行节点的标签是否发生更改,并在节点标签更改时,按照节点标签更改处理规则子字段的规则对节点进行处理;运行节点标签更改处理模块(5)包括:
运行节点标签更改判断单元(5.1),用于每间隔设定周期判断运行节点标签是否发生更改;
标签更改处理规则判断单元(5.2),用于当运行节点标签发生更改时,获取并判断节点标签更改处理规则子字段的规则为维持原状、重新安排还是销毁;
Pod保持单元(5.3),用于当运行节点标签发生更改,且节点标签更改处理规则子字段的规则为维持原状时,设定该节点的Pod仍然运行;
Pod重新调度单元(5.4),用于当运行节点标签发生更改,且节点标签更改处理规则子字段的规则为重新安排时,将该节点的Pod放入待调度队列,等待重新调度;
Pod销毁单元(5.5),用于运行节点标签发生更改,且当节点标签更改处理规则子字段的规则为重新销毁时,将该节点的Pod销毁,并回收其所占资源。
CN201911122211.1A 2019-11-15 2019-11-15 一种基于docker的用户绑定调度方法及系统 Active CN111008063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911122211.1A CN111008063B (zh) 2019-11-15 2019-11-15 一种基于docker的用户绑定调度方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911122211.1A CN111008063B (zh) 2019-11-15 2019-11-15 一种基于docker的用户绑定调度方法及系统

Publications (2)

Publication Number Publication Date
CN111008063A CN111008063A (zh) 2020-04-14
CN111008063B true CN111008063B (zh) 2022-07-19

Family

ID=70113755

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911122211.1A Active CN111008063B (zh) 2019-11-15 2019-11-15 一种基于docker的用户绑定调度方法及系统

Country Status (1)

Country Link
CN (1) CN111008063B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933664A (zh) * 2017-03-09 2017-07-07 北京搜狐新媒体信息技术有限公司 一种Hadoop集群的资源调度方法及装置
CN108228354A (zh) * 2017-12-29 2018-06-29 杭州朗和科技有限公司 调度方法、系统、计算机设备和介质
CN110300130A (zh) * 2018-03-21 2019-10-01 中移(苏州)软件技术有限公司 一种资源调度方法、装置、电子设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933664A (zh) * 2017-03-09 2017-07-07 北京搜狐新媒体信息技术有限公司 一种Hadoop集群的资源调度方法及装置
CN108228354A (zh) * 2017-12-29 2018-06-29 杭州朗和科技有限公司 调度方法、系统、计算机设备和介质
CN110300130A (zh) * 2018-03-21 2019-10-01 中移(苏州)软件技术有限公司 一种资源调度方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111008063A (zh) 2020-04-14

Similar Documents

Publication Publication Date Title
US8352411B2 (en) Activity schemes for support of knowledge-intensive tasks
Merialdo Tagging text with a probabilistic model
CN107317724A (zh) 基于云计算技术的数据采集系统及方法
US11810126B2 (en) System and method for implementing an intelligent customer service query management and routing system
Giemza et al. LEMONADE: a flexible authoring tool for integrated mobile learning scenarios
CN110704178A (zh) 机器学习模型训练方法、平台、电子设备及可读存储介质
Carrión Kubernetes as a standard container orchestrator-a bibliometric analysis
Wang et al. A novel complex event processing engine for intelligent data analysis in integrated information systems
CN118093801A (zh) 基于大语言模型的信息交互方法、装置以及电子设备
Becks et al. Expertise finding: approaches to foster social capital
Ko et al. Composing web services for large-scale tasks
CN111008063B (zh) 一种基于docker的用户绑定调度方法及系统
Chowdhary et al. QoS enhancement in cloud-IoT framework for educational institution with task allocation and scheduling with task-VM matching approach
Bottoni et al. Applying algebraic approaches for modeling workflows and their transformations in mobile networks
CN110913018A (zh) 一种分布式调控服务系统
Flahive et al. A distributed ontology framework for the grid
Vardhan et al. An overview of web services composition approaches
Andročec Systematic mapping study on osmotic computing
Rodríguez et al. How to manage knowledge in the software maintenance process
Ding et al. Implement the grid workflow scheduling for data intensive applications with csf4
Shamsa et al. A decentralized prediction-based workflow load balancing architecture for cloud/fog/IoT environments
Shumilov et al. Distributed scientific workflow management for data-intensive applications
Rolfe et al. Real-Time Information Extraction from Big Data
Jahnen et al. Information Exchange Diagrams for Information Systems and Artificial Intelligence in the Context of Decision Support Systems
Patwari et al. A Systematic Review of Optimal Task Scheduling Methods Using Machine Learning in Cloud Computing Environments

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
GR01 Patent grant
GR01 Patent grant