CN111614729B - 对kubernetes容器集群的控制方法、装置及电子设备 - Google Patents

对kubernetes容器集群的控制方法、装置及电子设备 Download PDF

Info

Publication number
CN111614729B
CN111614729B CN202010350274.9A CN202010350274A CN111614729B CN 111614729 B CN111614729 B CN 111614729B CN 202010350274 A CN202010350274 A CN 202010350274A CN 111614729 B CN111614729 B CN 111614729B
Authority
CN
China
Prior art keywords
task
module
agent
exec
node
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
CN202010350274.9A
Other languages
English (en)
Other versions
CN111614729A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202010350274.9A priority Critical patent/CN111614729B/zh
Publication of CN111614729A publication Critical patent/CN111614729A/zh
Application granted granted Critical
Publication of CN111614729B publication Critical patent/CN111614729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及对kubernetes容器集群的控制方法、装置及电子设备。该方法包括:获取用户通过客户端编辑的由多个计算节点执行的任务和任务的调度信息;根据调度信息将任务发送至中间模块exec,以使得代理模块agent能够从中间模块exec获取该代理模块agent所在的计算节点的任务;以及从中间模块exec获取计算节点对任务的执行结果,其中,执行结果由代理模块agent上报;将执行结果返回给客户端。该方法无需基于密码一致或者信任关系取得计算节点权限,从而有效解决了现有技术中计算节点访问受限制的问题。

Description

对kubernetes容器集群的控制方法、装置及电子设备
技术领域
本发明涉及容器集群技术领域,尤其涉及一种对kubernetes容器集群的控制方法、一种对kubernetes容器集群的控制装置以及一种电子设备。
背景技术
K8S是基于容器的集群管理平台,它的全称是kubernetes。一个K8S系统,通常称为一个K8S集群Cluster,一个K8S集群主要包括两个部分:主节点Master node和与其通信连接的计算节点Work node,其中,计算节点上部署有容器pod,主节点负责对计算节点进行控制和管理。
在云计算的商业模式下,用户可以借助云计算服务提供商的平台搭建K8S集群。在这种模式下,用户的K8S集群中的主节点Master node通常由云计算服务提供商负责维护,计算节点Work node通常部署在用户的VPC(Virtual Private Cloud,专有网络)环境内,如果计算节点Work node出现问题,需要云服务提供商的工作人员登陆到用户的VPC内对计算节点Work node进行操作以解决问题,现有技术中通常使用PSSH、Fabric、Ansible等远程控制工具登陆用户的VPC内从而实现对用户的计算节点Work node进行操作。
上述现有技术的缺点:采用远程控制工具都是基于SSH协议(Secure Shell,安全外壳协议)的,通常需要获取用户的密钥或者与用户建立信任关系。获取用户的密钥的方式有密钥泄露的风险,将会给用户的数据带来很大的安全隐患,与用户建立信任关系则需要导致管理麻烦,且用户亦难以接受。
发明内容
本发明的一个目的是提供一种对kubernetes容器集群进行控制的新的技术方案。
根据本发明的第一方面,提供了一种对kubernetes容器集群的控制方法,所述kubernetes容器集群包括主节点Master node和与其通信连接的多个计算节点Work node,每个所述计算节点上部署有代理模块agent,所述方法包括:
获取用户通过客户端编辑的由所述多个计算节点执行的任务和所述任务的调度信息;
根据所述调度信息将所述任务发送至中间模块exec,以使得所述代理模块agent能够从所述中间模块exec获取该代理模块agent所在的计算节点的任务;以及
从所述中间模块exec获取所述计算节点对所述任务的执行结果,其中,所述执行结果由所述代理模块agent上报;
将执行结果返回给所述客户端。
可选地,所述代理模块从所述中间模块exec获取该代理模块agent所在的计算节点的任务的请求,包括:
向所述中间模块exec发送获取该代理模块agent所在的计算节点的任务的请求;
接收所述中间模块exec响应于所述请求返回的该代理模块agent所在的计算节点的任务。
可选地,所述调度信息至少包括执行所述任务的计算节点的节点标识;
所述根据所述调度信息将所述任务发送至中间模块exec,包括:
根据所述节点标识以及计算节点和机房的对应关系,获取所述计算节点所在机房的机房标识,其中,所述机房中部署有中间模块exec;
将所述任务发送至所述机房标识对应的中间模块exec。
可选地,所述调度信息还包括多个计算节点之间的并行参数,其中:
在所述并行参数为第一数值时,所述多个计算节点以并发方式执行所述任务;
在所述并行参数为第二数值时,所述多个计算节点以串行方式执行所述任务;
在所述并行参数为第三数值时,所述多个计算节点基于指定并发数目执行所述任务。
可选地,所述调度信息还包括最大超时时间,所述方法还包括:
检测将所述任务发送至中间模块exec后的持续时间;
在所述持续时间大于所述最大超时时间并且没有获得所述执行结果的情况下,重新将所述任务发送至所述中间模块exec。
可选地,所述调度信息还包括最大容忍度,所述方法还包括:
检测上报执行结果为失败的计算节点的数目,作为失败节点数;
在所述失败节点数大于所述最大容忍度的情况下,向所述中间模块exec发送停止指令,其中,所述停止指令用于指示计算节点停止执行所述任务。
可选地,所述调度信息还包括暂停点标识,其中,所述多个计算节点以串行方式执行所述任务,在所述暂停点标识对应的计算节点执行相应任务后,后续计算节点暂停执行所述任务。
可选地,所述执行结果包括任务等待、任务调度中、任务执行中、任务执行成功、任务执行失败、任务超时、任务终止、任务取消中的至少一项。
根据本发明的第二方面,提供了一种对kubernetes容器集群的控制装置,包括:
获取模块,用于获取用户通过客户端编辑的由所述多个计算节点执行的任务和所述任务的调度信息;
发送模块,用于根据所述调度信息将所述任务发送至中间模块exec,以使得所述代理模块agent能够从所述中间模块exec获取该代理模块agent所在的计算节点的任务;以及
接收模块,用于从所述中间模块exec获取所述计算节点对所述任务的执行结果,其中,所述执行结果由所述代理模块agent上报;
返回模块,用于将执行结果返回给所述客户端。
可选地,所述代理模块包括请求单元和接收单元:
所述请求单元用于向所述中间模块exec发送获取该代理模块agent所在的计算节点的任务的请求;
所述接收单元用于接收所述中间模块exec响应于所述请求返回的该代理模块agent所在的计算节点的任务。
可选地,所述调度信息至少包括执行所述任务的计算节点的节点标识;所述发送模块用于:根据所述节点标识以及计算节点和机房的对应关系,获取所述计算节点所在机房的机房标识,其中,所述机房中部署有中间模块exec;将所述任务发送至所述机房标识对应的中间模块exec。
可选地,所述调度信息还包括多个计算节点之间的并行参数,其中:
在所述并行参数为第一数值时,所述多个计算节点以并发方式执行所述任务;
在所述并行参数为第二数值时,所述多个计算节点以串行方式执行所述任务;
在所述并行参数为第三数值时,所述多个计算节点基于指定并发数目执行所述任务。
可选地,所述调度信息还包括最大超时时间,所述装置还包括超时处理模块,所述超时处理模块用于:
检测将所述任务发送至中间模块exec后的持续时间;
在所述持续时间大于所述最大超时时间并且没有获得所述执行结果的情况下,重新将所述任务发送至所述中间模块exec。
可选地,所述调度信息还包括最大容忍度,所述装置还包括失败处理模块,所述失败处理模块用于:
检测上报执行结果为失败的计算节点的数目,作为失败节点数;
在所述失败节点数大于所述最大容忍度的情况下,向所述中间模块exec发送停止指令,其中,所述停止指令用于指示计算节点停止执行所述任务。
可选地,所述调度信息还包括暂停点标识,其中,所述多个计算节点以串行方式执行所述任务,在所述暂停点标识对应的计算节点执行相应任务后,后续计算节点暂停执行所述任务。
可选地,所述执行结果包括任务等待、任务调度中、任务执行中、任务执行成功、任务执行失败、任务超时、任务终止、任务取消中的至少一项。
根据本发明的第三方面,提供了一种电子设备,包括:
处理器和存储器,所述存储器用于存储可执行的指令,所述指令用于控制所述处理器执行根据本发明第一方面所述的对kubernetes容器集群的控制方法。
本发明实施例中对kubernetes容器集群的控制方法,一方面根据调度信息将任务分发至中间模块exec,另一方面由计算节点Work node上的代理模块agent从中间模块exec获取自身相关的任务并反馈执行结果,在有效控制kubernetes容器集群的同时,无需基于密码一致或者信任关系取得计算节点权限,从而有效解决了现有技术中计算节点访问受限制的问题。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1为可用于实现本发明实施例的电子设备的硬件配置结构方框图。
图2为本发明实施例的kubernetes容器集群控制方法流程图。
图3为本发明实施例的任务设置界面的示意图。
图4为本发明实施例的任务状态流转图。
图5为本发明实施例的kubernetes容器集群控制方法应用场景示意图。
图6为本发明实施例的任务分发过程示意图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人物已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是可用于实现本发明实施例的kubernetes容器集群运维系统的硬件配置的框图。
如图1所示,kubernetes容器集群运维系统包括服务器1000和客户端2000。
服务器1000可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器可以是各种类型的,例如但不限于,云存储服务器、云数据库服务器、云计算服务器、云管理服务器、网络服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交互服务器、存储服务器、数据库服务器或代理服务器等。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等,或者可以是由多台服务器组成的服务器群组,可以包括上述类型的服务器中的一种或多种等等。
在一个实施例中,如图1所示,服务器1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600。
处理器1100用于执行计算机程序。该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括各种总线接口,例如串行总线接口(包括USB接口)、并行总线接口等。通信装置1400例如能够利用光纤或电缆等网络进行通信,从而实现服务器1000与其他集群服务器之间、与客户端2000之间的交互通信。显示装置1500例如是液晶显示屏、LED显示屏触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。
本实施例中,服务器1000的存储器1200用于存储计算机指令,该计算机指令用于控制处理器1100进行操作以实施或者支持实施执行在服务器端的本发明任意实施例的kubernetes容器集群控制方法。技术人员可以根据本发明所公开方案设计该指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
尽管在图1中示出了服务器1000的多个装置,但是,本发明可以仅涉及其中的部分装置,例如,服务器1000只涉及存储器1200、处理器1100和通信装置1400等。
本实施例中,客户端2000例如是台式机、一体机、手机、便携式电脑、平板电脑、掌上电脑、可穿戴设备等。
如图1所示,客户端2000可以包括处理器2100、存储器2200、接口装置2300、通信装置2400、显示装置2500、输入装置2600、扬声器2700、麦克风2800等等。
处理器2100可以是移动版处理器。存储器2200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置2300例如包括USB接口、耳机接口等。通信装置2400例如能够进行有线或无线通信,通信装置2400可以包括短距离通信装置,例如是基于Hilink协议、WiFi(IEEE 802.11协议)、Mesh、蓝牙、ZigBee、Thread、Z-Wave、NFC、UWB、LiFi等短距离无线通信协议进行短距离无线通信的任意装置,通信装置2400也可以包括远程通信装置,例如是进行WLAN、GPRS、2G/3G/4G/5G远程通信的任意装置。显示装置2500例如是液晶显示屏、触摸显示屏等。输入装置2600例如可以包括触摸屏、键盘等。用户可以通过扬声器2700和麦克风2800输入/输出语音信息。
本实施例中,服务器1000能够与客户端2000通信。
本实施例中,客户端2000的存储器2200用于存储计算机指令,该指令用于控制处理器2100进行操作以支持实施执行在客户端的本发明任意实施例的kubernetes容器集群控制法。技术人员可以根据本发明所公开方案设计计算机指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
尽管在图1中示出了客户端2000的多个装置,但是,本发明可以仅涉及其中的部分装置,在此不做限定。
应当理解的是,尽管图1仅示出一个客户端2000以及仅示出一个服务器1000,但不意味着限制各自的数量,kubernetes容器集群运维系统中可以包含多个服务器1000,可以包括多个客户端2000等。
<方法实施例>
在本发明实施例中,kubernetes容器集群包括主节点Master node和与其通信连接的多个计算节点Work node。上述节点(或者称为服务器)可以是一台物理机也可以是一台虚拟机。例如,某一计算节点是某个机房中的一台物理机。
本实施例中,机房是指用于存放设备并提供信息技术服务的场所。在一个为用户提供云服务的例子中,在每个城市设置一个或者多个机房。机房中的一个设备可以作为kubernetes容器集群中的一个节点(可以是主节点Master node或者计算节点Work node)。
在本发明实施例中,每个计算节点上部署有代理模块agent。该代理模块agent的作用和功能将在下文描述。
在本发明一个实施例中,提供一种对kubernetes容器集群的控制方法。
请参考图2,该图为本发明实施例的kubernetes容器集群控制方法步骤流程图,kubernetes容器集群控制方法可以由电子设备实施,该电子设备例如是如图1所示的服务器1000(可称之为调度服务器)。
具体来说,服务器1000中部署有调度模块scheduler,本实施例中的对kubernetes容器集群的控制方法的各个步骤可以由调度模块scheduler执行。
如图2所示,本发明实施例的kubernetes容器集群控制方法包括以下步骤S1100-S1400。
在步骤S1100中,获取用户通过客户端编辑的由多个计算节点执行的任务和任务的调度信息。
上述任务是指需要计算节点执行的处理操作。在一个例子中,可以通过编辑脚本的方式指定任务内容,例如输入一段用于检测某个端口是否处于监听状态的脚本。
上述调度信息是指对任务进行分发所需的信息。在一个例子中,调度信息至少包括执行任务的计算节点的节点标识。这里的节点标识是指计算节点的唯一身份标识,例如是节点的UUID(Universally Unique Identifier,通用唯一识别码)、节点的IP(InternetProtocol,网际互连协议)地址等。
在一个例子中,调度信息还包括多个计算节点之间的并行参数,其中:在并行参数为第一数值时,多个计算节点以并发方式执行任务;在并行参数为第二数值时,多个计算节点以串行方式执行任务;在并行参数为第三数值时,多个计算节点基于指定并发数目执行任务。例如,并行参数为0,表示全并发执行任务;并行参数为1,表示串行执行任务;并行参数为2,表示由2个节点并发执行任务。
在一个例子中,调度信息还包括最大超时时间。上述最大超时时间是指每个计算节点执行任务的时间上限,如果任务执行时间超过了最大超时时间,则认为任务执行失败。
在一个例子中,调度信息还包括最大容忍度。上述最大容忍度是指对任务执行失败的节点数量的最大容忍程度。如果任务执行失败的节点数量达到了最大容忍度,则暂停执行全部任务,以便用户进行故障排除等处理。
在一个例子中,调度信息还包括暂停点标识。在多个计算节点以串行方式执行任务的情况下,在暂停点标识对应的计算节点执行相应任务后,后续计算节点暂停执行任务。
在一个例子中,客户端向用户提供如图3所示的任务设置界面,其中,用户可以通过编辑“任务名称”为当前任务命名,以便后续查找管理。可以通过编辑“执行账号”输入当前任务对应的账号信息。可以通过编辑“执行节点”设置执行当前任务的计算节点。可以通过编辑“并行参数”、“最大超时时间”、“最大容忍度”等设置相应任务相关数值。还可以通过编辑“任务脚本”来指定任务内容,其中任务脚本可以直接输入,也可以通过上传文件的方式输入。此外,用户可以通过点击“提交”按钮将该任务发送至调度模块scheduler。
在上述例子中,可以将节点状态、节点类型、节点所在集群等信息展示给用户,以便用户选择执行节点。
在一个例子中,存储有待执行任务信息的客户端为网络控制台(web/console)端,网络控制台用于集群中节点信息的查询及展示、用户权限管理、任务及任务模板管理。用户(例如运维人员)在网络控制台端编辑任务后,可以选择立即执行,或者将已经编辑好的任务信息保存为任务模板稍后执行。
在步骤S1200中,根据调度信息将任务发送至中间模块exec,以使得代理模块agent能够从中间模块exec获取该代理模块agent所在的计算节点的任务。
本实施例中,中间模块exec用于接收调度模块scheduler发送的任务并将其传输给代理模块agent,即起到数据中转的作用。在一个例子中,在每个机房中部署与其对应的中间模块exec。
在一个例子中,调度模块scheduler从调度信息中解析出执行任务的计算节点的节点标识,并根据预先存储的节点和机房的对应关系,确定该节点所在机房的机房标识,在此基础上将该任务发送至该机房中的中间模块exec。
在一个例子中,代理模块agent通过以下方式从中间模块exec获取该代理模块agent所在的计算节点的任务的请求:向中间模块exec发送获取该代理模块agent所在的计算节点的任务的请求;接收中间模块exec响应于请求返回的该代理模块agent所在的计算节点的任务。也就是说,代理模块agent可以以轮询方式向中间模块exec获取任务。
在上述例子中,代理模块agent可以按照预定时间周期性地向中间模块exec拉取任务。这里预定时间可以是30秒~60秒,预定时间设定需要考虑请求拉取后任务下发的速度和请求拉取的服务器数量,其中周期越短,计算节点请求的频率就越高,任务下发的越快。
在步骤S1300中,从中间模块exec获取计算节点对任务的执行结果,其中,执行结果由代理模块agent上报。
本实施例中,计算节点根据任务内容执行相应的处理操作,并将执行结果反馈给中间模块exec。中间模块exec再进一步将执行结果发送给调度模块scheduler。
如果用户设置了最大超时时间,则调度模块scheduler在任务执行过程中会检测将任务发送至中间模块exec后的持续时间;在持续时间大于最大超时时间并且没有获得执行结果的情况下,重新将任务发送至中间模块exec。
如果用户设置了最大容忍度,则调度模块scheduler在任务执行过程中会检测上报执行结果为失败的计算节点的数目,作为失败节点数;在失败节点数大于最大容忍度的情况下,向中间模块exec发送停止指令,其中,停止指令用于指示计算节点停止执行任务。
在一个例子中,执行结果包括任务等待、任务调度中、任务执行中、任务执行成功、任务执行失败、任务超时、任务终止、任务取消中的至少一项。
在一个例子中,任务状态例如包括等待、运行中、终止中、取消中、已成功、已失败、已中止、已超时等。并根据计算节点返回的任务状态对当前存储的待执行任务信息进行更新。客户端的调度信息例如被调度服务器端拉取到,即变成调度中状态,计算节点执行任务时,也会更新任务状态,更新会反馈到客户端更改任务状态,任务状态流转过程可参见图4。其中,客户端在接收到运行中、终止中、取消中、暂停中等任务状态时,会对应更新存储的相关信息。在接收到已成功、已失败、已中止、已超时等任务状态时,表示对应的任务已最终完成。任务执行结果是当前任务执行完成后的任务状态。任务状态可能是任务执行的中间状态(例如运行中、终止中等)或者最终完成状态(例如已成功、已失败等)。
在步骤S1400中,将执行结果返回给客户端。
本实施例中,调度模块scheduler将执行结果返回给客户端,以便用户通过客户端获取任务的执行结果。
本发明实施例中对kubernetes容器集群的控制方法,一方面根据调度信息将任务分发至中间模块exec,另一方面由计算节点Work node上的代理模块agent从中间模块exec获取自身相关的任务并反馈执行结果,在有效控制kubernetes容器集群的同时,无需基于密码一致或者信任关系取得计算节点权限,从而有效解决了现有技术中计算节点访问受限制的问题。
在一个实施例中,如果由统一的网络控制台入口对多个机房(区域)下kubernetes容器集群节点的控制此随着kubernetes容器集群节点数量增加,当一次任务中包含节点数量过多时,会导致调度时任务分发缓慢,影响整体性能。因此通过在机房端负责维护当前机房(区域)下的kubernetes容器集群的节点信息,负责将属于当前机房(区域)下的待执行任务分发给对应的节点执行。机房端根据待执行任务信息的机房标识如果发现任务的节点不属于该机房(区域)则直接将该任务清除掉,避免上层调度将每一个任务分发到全部机房(区域)下的各个节点上确认待执行任务的节点的操作,提升了节点任务分发效率。
在一个实施例中,待执行任务的拉取请求,是由kubernetes容器集群的节点主动发起拉取(pull)操作,而非客户端主动发起对节点的控制操作或push操作。由于现有网络控制台端主动发起节点控制操作及push操作,会导致节点端口暴露在公网上,存在安全隐患,因此本实施例通过在kubernetes容器集群的节点采用pull模型,主动周期性的访问外部服务,以获取属于当前节点的待执行任务信息并执行任务,任务执行过程中等待任务的其他控制操作(如:终止,暂停等),任务执行完成后,将任务执行结果返回给上层机房端。在本实施例中,kubernetes容器集群的节点执行主动拉取,以从网络控制台获取待执行任务,由于拉取请求时从节点内部向外发出,不会暴露节点的端口,因此降低了安全隐患,并且可以做到用户无感知(这里,节点安全组默认出向不做限制)。
在一个实施例中,调度服务器将会接收到各个中间件负责发送的其各自对应节点的拉取请求,在拉取到请求对应的待执行任务信息后,不再主动发送待执行任务信息,而是由每个机房周期性向调度服务器拉取对应节点的待执行任务信息。中间件根据待执行任务信息的机房标识,拉取属于本机房的节点的任务,如果发现任务的节点不属于该机房(区域)则直接将该任务清除掉。在本示例中,通过中间件负责管理整个机房节点,并直接与调度服务器通信,可以避免调度服务器将每一个任务分发到全部机房(区域)下的各个节点上确认待执行任务的节点的操作,从而提升了节点任务分发效率。
图5为本发明实施例的kubernetes容器集群控制方法一个应用场景示意图,在该实施例中,kubernetes容器集群控制方法执行在客户端的网络控制台、调度服务器、机房和机房下kubernetes容器集群的各服务器端。
如图5所示,首先kubernetes容器集群下的服务器1,服务器n例如周期性地主动发起任务拉取请求(步骤602、604),在本实施例中,服务器的任务拉取请求发送至所属的机房。机房端收到服务器1、n的请求后,向调度服务器发送任务拉取请求(步骤606)。调度服务器端收到机房端的请求后,向网络控制台发送任务拉取请求(步骤608),并从网络控制台存储的待执行任务信息数据库中拉取到所有的待执行任务信息(步骤610)。随后,调度服务器将拉取的待执行任务信息发送给机房(步骤612),然后由机房将拉取的待执行任务信息发送到对应的服务器1(步骤614)以及服务器n(步骤616)。服务器1、n接收到待执行任务信息后,执行对应的任务,并相应地返回任务执行结果到机房端(步骤618、620)。机房进一步将各个服务器返回的执行结果发送到调度服务器(步骤622),然后由调度服务器将服务器端返回的任务执行结果返回给网络控制台(步骤624)。
网络控制台根据接收的任务执行结果,更新数据库存储的待执行任务信息(步骤626),并将最终完成的任务标记为已完成任务。
在该实施例中,仅仅示出了一个机房及其下面的一个kubernetes容器集群,但是本发明不局限于该具体实施例,调度服务器用于接收并统一调度多个机房,各个机房可以负责本机房下的所有kubernetes容器集群下的服务器。
下面,将结合图6对机房拉取的待执行任务信息进行分发的步骤作出说明,其中箭头指向表示任务拉取的方向,各个步骤是对拉取请求的响应步骤。
如图6所示,步骤1:网络控制台将用户创建的待执行任务、更新的待执行任务信息和已执行任务信息存储在网络数据库(Web-DB)。
步骤2:调度服务器根据各个机房(区域A、区域B、区域C)发送的服务器待执行任务拉取请求从网络数据库中拉取到其中存储的所有待执行任务信息。例如图示任务1(Task1)、任务2(Task2),Task1、Task2中分别列出了需要执行任务的服务器IP地址,Scripts(脚本)表示待执行任务的具体命令,Node(节点)表示待执行任务的服务器标识,可以UUID码表示。任务Task1、Task2中还隐含有代码层面用的机房标识,可以在机房从调度服务器端拉取本机房任务时用到。
步骤3、4:调度服务器拉取到待执行任务信息后,机房从调度服务器中获取本机房的任务,其中对应区域A的机房,根据获取的任务信息可知,任务Task1、Task2包含有属于区域A机房对应服务器(IP为10.10.0.10和10.10.0.11)的待执行任务。
步骤5、6:根据任务信息中记录的服务器UUID,区域A的机房将任务1、2分发到对应的服务器执行。
步骤7:区域B的机房在从调度服务器中获取本机房的任务时,根据任务信息可知,任务Task1中包含属于区域B机房对应服务器(IP为11.11.0.10)的待执行任务,任务Task2不包含属于区域B机房对应服务器的待执行任务,因此将该任务Task2清除掉。
步骤9:同样地,区域C的机房在从调度服务器中获取本机房的任务时,根据任务信息可知,任务Task1、Task2中均不包含属于区域C机房对应服务器的待执行任务,因此将该Task1、Task2清除掉。
图示中RPC(Remote Procedure Call远程过程调用)表示各个服务器、机房同时运行任务拉取请求时互相会话,使得这些任务拉取请求可以在哥服务器、机房之间共享内存空间使请求同步和互相发送信息。
<装置实施例>
本实施例提供一种对kubernetes容器集群的控制装置,包括获取模块、发送模块、接收模块和返回模块。
获取模块,用于获取用户通过客户端编辑的由多个计算节点执行的任务和任务的调度信息。
发送模块,用于根据调度信息将任务发送至中间模块exec,以使得代理模块agent能够从中间模块exec获取该代理模块agent所在的计算节点的任务。
接收模块,用于从中间模块exec获取计算节点对任务的执行结果,其中,执行结果由代理模块agent上报。
返回模块,用于将执行结果返回给客户端。
在一个例子中,代理模块包括请求单元和接收单元:请求单元用于向中间模块exec发送获取该代理模块agent所在的计算节点的任务的请求;接收单元用于接收中间模块exec响应于请求返回的该代理模块agent所在的计算节点的任务。
在一个例子中,调度信息至少包括执行任务的计算节点的节点标识;发送模块用于:根据节点标识以及计算节点和机房的对应关系,获取计算节点所在机房的机房标识,其中,机房中部署有中间模块exec;将任务发送至机房标识对应的中间模块exec。
在一个例子中,调度信息还包括多个计算节点之间的并行参数,其中:在并行参数为第一数值时,多个计算节点以并发方式执行任务;在并行参数为第二数值时,多个计算节点以串行方式执行任务;在并行参数为第三数值时,多个计算节点基于指定并发数目执行任务。
在一个例子中,调度信息还包括最大超时时间,装置还包括超时处理模块,超时处理模块用于:检测将任务发送至中间模块exec后的持续时间;在持续时间大于最大超时时间并且没有获得执行结果的情况下,重新将任务发送至中间模块exec。
在一个例子中,调度信息还包括最大容忍度,装置还包括失败处理模块,失败处理模块用于:检测上报执行结果为失败的计算节点的数目,作为失败节点数;在失败节点数大于最大容忍度的情况下,向中间模块exec发送停止指令,其中,停止指令用于指示计算节点停止执行任务。
在一个例子中,调度信息还包括暂停点标识,其中,多个计算节点以串行方式执行任务,在暂停点标识对应的计算节点执行相应任务后,后续计算节点暂停执行任务。
在一个例子中,执行结果包括任务等待、任务调度中、任务执行中、任务执行成功、任务执行失败、任务超时、任务终止、任务取消中的至少一项。
<电子设备实施例>
本实施例提供一种电子设备,包括处理器和存储器。存储器用于存储可执行的指令,指令用于控制处理器执行根据本发明方法实施例描述的对kubernetes容器集群的控制方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人物来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人物来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人物能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (8)

1. 一种对kubernetes容器集群的控制方法,其特征在于,所述kubernetes容器集群包括调度模块scheduler、中间模块exec和与所述调度模块scheduler及所述中间模块exec通信连接的多个计算节点Work node,每个所述计算节点上部署有代理模块agent,所述方法包括:
所述调度模块scheduler获取用户通过客户端编辑的由所述多个计算节点执行的任务和所述任务的调度信息,其中,所述任务是指需要所述多个计算节点执行的处理操作,所述任务通过编辑脚本的方式指定任务内容,所述调度信息至少包括执行所述任务的计算节点的节点标识和多个计算节点之间的并行参数;
所述调度模块scheduler根据所述调度信息将所述任务发送至所述中间模块exec,以使得所述代理模块agent能够以轮询方式周期性地从所述中间模块exec拉取该代理模块agent所在的计算节点的任务;以及
从所述中间模块exec获取所述计算节点对所述任务的执行结果,其中,所述执行结果由所述代理模块agent上报;
将执行结果返回给所述客户端,
其中,所述中间模块exec部署于与所述计算节点具有对应关系的机房中,
所述根据所述调度信息将所述任务发送至中间模块exec,包括:
根据所述节点标识以及计算节点和机房的对应关系,获取所述计算节点所在机房的机房标识;
将所述任务发送至所述机房标识对应的中间模块exec。
2.根据权利要求1所述的方法,其特征在于,所述代理模块从所述中间模块exec拉取该代理模块agent所在的计算节点的任务的请求,包括:
向所述中间模块exec发送获取该代理模块agent所在的计算节点的任务的请求;
接收所述中间模块exec响应于所述请求返回的该代理模块agent所在的计算节点的任务。
3.根据权利要求1所述的方法,其特征在于:
在所述并行参数为第一数值时,所述多个计算节点以并发方式执行所述任务;
在所述并行参数为第二数值时,所述多个计算节点以串行方式执行所述任务;
在所述并行参数为第三数值时,所述多个计算节点基于指定并发数目执行所述任务。
4.根据权利要求1所述的方法,其特征在于,所述调度信息还包括最大超时时间,所述方法还包括:
检测将所述任务发送至中间模块exec后的持续时间;
在所述持续时间大于所述最大超时时间并且没有获得所述执行结果的情况下,重新将所述任务发送至所述中间模块exec。
5.根据权利要求1所述的方法,其特征在于,所述调度信息还包括最大容忍度,所述方法还包括:
检测上报执行结果为失败的计算节点的数目,作为失败节点数;
在所述失败节点数大于所述最大容忍度的情况下,向所述中间模块exec发送停止指令,其中,所述停止指令用于指示计算节点停止执行所述任务。
6.根据权利要求1所述的方法,其特征在于,所述调度信息还包括暂停点标识,其中,所述多个计算节点以串行方式执行所述任务,在所述暂停点标识对应的计算节点执行相应任务后,后续计算节点暂停执行所述任务。
7.根据权利要求1所述的方法,其特征在于,所述执行结果包括任务等待、任务调度中、任务执行中、任务执行成功、任务执行失败、任务超时、任务终止、任务取消中的至少一项。
8.一种对kubernetes容器集群的控制装置,其特征在于,包括:
获取模块,用于获取用户通过客户端编辑的由多个计算节点执行的任务和所述任务的调度信息,其中,所述任务是指需要所述多个计算节点执行的处理操作,所述任务通过编辑脚本的方式指定任务内容,所述调度信息至少包括执行所述任务的计算节点的节点标识和多个计算节点之间的并行参数;
发送模块,用于根据所述调度信息将所述任务发送至中间模块exec,以使得代理模块agent能够以轮询方式周期性地从所述中间模块exec拉取所述代理模块agent所在的计算节点的任务;以及
接收模块,用于从所述中间模块exec获取所述计算节点对所述任务的执行结果,其中,所述执行结果由所述代理模块agent上报;
返回模块,用于将执行结果返回给所述客户端,
其中,所述中间模块exec部署于与所述计算节点具有对应关系的机房中,
所述发送模块还用于:
根据所述节点标识以及计算节点和机房的对应关系,获取所述计算节点所在机房的机房标识;
将所述任务发送至所述机房标识对应的中间模块exec。
CN202010350274.9A 2020-04-28 2020-04-28 对kubernetes容器集群的控制方法、装置及电子设备 Active CN111614729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010350274.9A CN111614729B (zh) 2020-04-28 2020-04-28 对kubernetes容器集群的控制方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010350274.9A CN111614729B (zh) 2020-04-28 2020-04-28 对kubernetes容器集群的控制方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN111614729A CN111614729A (zh) 2020-09-01
CN111614729B true CN111614729B (zh) 2023-06-02

Family

ID=72201226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010350274.9A Active CN111614729B (zh) 2020-04-28 2020-04-28 对kubernetes容器集群的控制方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN111614729B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113204434B (zh) * 2021-07-05 2021-09-21 易纳购科技(北京)有限公司 基于k8s的计划任务执行方法、装置及计算机设备
CN113900794A (zh) * 2021-08-31 2022-01-07 艾普工华科技(武汉)有限公司 一种工业数据采集平台及方法
CN114172886A (zh) * 2021-11-29 2022-03-11 北京金山云网络技术有限公司 机器控制方法、装置、存储介质以及电子设备
CN114598700B (zh) * 2022-01-25 2024-03-29 阿里巴巴(中国)有限公司 通信方法及通信系统
CN114513501B (zh) * 2022-02-15 2024-03-22 银联商务股份有限公司 目标分发方法和系统
US20240022640A1 (en) * 2022-07-12 2024-01-18 Servicenow, Inc. Rapid Error Detection through Command Validation
CN117493022B (zh) * 2023-12-28 2024-03-29 苏州元脑智能科技有限公司 处理器资源调度方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9150766B2 (en) * 2012-08-09 2015-10-06 Illinois Tool Works, Inc. Moisture absorbing anti-fog composition and process for the use thereof
CN106201670A (zh) * 2016-07-20 2016-12-07 北京航天发射技术研究所 一种基于Labview的CAN总线数据处理方法
CN110750331A (zh) * 2019-10-21 2020-02-04 北京华育兴业科技有限公司 一种针对教育桌面云应用的容器集群调度方法及平台

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9150766B2 (en) * 2012-08-09 2015-10-06 Illinois Tool Works, Inc. Moisture absorbing anti-fog composition and process for the use thereof
CN106201670A (zh) * 2016-07-20 2016-12-07 北京航天发射技术研究所 一种基于Labview的CAN总线数据处理方法
CN110750331A (zh) * 2019-10-21 2020-02-04 北京华育兴业科技有限公司 一种针对教育桌面云应用的容器集群调度方法及平台

Also Published As

Publication number Publication date
CN111614729A (zh) 2020-09-01

Similar Documents

Publication Publication Date Title
CN111614729B (zh) 对kubernetes容器集群的控制方法、装置及电子设备
US9774658B2 (en) Orchestration framework for connected devices
CN107040416B (zh) 一种基于Cairngorm框架的虚拟数据中心可视化管理方法
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
JP2019102064A (ja) スマート装置のタスク処理方法および装置
CN109995801B (zh) 一种消息传输方法和装置
US11470160B2 (en) Managing remote support
US11805178B2 (en) Computer system providing user specific session prelaunch features and related methods
CN112565439B (zh) 物联网通信方法与系统
EP3635547B1 (en) Systems and methods for preventing service disruption during software updates
CN109150558B (zh) 管理消息队列节点的方法、装置和系统
CN114938371B (zh) 一种基于云原生的云边协同数据交换服务实现方法及系统
CN102523109A (zh) 资源状态更新方法、管理客户端及服务器
EP4340333A1 (en) Communication protocol conversion method, and device, system, and gateway device
WO2019062634A1 (zh) 通信方法及装置
CN112346926A (zh) 资源状态监控方法、装置及电子设备
CN112068847B (zh) 基于kubernets平台的计算环境部署方法及装置
CN112104679B (zh) 处理超文本传输协议请求的方法、装置、设备和介质
CN114296953B (zh) 一种多云异构系统及任务处理方法
CN109729177B (zh) 用于生成信息的方法和装置
CN104486330A (zh) 一种基于远程过程调用的双向通信系统
CN110147228B (zh) 命令行编辑组件和方法
CN113564865A (zh) 洗衣机远程控制方法、装置、电子设备、及存储介质
CN112953992A (zh) 网络系统、通信与组网方法、设备及存储介质
CN113965571B (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
GR01 Patent grant
GR01 Patent grant