CN109840132A - 容器的编排方法、装置及存储介质 - Google Patents

容器的编排方法、装置及存储介质 Download PDF

Info

Publication number
CN109840132A
CN109840132A CN201711206912.4A CN201711206912A CN109840132A CN 109840132 A CN109840132 A CN 109840132A CN 201711206912 A CN201711206912 A CN 201711206912A CN 109840132 A CN109840132 A CN 109840132A
Authority
CN
China
Prior art keywords
container
input
output
connection relationship
containers
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.)
Granted
Application number
CN201711206912.4A
Other languages
English (en)
Other versions
CN109840132B (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201711206912.4A priority Critical patent/CN109840132B/zh
Priority to PCT/CN2018/114046 priority patent/WO2019100934A1/zh
Publication of CN109840132A publication Critical patent/CN109840132A/zh
Application granted granted Critical
Publication of CN109840132B publication Critical patent/CN109840132B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明实施例公开了一种容器的编排方法、装置及存储介质。该方法包括:根据指示信息确定实现算法所需的至少两个容器和至少两个容器中各容器之间输入和输出的连接关系;根据指示信息获取至少两个容器对应的至少两个容器镜像,容器镜像用于启动对应容器运行;从共享内存中为至少两个容器分别分配对应的存储空间;根据各容器对应的存储空间和连接关系,建立目标映射关系。能够实现对容器的编排。

Description

容器的编排方法、装置及存储介质
技术领域
本发明涉及通信技术领域,尤其涉及一种容器的编排方法、装置及存储介质。
背景技术
目前,使用容器来承载应用或算法已经是一种趋势,一个容器可以承载一个独立的应用或算法,由于容器之间相互没有接口,所以容器可以很容易地在机器和数据中心中运行。但是,在一种业务应用的场景中,需要使用多个算法共同组成一个更复杂的算法,即需要使用多个容器来共同组成一个算法,这时候多个容器之间就需要进行数据交互,即多个容器之间需要相互通信,所以需要对多个容器进行编排。
在一种容器编排的引擎中,Pod(一种资源对象)作为容器的集合,其包含了一个或者多个相关的容器,Pod中的容器可以访问共同的数据卷来实现数据的共享。但是,Pod中容器运行的是一个应用中多个紧密联系的程序,每个程序运行在单独的容器中,以Pod的形式组合成一个应用。所以Pod并没有对容器之间的输入和输出进行的管控,即没有对容器的编排,所以Pod无法实现对容器的编排。
发明内容
本申请提供了一种容器的编排方法、装置及存储介质,能够实现对容器的编排。
第一方面,本申请提供了一种容器的编排方法,包括:根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系;根据所述指示信息获取所述至少两个容器对应的至少两个容器镜像,所述容器镜像用于启动对应容器运行;从共享内存中为所述至少两个容器分别分配对应的存储空间;根据各容器对应的存储空间和所述连接关系,建立目标映射关系,所述目标映射关系包括所述至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系,或所述目标映射关系包括所述至少两个容器中任一容器的输出与和所述任一容器的输出相连的输入所对应的存储空间之间的映射关系。
本申请中,根据指示消息可以确定实现算法所需的至少两个容器,并根据指示消息确定出至少两个容器中各容器之间输入和输出的连接关系;同时,从共享内存中分别为至少两个容器分配对应的存储空间,并结合容器之间相互连接的输入和输出,建立目标映射关系,目标映射关系包括至少两个容器中任一容器的输入与和任一容器的输入相连的输出所对应的存储空间之间的映射关系,或目标映射关系包括至少两个容器中任一容器的输出与和任一容器的输出相连的输入所对应的存储空间之间的映射关系,从而实现容器之间的相互通信。如此本申请中,通过共享内存,以及各容器间的目标映射关系,使实现算法的容器之间能够进行数据传输,即实现了容器之间通信,从而可以实现对容器之间的输入和输出进行的管控,达到对容器编排的目的。
结合第一方面,在第一方面的第一种实施方式中,所述连接关系包括所述至少两个容器中一个容器的输入与至少一个其他容器的输出连接和所述至少两个容器中一个容器的输出与至少一个其他容器的输入连接,所述至少一个其他容器属于所述至少两个容器。
结合第一方面或第一方面的上述实施方式,在第一方面的第二种实施方式中,在所述根据所述各容器对应的存储空间和所述连接关系,建立目标映射关系之后,还包括:
根据所述连接关系,基于所述至少两个容器镜像控制所述至少两个容器的运行。
本实施方式中,编排设备根据各容器之间的连接关系来依次控制各容器的运行,保证容器运行时输入数据和输出数据的准确,进而保证算法能够准确运行。
结合第一方面或第一方面的上述实施方式,在第一方面的第三种实施方式中,所述至少两个容器包括第一容器和第二容器,所述连接关系包括所述第一容器的输出与所述第二容器的输入连接的连接关系;
所述根据所述连接关系,基于所述至少两个容器镜像控制所述至少两个容器的运行,包括:
向所述第一容器对应的容器镜像发送第一运行指令,所述第一运行指令用于指示所述第一容器对应的容器镜像启动所述第一容器;
接收所述第一容器运行完成后发送的完成消息,所述第一容器运行完成后将得到的输出数据基于所述目标映射关系存储至对应的存储空间;
根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第二容器的输入数据。
结合第一方面或第一方面的上述实施方式,在第一方面的第四种实施方式中,所述至少两个容器还包括第三容器,所述连接关系还包括所述第一容器的输出与所述第三容器的输入连接的连接关系;
在所述接收所述第一容器运行完成后发送的完成消息之后,还包括:
根据所述第一容器的输出与所述第三容器的输入连接的连接关系确定所述第三容器为需要开始运行的容器;
向所述第三容器对应的容器镜像发送第三运行指令,所述第三运行指令用于指示所述第三容器对应的容器镜像启动所述第三容器,所述第三容器运行时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第三容器的输入数据。
结合第一方面或第一方面的上述实施方式,在第一方面的第五种实施方式中,所述至少两个容器还包括第四容器,所述连接关系还包括所述第四容器的输出与所述第二容器的输入连接;
在所述根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器之前,还包括:
接收所述第四容器运行完成后发送的完成消息,所述第四容器运行完成后将输出数据基于所述目标映射关系存储至对应的存储空间;
所述根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器,包括:
根据所述第一容器的输出与所述第二容器的输入连接的连接关系,以及所述第四容器的输出与所述第二容器的输入连接的连接关系,确定所述第二容器为需要开始运行的容器;
所述向所述第二容器对应的容器镜像发送第二运行指令,包括:
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据和所述第四容器的输出数据,并将所述第一容器的输出数据和所述第四容器的输出数据作为所述第二容器的输入数据。
结合第一方面或第一方面的上述实施方式,在第一方面的第六种实施方式中,所述至少两个容器包括第五容器和第六容器,所述第五容器的输出与所述第六容器的输入连接;
所述建立目标映射关系之前,还包括:
获取所述各容器的输入标准和输出标准;
判断所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准是否匹配;
所述建立目标映射关系,包括:
当所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准匹配时,建立所述第六容器和所述第五容器之间的目标映射关系。
本实施方式中,对相互连接的输入和输出,通过判断所对应的输入标准和输出标准是否匹配来判断容器之间是否可以进行通信,在所对应的输入标准和输出标准匹配时,建立对应关系,从而保证了容器之间能够正常通信,保证了算法能够正常运行。
结合第一方面或第一方面的上述实施方式,在第一方面的第七种实施方式中,所述根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系之前,还包括:
建立用户界面,所述用户界面包括多个容器标识;
接收指示信息,所述指示信息包括用户通过所述用户界面从所述多个容器标识中选中的至少两个容器标识和所述至少两个容器标识之间的连接关系;
所述根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系,包括:
根据所述至少两个容器标识确定所述至少两个容器;
根据所述至少两个容器标识之间的连接关系确定所述至少两个容器中各容器之间输入和输出的连接关系。
本实现方式中,编排设备建立用户界面,使用户通过用户界面来输入指示信息,操作简单方便,简化用户输入的复杂度,节省用户的时间。
结合第一方面或第一方面的上述实施方式,在第一方面的第八种实施方式中,所述根据所述指示信息获取所述至少两个容器对应的至少两个容器镜像,包括:
根据所述指示信息,从容器镜像库获取所述至少两个容器镜像,所述容器镜像库为预先设置,所述容器镜像库包括所述至少两个容器镜像。
第二方面,本申请提供了一种容器的编排装置,包括:
确定单元,用于根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系;
获取单元,用于根据所述指示信息获取所述至少两个容器对应的至少两个容器镜像,所述容器镜像用于启动对应容器运行;
分配单元,用于从共享内存中为所述至少两个容器分别分配对应的存储空间;
建立单元,用于根据各容器对应的存储空间和所述连接关系,建立目标映射关系,所述目标映射关系包括所述至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系,或所述目标映射关系包括所述至少两个容器中任一容器的输出与和所述任一容器的输出相连的输入所对应的存储空间之间的映射关系。
结合第二方面,在第二方面的第一种实施方式中,所述连接关系包括所述至少两个容器中一个容器的输入与至少一个其他容器的输出连接和所述至少两个容器中一个容器的输出与至少一个其他容器的输入连接,所述至少一个其他容器属于所述至少两个容器。
结合第二方面或第二方面的上述实施方式,在第二方面的第二种实施方式中,还包括:
控制单元,用于根据所述连接关系,基于所述至少两个容器镜像控制所述至少两个容器的运行。
结合第二方面或第二方面的上述实施方式,在第二方面的第三种实施方式中,所述至少两个容器包括第一容器和第二容器,所述连接关系包括所述第一容器的输出与所述第二容器的输入连接的连接关系;
所述控制单元具体用于:
向所述第一容器对应的容器镜像发送第一运行指令,所述第一运行指令用于指示所述第一容器对应的容器镜像启动所述第一容器;
接收所述第一容器运行完成后发送的完成消息,所述第一容器运行完成后将得到的输出数据基于所述目标映射关系存储至对应的存储空间;
根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第二容器的输入数据。
结合第二方面或第二方面的上述实施方式,在第二方面的第四种实施方式中,所述至少两个容器还包括第三容器,所述连接关系还包括所述第一容器的输出与所述第三容器的输入连接的连接关系;
所述控制单元在所述接收所述第一容器运行完成后发送的完成消息之后,还具体用于:
根据所述第一容器的输出与所述第三容器的输入连接的连接关系确定所述第三容器为需要开始运行的容器;
向所述第三容器对应的容器镜像发送第三运行指令,所述第三运行指令用于指示所述第三容器对应的容器镜像启动所述第三容器,所述第三容器运行时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第三容器的输入数据。
结合第二方面或第二方面的上述实施方式,在第二方面的第五种实施方式中,所述至少两个容器还包括第四容器,所述连接关系还包括所述第四容器的输出与所述第二容器的输入连接;
所述控制单元在根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器之前,还具体用于:
接收所述第四容器运行完成后发送的完成消息,所述第四容器运行完成后将输出数据基于所述目标映射关系存储至对应的存储空间;
所述控制单元在根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器时,具体用于:
根据所述第一容器的输出与所述第二容器的输入连接的连接关系,以及所述第四容器的输出与所述第二容器的输入连接的连接关系,确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据和所述第四容器的输出数据,并将所述第一容器的输出数据和所述第四容器的输出数据作为所述第二容器的输入数据。
结合第二方面或第二方面的上述实施方式,在第二方面的第六种实施方式中,所述至少两个容器包括第五容器和第六容器,所述第五容器的输出与所述第六容器的输入连接;
所述获取单元还用于获取所述各容器的输入标准和输出标准;
所述装置还包括:
判断单元,用于判断所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准是否匹配;
所述建立单元具体用于当所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准匹配时,建立所述第六容器和所述第五容器之间的目标映射关系。
结合第二方面或第二方面的上述实施方式,在第二方面的第七种实施方式中,所述建立单元还用于建立用户界面,所述用户界面包括多个容器标识;
所述装置还包括:
接收单元,用于接收指示信息,所述指示信息包括用户通过所述用户界面从所述多个容器标识中选中的至少两个容器标识和所述至少两个容器标识之间的连接关系;
所述确定单元具体用于根据所述至少两个容器标识确定所述至少两个容器;以及,用于根据所述至少两个容器标识之间的连接关系确定所述至少两个容器中各容器之间输入和输出的连接关系。
结合第二方面或第二方面的上述实施方式,在第二方面的第八种实施方式中,所述获取单元具体用于根据所述指示信息,从容器镜像库获取所述至少两个容器镜像,所述容器镜像库为预先设置,所述容器镜像库包括所述至少两个容器镜像。
第三方面,本发明实施例提供一种容器的编排设备,包括:处理器、存储器和通信接口;
所述存储器、所述通信接口与所述处理器耦合;
所述存储器用于存储计算机程序代码,所述计算机程序代码包括指令,当所述处理器执行所述指令时,所述容器的编排设备用于执行如第一方面或第一方面的任一种实施方式所述的容器的编排方法。
第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任一种实施方式所述的方法。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。
图1是根据本发明实施例提供的一种容器的编排设备的示意性结构图;
图2是根据本发明实施例提供的又一种容器的编排设备的示意性结构图;
图3是根据本发明实施例提供的一种容器的编排设备的物理结构部署的示意图;
图4是根据本发明一实施例提供的一种容器的编排方法的示意性流程图;
图5是根据本发明一实施例提供的一种用户界面中输入指示信息的示意图;
图6是根据本发明一实施例提供的一种容器的编排设备装置的示意性框图;
图7是根据本发明又一实施例提供的一种容器的编排设备装置的示意性框图;
图8是根据本发明一实施例提供的一种容器的编排设备的示意性框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例可以用于对容器进行编排的场景,用于容器的编排设备10。图1为本发明实施例提供的一种编排设备10的示意性结构图。如图1所示,编排设备10可以包括用户界面11、编排处理模块12、容器镜像库13和共享内存14。容器镜像库13中可以包括多个容器对应的容器镜像,用于为实现算法提供所需的容器对应的容器镜像,容器镜像用于启动对应容器运行,另外容器镜像库13中还可以存储各容器的输入标准和输出标准。用户界面11为用户提供输入指示信息的界面,用户通过对用户界面11进行操作来输入指示信息。编排处理模块12用于在对指示信息进行分析,得出指示信息所指示的容器,以及各容器之间输入和输出的连接关系,并可以从容器镜像库13中获取指示信息所指示的容器对应的容器镜像,通过共享内存14对实现算法的容器进行编排,确定数据的流向。共享内存14中存储各容器的数据,各容器之间通过共享内存14来实现输入和输出的数据交互。
图2为本发明实施例提供的又一种编排设备10的示意性结构图。如图2所示,编排设备10在图1所示结构的基础上还包括编排代理模块15。在图2所示的结构中,用户界面11、容器镜像库13和共享内存14所实现的功能与图1所示结构相同。在图2所示的结构中,编排处理模块12用于在对指示信息进行分析,得出指示信息所指示的容器,以及各容器之间输入和输出的连接关系,然后将指示信息所指示的容器,以及各容器之间输入和输出的连接关系传输给编排代理模块15。编排代理模块15用于根据编排处理模块12所传输的内容,从容器镜像库13中获取指示信息所指示容器的容器镜像,通过共享内存14对实现算法的容器进行编排。
编排设备10可以用于为实现各种算法而对容器进行编排,在图2所示结构中,编排设备10还可以设置多个编排代理模块15,以及与每个编排代理模块15对应的共享内存14,每个编排代理模块15通过对应的共享内存14来实现对容器进行编排。
具体的,编排设备10的物理结构部署方式可以如图3所示,设置了两个编排代理模块15,以及每个编排代理模块15所对应的共享内存14,分别为编排代理模块151和编排代理模块152,以及编排代理模块151所对应的共享内存141,编排代理模块152所对应的共享内存142。每个编排代理模块15可以设置在不同设备或节点中来单独运行,编排代理模块15在运行时可以通过容器编排的引擎(如应用容器引擎(docker))实现。
本发明一实施例提供了一种容器的编排方法,可以用于如图1或图2所示的编排设备,如图4所示,该方法包括以下步骤。
201,根据指示信息确定实现算法所需的至少两个容器和至少两个容器中各容器之间输入和输出的连接关系。
其中,在一些场景中需要多个容器共同组成一个复杂的算法(或应用),实现算法所需容器表示实现一个复杂算法时所需要的容器,通常情况下需要多个容器来实现。多个容器在实现算法时,容器之间需要进行数据交互,例如,一个容器的输出数据可以作为其他一个或多个容器的输入数据,一个或多个容器的输出数据可以作为其他一个容器的输入数据。所以,连接关系包括至少两个容器中一个容器的输入与至少一个其他容器的输出连接和至少两个容器中一个容器的输出与至少一个其他容器的输出连接,至少一个其他容器属于至少两个容器。
本发明实施例中,在对实现算法的容器进行编排时,首先需要确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系,所以编排设备通过指示信息来确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系。指示信息可以为用户等输入的指令,还可以为编排设备通过接口获取的信息。
作为本发明实施例的一种实施方式,在步骤101之前,编排设备可以建立用户界面,用户界面包括多个容器标识;接收指示信息,指示信息包括用户通过用户界面从多个容器标识中选中的至少两个容器标识和至少两个容器标识之间的连接关系。此时步骤101可以具体执行为:根据至少两个容器标识确定至少两个容器;根据至少两个容器标识之间的连接关系确定至少两个容器中各容器之间输入和输出的连接关系。
容器标识可以代表容器标识所对应的容器,容器标识为预先设置,可以使用容器的功能名称作为容器标识。用户界面中的容器标识用于为用户提供可选则的容器,用户可以从用户界面所包括的容器标识中选择实现算法所需容器对应的容器标识,来输入指示信息。编排设备中可以预设容器标识与容器之间的对应关系,则接收用户指令后可以根据用户从多个容器标识中选中的至少两个容器标识和对应关系确定出实现算法所需的至少两个容器。同时,用户在选择出实现算法所需容器对应的容器标识后,还可以在用户界面中标识出各容器标识之间输入和输出的连接关系,则编排设备可以根据用户输入的各容器标识之间输入和输出的连接关系确定出各容器之间输入和输出的连接关系。
例如,用户在用户界面中输入的指示信息可以为如图5所示。在图5中,使用容器的功能名称作为容器标识,由图中可以,用户选择了5个容器标识,分别为:视频解码、运动对象识别、人体区域检测、对象特征提取和车体区域识别,5个容器标识分别对应了5个容器,编排设备可以根据用户选中的5个容器标识确定出对应的5个容器。同时,用户通过连接线在用户界面中输入了5个容器标识之间的连接关系,其中,视频解码的输出与运动对象识别的输入连接,运动对象识别的输出分别与人体区域检测、对象特征提取和车体区域识别的输入连接。所以编排设备可以根据5个容器标识之间的连接关系确定出各容器之间输入和输出的连接关系,即视频解码对应容器的输出数据作为运动对象识别对应容器的输入数据,运动对象识别对应容器的输出数据分别作为人体区域检测对应容器、对象特征提取对应容器和车体区域识别对应容器的输入数据。
本发明实施例中,编排设备建立用户界面,使用户通过用户界面来输入指示信息,操作简单方便,简化用户输入的复杂度,节省用户的时间。
需要说明的是,本发明实施例中所述的各容器之间输入和输出的连接关系包括各容器中容器的输入数据和其他容器的输出数据之间的传输关系,即一个容器的输入与另一个容器的输出连接可以表示为另一个容器的输出数据为一个容器的输入数据,一个容器的输出与另一个容器的输入连接可以表示一个容器的输出数据为另一个容器的输出数据。
202,根据指示信息获取至少两个容器对应的至少两个容器镜像。
编排设备通过步骤201确定出实现算法所需的至少两个容器后,可以获取到实现算法所需的至少两个容器所对应的至少两个容器镜像,然后再对各容器进行编排。
本发明实施例中,编排设备可以预先建立容器镜像库,容器镜像库中存储多种容器镜像,则本步骤可以从容器镜像库获取到实现算法所需的至少两个容器镜像。
需要说明的是,容器镜像用于启动对应容器运行。编排设备获取容器镜像后,通过向容器镜像发送启动指令来启动相应的容器。
203,从共享内存中为至少两个容器分别分配对应的存储空间。
其中,容器的存储空间可以包括容器的输出所对应的存储空间和/或对应容器的输入所对应的存储空间。
通常实现一个算法的各容器共享一个内存,被共享的内存称为共享内存。在确定出实现算法的各容器后需要在共享内存中划分出对应各容器的存储空间。划分存储空间后,可以建立各容器对应存储空间的标识,具体格式的可以为:容器标识与存储空间的地址的组合,以表示出各容器对应存储空间的地址。对应各容器的存储空间用于存储各容器运行后得出的输出数据时,由于容器运行得出输出数据通常会作为其他容器的输入数据,所以将容器的输出数据存储至存储空间中,以便于将其作为输入数据的容器来调用。对应各容器的存储空间用于存储各容器运行所需的输入数据时,容器运行得出输出数据通常会作为其他容器的输入数据,所以可以将容器的输出数据存储至与其连接的输入所对应的存储空间中,以便于后续与其连接的输入对应的容器来调用。
204,根据各容器对应的存储空间和连接关系,建立目标映射关系。
其中,通过步骤201中确定出各容器的输入和输出之间的连接关系,可以确定出容器之间输出数据和输入数据的流向,进而可以建立目标映射关系。目标映射关系包括至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系,或目标映射关系包括至少两个容器中任一容器的输出与和所述任一容器的输出相连的输入所对应的存储空间之间的映射关系。
具体的,各容器对应的存储空间中可以包括存储输出数据的存储空间,即容器的输出所对应的存储空间,此时目标映射关系可以为至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系;各容器对应的存储空间中可以包括存储输入数据的存储空间,即容器的输入所对应的存储空间,此时目标映射关系可以至少两个容器中任一容器的输出与和所述任一容器的输出相连的输入所对应的存储空间之间的映射关系。
目标映射关系的建立可以通过设置进程间通信(Inter-Process Communication,IPC)命名空间的方式实现。以目标映射关系为至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系为例,例如,容器A的输出与容器B的输入连接,即容器A的输出数据作为容器B的输入数据,此时,可以设置容器A和容器B共享IPC命名空间,并在IPC命名空间中输入容器A对应存储空间中存储输出数据的地址,如此,容器A在对应的存储空间中存储输出数据后,容器B在运行时通过IPC命名空间中的存储地址可以获取到容器A的输出数据,进而容器B可以进行算法运算。
本发明实施例中,根据指示信息可以确定实现算法所需的至少两个容器,并根据指示信息确定各容器之间相互连接的输入和输出;同时,从共享内存中为各容器分配对应的存储空间,并结合根据容器之间相互连接的输入和输出,建立目标映射关系,从而实现容器之间的相互通信。如此本发明实施例中,通过共享内存,以及目标映射关系,使实现算法的容器之间能够进行数据传输,即实现了容器之间通信,从而可以实现对容器之间的输入和输出进行的管控,达到对容器编排的目的。
本发明实施例的一种实施方式中,在步骤204之后,还可以包括:根据连接关系,基于所述至少两个容器镜像控制至少两个容器的运行。
在编排设备通过步骤204建立目标映射关系后,各容器之间的数据流向已经确定,容器之间在运行时可以进行通信,所以可以对运行各容器来实现算法。编排设备在运行各容器时,根据连接关系,基于至少两个容器镜像来依次控制容器的运行,进而得出最终结果。
需要说明的是,在步骤201确定出至少两个容器中各容器之间输入和输出的连接关系后,可以对各容器之间输入和输出的连接关系进行存储,然后运行各容器时,通过存储的连接关系控制至少两个容器的运行。
具体的,连接关系可以包括:一个容器的输出连接另一个容器的输入,一个容器的输出连接多个容器的输入,或者多个容器的输出连接一个容器的输入。
在一个容器的输出连接另一个容器的输入的情况下,以至少两个容器包括第一容器和第二容器为例,则连接关系包括第一容器的输出与第二容器的输入连接的连接关系,目标映射关系包括第二容器的输入和第一容器的输出所对应存储空间的映射关系,或者目标映射关系包括第一容器的输出和第二容器的输入所对应存储空间的映射关系。
此时,根据连接关系控制至少两个容器的运行的过程可以为:向第一容器对应的容器镜像发送第一运行指令,第一运行指令用于指示第一容器对应的容器镜像启动所述第一容器;接收第一容器运行完成后发送的完成消息,第一容器运行完成后将得到的输出数据基于目标映射关系存储至对应存储空间;根据第一容器的输出与第二容器的输入连接的连接关系确定第二容器为需要开始运行的容器;向第二容器对应的容器镜像发送第二运行指令,第二运行指令用于指示第二容器对应的容器镜像启动所述第二容器,第二容器启动时基于目标映射关系获取第一容器的输出数据,并将第一容器的输出数据作为第二容器的输入数据。
以目标映射关系为第二容器的输入和第一容器的输出所对应存储空间的映射关系为例进行说明。各容器的容器镜像需要接收到运行指令后才会开始启动运行,并在运行完成后返回完成消息。编排设备需要向确定运行容器的容器镜像发送运行指令,并在运行完成后根据连接关系确定下一个需要运行的容器。第一容器的输出与第二容器的输入连接,需要先运行第一容器,所以编排设备向第一容器对应的容器镜像发送第一运行指令,使第一容器启动运行。第一容器运行完成后返回完成消息,并将得出的输出数据存储至对应的存储空间中。编排设备接收到第一容器运行完成后返回完成消息后,确定第一容器已经运行完成,然后根据连接关系得出第一容器的输出与第二容器的输入连接,所以可以确定下一个需要运行的容器为第二容器,所以向第二容器对应的容器镜像发送第二运行指令,使第二容器启动运行。第二容器在运行时可以基于第二容器的输入和第一容器的输出所对应存储空间之间的目标映射关系,获取到第一容器的输出数据,进而将第一容器的输出数据作为第二容器的输入数据。
在一个容器的输出连接多个容器的输入时,在上述至少两个容器包括第一容器和第二容器的基础上,以至少两个容器还包括第三容器为例,连接关系还包括所述第一容器的输出与所述第三容器的输入连接的连接关系,目标映射关系为第二容器的输入和第一容器的输出所对应存储空间的映射关系时,还包括第三容器的输入和所述第一容器的输出所对应存储空间的映射关系,或者目标映射关系为第一容器的输出和第二容器的输入所对应存储空间的映射关系时,还包括第一容器的输出和第三容器的输入所对应存储空间的映射关系。此时,在上述控制第一容器和第二容器运行的基础上,编排设备在接收到第一容器运行完成后返回完成消息后,还可以:根据第一容器的输出与第三容器的输入连接的连接关系确定第三容器为需要开始运行的容器;向第三容器对应的容器镜像发送第三运行指令,第三运行指令用于指示第三容器对应的容器镜像启动所述第三容器,第三容器运行时基于目标映射关系获取第一容器的输出数据,并将所述第一容器的输出数据作为所述第三容器的输入数据。
以目标映射关系为第二容器的输入和第一容器的输出所对应存储空间的映射关系,以及第三容器的输入和所述第一容器的输出所对应存储空间的映射关系为例进行说明。第一容器的输出分别与第二容器的输入和第三容器的输入连接,所以编排设备在接收到第一容器运行完成后返回完成消息后,根据连接关系得出第一容器的输出分别与第二容器的输入和第三容器的输出连接,所以可以确定下一个需要运行的容器为第二容器和第三容器,所以向第二容器对应的容器镜像发送第二运行指令,使第二容器启动运行,以及向第三容器对应的容器镜像发送第三运行指令,使第三容器启动运行。第二容器在运行时可以基于第二容器的输入和第一容器的输出所对应存储空间之间的目标映射关系,获取第一容器的输出数据,并将所述第一容器的输出数据作为所述第二容器的输入数据。第三容器运行时基于第三容器的输入和第一容器的输出所对应存储空间之间的目标映射关系,获取第一容器的输出数据,并将所述第一容器的输出数据作为所述第三容器的输入数据。
在多个容器的输出连接一个容器的输入时,在上述至少两个容器包括第一容器和第二容器的基础上,以至少两个容器还包括第四容器为例,第四容器的输出与所述第二容器的输入连接,目标映射关系为第二容器的输入和第一容器的输出所对应存储空间的映射关系时,还包括第二容器的输入和所述第四容器的输出所对应存储空间的映射关系,或者目标映射关系为第一容器的输出和第二容器的输入所对应存储空间的映射关系时,还包括第四容器的输出和第二容器的输入所对应存储空间的映射关系。即第一容器的输出和第四容器的输出同时与第二容器的输入连接。此时,在上述控制第一容器和第二容器运行的基础上,在根据第一容器的输出与第二容器的输入连接的连接关系确定第二容器为需要开始运行的容器之前,还可以包括:接收第四容器运行完成后发送的完成消息,第四容器运行完成后将输出数据基于所述目标映射关系存储至对应的存储空间;根据第一容器的输出与第二容器的输入连接的连接关系确定第二容器为需要开始运行的容器,具体执行为:根据第一容器的输出与第二容器的输入连接的连接关系,以及第四容器的输出与第二容器的输入连接的连接关系,确定第二容器为需要开始运行的容器,并向第二容器对应的容器镜像发送第二运行指令,第二运行指令用于指示第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据和所述第四容器的输出数据,并将所述第一容器的输出数据和所述第四容器的输出数据作为所述第二容器的输入数据。
由于第一容器的输出和第四容器的输出同时与第二容器的输入连接,所以编排设备需要在第一容器和第四容器均运行完成后,才能控制第二容器启动运行,所以在根据第一容器的输出与第二容器的输入连接的连接关系确定第二容器为需要开始运行的容器,还需要接收第四容器运行完成后发送的完成消息。在接收了第一容器的完成消息和第四容器的完成消息后,可以根据连接关系确定出下一个需要运行的是第二容器,进而向第二容器对应的容器镜像发送第二运行指令。
本发明实施例中,编排设备根据各容器之间的连接关系来依次控制各容器的运行,保证容器运行时输入数据和输出数据的准确,进而保证算法能够准确运行。
本发明实施例的一种实施方式中,至少两个容器包括第五容器和第六容器,所述第五容器的输出与所述第六容器的输入连接,在步骤204之前,还可以包括:获取各容器的输入标准和输出标准;判断第六容器的输入所对应的输入标准和第五容器的输出所对应的输出标准是否匹配;则步骤204可以具体执行为:当所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准匹配时,建立所述第六容器和所述第五容器之间的目标映射关系。
各容器中输入和输出均具有标准,如果相互连接的输入和输出的标准不能匹配,则容器之间无法进行通信。以至少两个容器包括第五容器和第六容器,所述第五容器的输出与所述第六容器的输入连接为例,如果第五容器的输出标准和第六容器的输入标准不能匹配,则第五容器输出的数据无法作为第六容器的输入数据,所以第五容器和第六容器无法通信,从而不能进行编排。所以在执行步骤204之前,还可以获取各容器的输入标准和输出标准,并判断第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准是否匹配,第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准匹配,执行步骤204,建立所述第六容器和所述第五容器之间的目标映射关系,即第六容器的输入与第五容器的输出所对应的存储空间之间的映射关系,或第五容器的输出与第六容器的输入所对应的存储空间之间的映射关系。
本发明实施例中,对相互连接的输入和输出,通过判断所对应的输入标准和输出标准是否匹配来判断容器之间是否可以进行通信,在所对应的输入标准和输出标准匹配时,建立对应关系,从而保证了容器之间能够正常通信,保证了算法能够正常运行。
需要说明的是,本发明实施例中,可以将各容器的输入标准和输出标准存储至容器镜像库中,在步骤202从容器库中获取容器镜像时可以同时获取各容器的输入标准和输出标准,输入标准和输出标准可以具体为数据类型,即输入标准为容器输入的数据类型,输出标准为容器输出的数据类型。
图6是根据本发明一实施例提供的容器的编排装置300的示意性框图。如图6所示,该编排装置300包括:
确定单元301,用于根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系;
获取单元302,用于根据所述指示信息获取所述至少两个容器对应的至少两个容器镜像,所述容器镜像用于启动对应容器运行;
分配单元303,用于从共享内存中为所述至少两个容器分别分配对应的存储空间;
建立单元304,用于根据各容器对应的存储空间和所述连接关系,建立目标映射关系,所述目标映射关系包括所述至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系,或所述目标映射关系包括所述至少两个容器中任一容器的输出与和所述任一容器的输出相连的输入所对应的存储空间之间的映射关系。
本发明实施例中,根据指示信息可以确定实现算法所需的至少两个容器,并根据指示信息确定各容器之间相互连接的输入和输出;同时,从共享内存中分别为至少两个容器分配对应的存储空间,并结合容器之间相互连接的输入和输出,建立目标映射关系,从而实现容器之间的相互通信。如此本发明实施例中,通过共享内存,以及目标映射关系,使实现算法的容器之间能够进行数据传输,即实现了容器之间通信,从而可以实现对容器之间的输入和输出进行的管控,达到对容器编排的目的。
可以理解的是,所述连接关系包括所述至少两个容器中一个容器的输入与至少一个其他容器的输出连接和所述至少两个容器中一个容器的输出与至少一个其他容器的输入连接,所述至少一个其他容器属于所述至少两个容器。
图7是根据本发明又一实施例提供的容器的编排装置300的示意性框图。
可以理解的是,如图7所示,装置300还可以包括:
控制单元305,用于根据所述连接关系,基于所述至少两个容器镜像控制所述至少两个容器的运行。
可以理解的是,所述至少两个容器包括第一容器和第二容器,所述连接关系包括所述第一容器的输出与所述第二容器的输入连接的连接关系;
所述控制单元305具体用于:
向所述第一容器对应的容器镜像发送第一运行指令,所述第一运行指令用于指示所述第一容器对应的容器镜像启动所述第一容器;
接收所述第一容器运行完成后发送的完成消息,所述第一容器运行完成后将得到的输出数据基于所述目标映射关系存储至对应的存储空间;
根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第二容器的输入数据。
可以理解的是,所述至少两个容器还包括第三容器,所述连接关系还包括所述第一容器的输出与所述第三容器的输入连接的连接关系;
所述控制单元305在所述接收所述第一容器运行完成后发送的完成消息之后,还具体用于:
根据所述第一容器的输出与所述第三容器的输入连接的连接关系确定所述第三容器为需要开始运行的容器;
向所述第三容器对应的容器镜像发送第三运行指令,所述第三运行指令用于指示所述第三容器对应的容器镜像启动所述第三容器,所述第三容器运行时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第三容器的输入数据。
可以理解的是,所述至少两个容器还包括第四容器,所述连接关系还包括所述第四容器的输出与所述第二容器的输入连接;
所述控制单元305在根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器之前,还具体用于:
接收所述第四容器运行完成后发送的完成消息,所述第四容器运行完成后将输出数据基于所述目标映射关系存储至对应的存储空间;
所述控制单元在根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器时,具体用于:
根据所述第一容器的输出与所述第二容器的输入连接的连接关系,以及所述第四容器的输出与所述第二容器的输入连接的连接关系,确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据和所述第四容器的输出数据,并将所述第一容器的输出数据和所述第四容器的输出数据作为所述第二容器的输入数据。
可以理解的是,所述至少两个容器包括第五容器和第六容器,所述第五容器的输出与所述第六容器的输入连接;
所述获取单元302还用于获取所述各容器的输入标准和输出标准;
如图7所示,所述装置300还包括:
判断单元306,用于判断所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准是否匹配;
所述建立单元304具体用于当所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准匹配时,建立所述第六容器和所述第五容器之间的目标映射关系。
可以理解的是,所述建立单元304还用于建立用户界面,所述用户界面包括多个容器标识;
如图7所示,所述装置300还包括:
接收单元307,用于接收指示信息,所述指示信息包括用户通过所述用户界面从所述多个容器标识中选中的至少两个容器标识和所述至少两个容器标识之间的连接关系;
所述确定单元301具体用于根据所述至少两个容器标识确定所述至少两个容器;以及,用于根据所述至少两个容器标识之间的连接关系确定所述至少两个容器中各容器之间输入和输出的连接关系。
可以理解的是,所述至少两个容器包括实现所述至少两个容器的功能的容器镜像;
所述获取单元302具体用于根据所述指示信息,从容器镜像库获取所述至少两个容器镜像,所述容器镜像库为预先设置,所述容器镜像库包括所述至少两个容器镜像。
根据本发明实施例的容器的编排装置300,可对应于根据本发明实施例的容器的编排方法中的执行主体,并且容器的编排装置300中的各个模块的上述和其它操作和/或功能分别为了实现图4所示实施例中的相应流程,为了简洁,在此不再赘述。
图8是根据本发明另一实施例的容器的编排设备400的示意性框图。如图8所示,设备400包括处理器401、存储器402和通信接口403,存储器402用于存储可执行的程序代码,处理器401通过读取存储器402中存储的可执行程序代码来运行与可执行程序代码对应的程序,通信接口403用于与外部设备通信,设备400还可以包括总线404,总线404用于连接处理器401、存储器402和通信接口403,使处理器401、存储器402和通信接口403通过总线404进行相互通信。
根据本发明实施例的容器的编排设备400,可对应于根据本发明实施例的容器的编排方法中的执行主体,并且容器的编排设备400中的各操作和/或功能分别为了实现图4所示实施例的相应流程,为了简洁,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。

Claims (20)

1.一种容器的编排方法,其特征在于,包括:
根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系;
根据所述指示信息获取所述至少两个容器对应的至少两个容器镜像,所述容器镜像用于启动对应容器运行;
从共享内存中为所述至少两个容器分别分配对应的存储空间;
根据各容器对应的存储空间和所述连接关系,建立目标映射关系,所述目标映射关系包括所述至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系,或所述目标映射关系包括所述至少两个容器中任一容器的输出与和所述任一容器的输出相连的输入所对应的存储空间之间的映射关系。
2.根据权利要求1所述的方法,其特征在于,所述连接关系包括所述至少两个容器中一个容器的输入与至少一个其他容器的输出连接和所述至少两个容器中一个容器的输出与至少一个其他容器的输入连接,所述至少一个其他容器属于所述至少两个容器。
3.根据权利要求1或2所述的方法,其特征在于,在所述根据所述各容器对应的存储空间和所述连接关系,建立目标映射关系之后,还包括:
根据所述连接关系,基于所述至少两个容器镜像控制所述至少两个容器的运行。
4.根据权利要求3所述的方法,其特征在于,所述至少两个容器包括第一容器和第二容器,所述连接关系包括所述第一容器的输出与所述第二容器的输入连接的连接关系;
所述根据所述连接关系,基于所述至少两个容器镜像控制所述至少两个容器的运行,包括:
向所述第一容器对应的容器镜像发送第一运行指令,所述第一运行指令用于指示所述第一容器对应的容器镜像启动所述第一容器;
接收所述第一容器运行完成后发送的完成消息,所述第一容器运行完成后将得到的输出数据基于所述目标映射关系存储至对应的存储空间;
根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第二容器的输入数据。
5.根据权利要求4所述的方法,其特征在于,所述至少两个容器还包括第三容器,所述连接关系还包括所述第一容器的输出与所述第三容器的输入连接的连接关系;
在所述接收所述第一容器运行完成后发送的完成消息之后,还包括:
根据所述第一容器的输出与所述第三容器的输入连接的连接关系确定所述第三容器为需要开始运行的容器;
向所述第三容器对应的容器镜像发送第三运行指令,所述第三运行指令用于指示所述第三容器对应的容器镜像启动所述第三容器,所述第三容器运行时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第三容器的输入数据。
6.根据权利要求4所述的方法,其特征在于,所述至少两个容器还包括第四容器,所述连接关系还包括所述第四容器的输出与所述第二容器的输入连接;
在所述根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器之前,还包括:
接收所述第四容器运行完成后发送的完成消息,所述第四容器运行完成后将输出数据基于所述目标映射关系存储至对应的存储空间;
所述根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器,包括:
根据所述第一容器的输出与所述第二容器的输入连接的连接关系,以及所述第四容器的输出与所述第二容器的输入连接的连接关系,确定所述第二容器为需要开始运行的容器;
所述向所述第二容器对应的容器镜像发送第二运行指令,包括:
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据和所述第四容器的输出数据,并将所述第一容器的输出数据和所述第四容器的输出数据作为所述第二容器的输入数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述至少两个容器包括第五容器和第六容器,所述第五容器的输出与所述第六容器的输入连接;
所述建立目标映射关系之前,还包括:
获取所述各容器的输入标准和输出标准;
判断所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准是否匹配;
所述建立目标映射关系,包括:
当所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准匹配时,建立所述第六容器和所述第五容器之间的目标映射关系。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系之前,还包括:
建立用户界面,所述用户界面包括多个容器标识;
接收指示信息,所述指示信息包括用户通过所述用户界面从所述多个容器标识中选中的至少两个容器标识和所述至少两个容器标识之间的连接关系;
所述根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系,包括:
根据所述至少两个容器标识确定所述至少两个容器;
根据所述至少两个容器标识之间的连接关系确定所述至少两个容器中各容器之间输入和输出的连接关系。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述根据所述指示信息获取所述至少两个容器对应的至少两个容器镜像,包括:
根据所述指示信息,从容器镜像库获取所述至少两个容器镜像,所述容器镜像库为预先设置,所述容器镜像库包括所述至少两个容器镜像。
10.一种容器的编排装置,其特征在于,包括:
确定单元,用于根据指示信息确定实现算法所需的至少两个容器和所述至少两个容器中各容器之间输入和输出的连接关系;
获取单元,用于根据所述指示信息获取所述至少两个容器对应的至少两个容器镜像,所述容器镜像用于启动对应容器运行;
分配单元,用于从共享内存中为所述至少两个容器分别分配对应的存储空间;
建立单元,用于根据各容器对应的存储空间和所述连接关系,建立目标映射关系,所述目标映射关系包括所述至少两个容器中任一容器的输入与和所述任一容器的输入相连的输出所对应的存储空间之间的映射关系,或所述目标映射关系包括所述至少两个容器中任一容器的输出与和所述任一容器的输出相连的输入所对应的存储空间之间的映射关系。
11.根据权利要求10所述的装置,其特征在于,所述连接关系包括所述至少两个容器中一个容器的输入与至少一个其他容器的输出连接和所述至少两个容器中一个容器的输出与至少一个其他容器的输入连接,所述至少一个其他容器属于所述至少两个容器。
12.根据权利要求10或11所述的装置,其特征在于,还包括:
控制单元,用于根据所述连接关系,基于所述至少两个容器镜像控制所述至少两个容器的运行。
13.根据权利要求12所述的装置,其特征在于,所述至少两个容器包括第一容器和第二容器,所述连接关系包括所述第一容器的输出与所述第二容器的输入连接的连接关系;
所述控制单元具体用于:
向所述第一容器对应的容器镜像发送第一运行指令,所述第一运行指令用于指示所述第一容器对应的容器镜像启动所述第一容器;
接收所述第一容器运行完成后发送的完成消息,所述第一容器运行完成后将得到的输出数据基于所述目标映射关系存储至对应的存储空间;
根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第二容器的输入数据。
14.根据权利要求13所述的装置,其特征在于,所述至少两个容器还包括第三容器,所述连接关系还包括所述第一容器的输出与所述第三容器的输入连接的连接关系;
所述控制单元在所述接收所述第一容器运行完成后发送的完成消息之后,还具体用于:
根据所述第一容器的输出与所述第三容器的输入连接的连接关系确定所述第三容器为需要开始运行的容器;
向所述第三容器对应的容器镜像发送第三运行指令,所述第三运行指令用于指示所述第三容器对应的容器镜像启动所述第三容器,所述第三容器运行时基于所述目标映射关系获取所述第一容器的输出数据,并将所述第一容器的输出数据作为所述第三容器的输入数据。
15.根据权利要求13所述的装置,其特征在于,所述至少两个容器还包括第四容器,所述连接关系还包括所述第四容器的输出与所述第二容器的输入连接;
所述控制单元在根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器之前,还具体用于:
接收所述第四容器运行完成后发送的完成消息,所述第四容器运行完成后将输出数据基于所述目标映射关系存储至对应的存储空间;
所述控制单元在根据所述第一容器的输出与所述第二容器的输入连接的连接关系确定所述第二容器为需要开始运行的容器时,具体用于:
根据所述第一容器的输出与所述第二容器的输入连接的连接关系,以及所述第四容器的输出与所述第二容器的输入连接的连接关系,确定所述第二容器为需要开始运行的容器;
向所述第二容器对应的容器镜像发送第二运行指令,所述第二运行指令用于指示所述第二容器对应的容器镜像启动所述第二容器,所述第二容器启动时基于所述目标映射关系获取所述第一容器的输出数据和所述第四容器的输出数据,并将所述第一容器的输出数据和所述第四容器的输出数据作为所述第二容器的输入数据。
16.根据权利要求10-15任一项所述的装置,其特征在于,所述至少两个容器包括第五容器和第六容器,所述第五容器的输出与所述第六容器的输入连接;
所述获取单元还用于获取所述各容器的输入标准和输出标准;
所述装置还包括:
判断单元,用于判断所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准是否匹配;
所述建立单元具体用于当所述第六容器的输入所对应的输入标准和所述第五容器的输出所对应的输出标准匹配时,建立所述第六容器和所述第五容器之间的目标映射关系。
17.根据权利要求10-16任一项所述的装置,其特征在于,所述建立单元还用于建立用户界面,所述用户界面包括多个容器标识;
所述装置还包括:
接收单元,用于接收指示信息,所述指示信息包括用户通过所述用户界面从所述多个容器标识中选中的至少两个容器标识和所述至少两个容器标识之间的连接关系;
所述确定单元具体用于根据所述至少两个容器标识确定所述至少两个容器;以及,用于根据所述至少两个容器标识之间的连接关系确定所述至少两个容器中各容器之间输入和输出的连接关系。
18.根据权利要求10-17任一项所述的装置,其特征在于,所述获取单元具体用于根据所述指示信息,从容器镜像库获取所述至少两个容器镜像,所述容器镜像库为预先设置,所述容器镜像库包括所述至少两个容器镜像。
19.一种容器的编排设备,其特征在于,包括:处理器、存储器和通信接口;
所述存储器、所述通信接口与所述处理器耦合;
所述存储器用于存储计算机程序代码,所述计算机程序代码包括指令,当所述处理器执行所述指令时,所述容器的编排设备用于执行如权利要求1-9中任一项所述的容器的编排方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-9中任一项的所述的容器的编排方法。
CN201711206912.4A 2017-11-27 2017-11-27 容器的编排方法、装置及存储介质 Active CN109840132B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711206912.4A CN109840132B (zh) 2017-11-27 2017-11-27 容器的编排方法、装置及存储介质
PCT/CN2018/114046 WO2019100934A1 (zh) 2017-11-27 2018-11-06 容器的编排方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711206912.4A CN109840132B (zh) 2017-11-27 2017-11-27 容器的编排方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN109840132A true CN109840132A (zh) 2019-06-04
CN109840132B CN109840132B (zh) 2021-05-14

Family

ID=66630875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711206912.4A Active CN109840132B (zh) 2017-11-27 2017-11-27 容器的编排方法、装置及存储介质

Country Status (2)

Country Link
CN (1) CN109840132B (zh)
WO (1) WO2019100934A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502314A (zh) * 2019-08-23 2019-11-26 联想(北京)有限公司 一种容器的处理方法、装置、节点服务器及集群
CN112181401A (zh) * 2020-08-20 2021-01-05 第四范式(北京)技术有限公司 应用构建方法及应用构建平台
WO2023193433A1 (zh) * 2022-04-08 2023-10-12 华为云计算技术有限公司 一种服务启动方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577241A (zh) * 2009-12-31 2012-07-11 华为技术有限公司 分布式缓存资源调度的方法、装置及系统
CN103942052A (zh) * 2014-04-17 2014-07-23 中国联合网络通信集团有限公司 一种业务容器引擎
CN105550130A (zh) * 2015-12-14 2016-05-04 中电科华云信息技术有限公司 基于容器的应用环境动态编排的方法及其应用系统
CN106603592A (zh) * 2015-10-15 2017-04-26 中国电信股份有限公司 一种用于基于服务模型的应用集群迁移的方法和迁移装置
CN107145380A (zh) * 2017-03-27 2017-09-08 华为技术有限公司 虚拟资源编排方法及装置
US20170322815A1 (en) * 2016-05-09 2017-11-09 International Business Machines Corporation Kernel-integrated instance-specific operational resources with virtualization

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107256178B (zh) * 2017-04-27 2019-12-17 北京数人科技有限公司 一种容器管理平台
CN107301022A (zh) * 2017-06-27 2017-10-27 北京溢思得瑞智能科技研究院有限公司 一种基于容器技术的存储访问方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102577241A (zh) * 2009-12-31 2012-07-11 华为技术有限公司 分布式缓存资源调度的方法、装置及系统
CN103942052A (zh) * 2014-04-17 2014-07-23 中国联合网络通信集团有限公司 一种业务容器引擎
CN106603592A (zh) * 2015-10-15 2017-04-26 中国电信股份有限公司 一种用于基于服务模型的应用集群迁移的方法和迁移装置
CN105550130A (zh) * 2015-12-14 2016-05-04 中电科华云信息技术有限公司 基于容器的应用环境动态编排的方法及其应用系统
US20170322815A1 (en) * 2016-05-09 2017-11-09 International Business Machines Corporation Kernel-integrated instance-specific operational resources with virtualization
CN107145380A (zh) * 2017-03-27 2017-09-08 华为技术有限公司 虚拟资源编排方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110502314A (zh) * 2019-08-23 2019-11-26 联想(北京)有限公司 一种容器的处理方法、装置、节点服务器及集群
CN112181401A (zh) * 2020-08-20 2021-01-05 第四范式(北京)技术有限公司 应用构建方法及应用构建平台
WO2023193433A1 (zh) * 2022-04-08 2023-10-12 华为云计算技术有限公司 一种服务启动方法及相关装置

Also Published As

Publication number Publication date
CN109840132B (zh) 2021-05-14
WO2019100934A1 (zh) 2019-05-31

Similar Documents

Publication Publication Date Title
CN107680684B (zh) 用于获取信息的方法及装置
CN107516090B (zh) 一体化人脸识别方法和系统
CN104995865B (zh) 基于声音和/或面部辨识的服务提供
EP3021562A1 (en) Method for sharing screen and electronic device thereof
CN108282527A (zh) 生成服务实例的分布式系统和方法
US10999501B2 (en) Electronic device and method for controlling display of panorama image
CN108829868B (zh) 数据显示方法和装置、存储介质及电子装置
CN115185647B (zh) virtio设备直通方法及相关装置
CN109840132A (zh) 容器的编排方法、装置及存储介质
CN109062699A (zh) 一种资源监控方法、装置、服务器及存储介质
CN110457544A (zh) 一种数据获取方法、系统、电子设备及存储介质
US10356306B2 (en) Electronic device connected to camera and method of controlling same
CN110675154A (zh) 一种基于人脸识别的服务提供方法、装置、设备及介质
CN110286981A (zh) 虚拟云桌面服务器的使用状态的显示方法及显示系统
CN109684103A (zh) 一种接口调用方法、装置、服务器及存储介质
CN111506393B (zh) 一种基于arm的虚拟化装置及其使用方法
CN114513512B (zh) 界面渲染的方法及装置
CN109669715A (zh) 应用程序动态更新方法、设备及存储介质
CN109522092A (zh) 一种云管平台纳管虚拟机方法和装置
CN110245027A (zh) 一种进程间通信的方法和设备
CN112587922B (zh) 模型显示方法及装置
CN111651146B (zh) 一种函数生成方法、装置、设备和介质
US10818075B2 (en) Content output method and electronic device for supporting same
CN110351521A (zh) 监控方法、监控装置、电子设备和介质
CN110083357A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220208

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.