一种基于容器的任务执行方法及装置与流程

文档序号:27503288发布日期:2021-11-22 16:36阅读:106来源:国知局
一种基于容器的任务执行方法及装置与流程

1.本说明书一个或多个实施例涉及计算机技术领域,尤其涉及一种基于容器的任务执行方法及装置。


背景技术:

2.kubernetes(k8s)是用于自动部署、扩展和管理容器化应用程序的开源系统。应用了k8s环境的容器管理平台(简称k8s平台),可以应用于管理云平台中多个主机上的容器化应用,也可以应用于其他场景下的容器化应用。用户向k8s平台提交任务后,k8s平台可以自动分配容器来执行用户提交的任务。容器负责隔离内部环境与外界环境,使得任务的执行过程不受外界环境的影响。在任务的执行过程中,还可能会调用业务方设备中的隐私数据。目前,利用k8s平台进行任务的执行过程,存在进一步提高安全性、阻断恶意任务的需求。
3.因此,希望能有改进的方案,能够有效地阻断恶意任务,提高容器所执行任务的安全性。


技术实现要素:

4.本说明书一个或多个实施例描述了一种基于容器的任务执行方法及装置,以有效地、便利地阻断恶意任务,提高容器所执行任务的安全性。具体的技术方案如下。
5.第一方面,实施例提供了一种基于容器的任务执行方法,包括:
6.接收提交的待执行任务的任务描述文件,其中包括第一镜像文件的第一标识;
7.当确定所述第一标识在白名单中时,利用所述任务描述文件创建容器组,并基于所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务;
8.其中,所述第一标识是在确定所述第一镜像文件包含的指定可执行文件信息安全时被预先添加至所述白名单的。
9.在一种实施方式中,所述接收提交的待执行任务的任务描述文件的步骤,包括:
10.接收根据用户的输入操作得到的待执行任务的任务描述文件。
11.在一种实施方式中,该方法还包括:
12.当确定所述第一标识不在所述白名单中时,拒绝执行所述待执行任务。
13.在一种实施方式中,在利用所述任务描述文件创建容器组,并基于所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务的步骤之前,还包括:
14.检测所述任务描述文件中是否存在指定可执行文件信息;
15.如果不存在,则利用所述任务描述文件创建容器组,并基于所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
16.在一种实施方式中,所述检测所述任务描述文件中是否存在指定可执行文件信息的步骤,包括:
17.检测所述任务描述文件中的可执行文件字段是否为未设置状态,如果是,则确定
所述任务描述文件中不存在指定可执行文件信息。
18.在一种实施方式中,所述未设置状态包括:字段值为空值,或字段值为标识该字段值不可用的预设值。
19.在一种实施方式中,该方法还包括:
20.当所述任务描述文件中存在指定可执行文件信息时,拒绝执行所述待执行任务。
21.在一种实施方式中,所述方法由容器管理平台执行。
22.在一种实施方式中,所述容器管理平台包括准入层和管理层;
23.所述准入层,接收提交的待执行任务的任务描述文件,其中包括第一镜像文件的第一标识;当确定所述第一标识在白名单中时,检测所述任务描述文件中是否存在指定可执行文件信息;如果不存在,则将所述任务描述文件发送至所述管理层;
24.所述管理层,基于利用所述任务描述文件而创建的容器组,以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
25.在一种实施方式中,所述执行所述待执行任务的步骤,包括:
26.基于所述任务描述文件,生成容器组描述文件;
27.基于利用所述容器组描述文件而创建的容器组,以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
28.在一种实施方式中,所述基于利用所述容器组描述文件而创建的容器组,以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务的步骤,包括:
29.利用所述容器组描述文件创建容器组,基于所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
30.在一种实施方式中,所述执行所述待执行任务的步骤,包括:
31.将所述容器组描述文件发送至指定的节点设备,以使所述节点设备利用所述容器组描述文件创建容器组,并利用所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
32.在一种实施方式中,所述容器管理平台还用于向服务器和多个业务方设备部署待执行任务;所述执行所述待执行任务的步骤,包括:
33.基于所述任务描述文件,生成针对所述服务器的第一容器组描述文件,其中包含针对所述服务器的配置信息;
34.基于所述任务描述文件,分别生成针对多个业务方设备的第二容器组描述文件,其中分别包含针对对应的业务方设备的配置信息;
35.将生成的多个容器组描述文件,分别发送至对应的服务器和业务方设备,以使得所述服务器和业务方设备利用各自的容器组描述文件创建容器组,并基于各自创建的容器组和第一镜像文件包含的指定可执行文件信息,执行所述待执行任务。
36.第二方面,实施例提供了一种基于容器的任务执行装置,包括:
37.接收模块,配置为,接收提交的待执行任务的任务描述文件,其中包括第一镜像文件的第一标识;
38.执行模块,配置为,当确定所述第一标识在白名单中时,利用所述任务描述文件创建容器组,并基于所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务;
39.其中,所述第一标识是在确定所述第一镜像文件包含的指定可执行文件信息安全时被预先添加至所述白名单的。
40.在一种实施方式中,在所述执行模块之前,所述装置还包括:
41.检测模块,配置为检测所述任务描述文件中是否存在指定可执行文件信息;如果不存在,则执行所述执行模块。
42.在一种实施方式中,所述检测模块,具体配置为:
43.检测所述任务描述文件中的可执行文件字段是否为未设置状态,如果是,则确定所述任务描述文件中不存在指定可执行文件信息。
44.在一种实施方式中,该装置还包括不执行模块,配置为:
45.当所述任务描述文件中存在指定可执行文件信息时,拒绝执行所述待执行任务。
46.在一种实施方式中,所述装置部署在容器管理平台中;所述容器管理平台还用于向服务器和多个业务方设备部署待执行任务;所述执行模块,包括:
47.第一生成模块,配置为,基于所述任务描述文件,生成针对所述服务器的第一容器组描述文件,其中包含针对所述服务器的配置信息;
48.第二生成模块,配置为,基于所述任务描述文件,分别生成针对多个业务方设备的第二容器组描述文件,其中分别包含针对对应的业务方设备的配置信息;
49.发送模块,配置为,将生成的多个容器组描述文件,分别发送至对应的服务器和业务方设备,以使得所述服务器和业务方设备利用各自的容器组描述文件创建容器组,并基于各自创建的容器组和第一镜像文件包含的指定可执行文件信息,执行所述待执行任务。
50.第三方面,实施例提供了一种容器管理平台,包括准入层和管理层;
51.所述准入层,接收提交的待执行任务的任务描述文件,其中包括第一镜像文件标识;当确定所述第一标识在白名单中时,检测所述任务描述文件中是否存在指定可执行文件信息;如果不存在,则将所述任务描述文件发送至所述管理层;其中,所述第一标识是在确定所述第一镜像文件包含的指定可执行文件信息安全时被添加至所述白名单的;
52.所述管理层,基于利用所述任务描述文件而创建的容器组,以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
53.第四方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中任一项所述的方法。
54.第五方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中任一项所述的方法。
55.根据本说明书实施例提供的方法及装置,执行设备在接收到待执行任务的任务描述文件时,如果检测到第一镜像文件在白名单中,则认为该第一镜像文件中的指定可执行文件信息已经过安全性审核,对应的可执行文件内容安全;在容器中执行待执行任务时,使用已经审核过的第一镜像文件中的指定可执行文件信息,而不使用以其他形式提供的指定可执行文件信息,例如不使用任务描述文件中的指定执行可执行文件信息。这样能够避免在容器中执行待执行任务时运行恶意可执行文件,能有效地阻断恶意任务,提高容器所执行任务的安全性。
附图说明
56.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
57.图1为利用容器管理平台执行待执行任务的一种实施场景示意图;
58.图2为实施例提供的基于容器的任务执行方法的一种流程示意图;
59.图3

1是一个镜像文件所包含信息的示意图;
60.图3

2是描述文件的一种格式示意图;
61.图4为实施例提供的基于容器的任务执行方法的另一种流程示意图;
62.图5为实施例提供的基于容器的任务执行装置的一种示意性框图;
63.图6为实施例提供的容器管理平台的一种示意性框图。
具体实施方式
64.下面结合附图,对本说明书提供的方案进行描述。
65.图1为利用容器管理平台执行待执行任务的一种实施场景示意图。用户向容器管理平台提交任务,容器管理平台确认该任务的安全性之后,可以利用相应的命令创建容器组(pod),在该容器组中运行该任务。容器管理平台可以编排和管理多个容器组,以执行多个任务。图1中示出的容器组pod1、容器组pod2
……
容器组podn构成容器集群,容器管理平台可以对该容器集群进行编排和管理。
66.k8s是一种容器编排工具,也是一个自动化的容器运维管理程序,支持将多台主机组合成集群来运行容器化应用。并且,它可以自动创建、删除容器,消除镜像化应用程序在部署、扩缩容、下线时涉及的许多手动操作。容器管理平台可以是应用了kubernetes(k8s)环境,并能够实现对多台主机组合成的集群来运行容器化应用的设备,可以简称为k8s平台。
67.在k8s中,容器组pod是可以创建和管理的最小的计算单元(或者称调度单元、编排单元)。容器组中可以包含一个容器或多个容器,即单容器pod和多容器pod。容器是应用程序(任务)运行的载体,应用程序预先被打包在镜像文件中。通常,一个容器运行一个镜像文件,一个镜像文件可以放到多个容器中运行。目前,docker是容器技术的一种实现。
68.当用户向k8s平台提交任务时,k8s平台可以接收到用户针对该任务提交的描述文件,k8s平台可以针对该描述文件自动分配容器组(pod)来执行用户提交的任务,在容器组中运行相应的镜像文件,实现对任务的执行。容器负责隔离内部环境与外界环境,使得任务的执行过程不受外界环境的影响,能够对任务执行过程进行有效的隐私保护。
69.在任务的执行过程中,容器还会调用业务方设备中的隐私数据,以实现对任务的执行过程。但是,一旦用户提交了恶意任务,或者用户提交的任务被恶意修改,在任务被执行的过程中,业务方的隐私数据可能会遭遇泄露。
70.为了能有效地阻断恶意任务,提高容器执行任务过程中的安全性,本说明书提供了一种基于容器的任务执行方法。在该方法中,作为执行主体的执行设备,在步骤s210中,接收提交的待执行任务的任务描述文件,该任务描述文件包括第一镜像文件的第一标识;
在步骤s230中,当确定第一标识在白名单中时,利用该任务描述文件创建容器组,并基于该容器组以及第一镜像文件中包含的指定可执行文件信息,执行待执行任务;其中第一标识是在确定第一镜像文件包含的指定可执行文件信息安全时被添加至白名单的。
71.对于通过安全检测的镜像文件,可以将其标识添加至白名单中。当确定第一标识在白名单中时,认为第一镜像文件中的执行可执行文件信息是安全的,因此在容器中执行待执行任务时,使用更安全的第一镜像文件中的执行可执行文件信息,相比于使用任务描述文件中的指定可执行文件信息,能够避免在容器中运行恶意的可执行文件,从而有效地阻隔恶意任务,提高容器执行任务时的安全性。
72.为了使得对恶意任务的阻断过程更加便利地实施,在本说明书提供的基于容器的任务执行方法中,在步骤s210之后,还可以包括:步骤s220,当确定第一标识在白名单中时,检测任务描述文件中是否存在指定可执行文件信息;步骤s230,当确定第一标识在白名单中,且检测到任务描述文件中不存在指定可执行文件信息时,利用该任务描述文件创建容器组,并基于该容器组以及第一镜像文件中包含的指定可执行文件信息,执行待执行任务。
73.通过检测镜像文件的标识在白名单中,且检测任务描述文件中不存在指定可执行文件信息,能够保证镜像文件的安全性,并且在任务的执行过程中,不使用任务描述文件中的指定可执行文件信息,而替代地使用第一镜像文件中经过安全检测的指定可执行文件信息,进而能够有效地、便利地阻断恶意任务,使得所执行的任务都是安全的,提高了业务方数据的安全性。
74.上述方法包含的步骤的执行主体,可以是容器管理平台,也可以是节点设备或者其他设备。下面以容器管理平台作为执行主体为例进行说明,并详细说明其具体实施方式。
75.图2为实施例提供的基于容器的任务执行方法的一种流程示意图。该方法通过容器管理平台执行,容器管理平台可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。该方法包括步骤s210~s230。
76.步骤s210,容器管理平台接收提交的待执行任务job1的任务描述文件。
77.容器管理平台可以接收根据用户的输入操作得到的待执行任务job1的任务描述文件。任务描述文件可以是用户向容器管理平台提交的。例如,容器管理平台可以向用户提供包含多个可选项的页面,供用户在页面的下拉框中选择内容,在输入框中输入信息。
78.容器管理平台也可以接收其他设备发送的待执行任务job1的任务描述文件。其他设备例如可以是用户设备或业务方设备等。其他设备可以在获取到用户提交的待执行任务job1后,向容器管理平台提交对应的任务描述文件。
79.上述任务描述文件包括第一镜像文件d1的第一标识。该任务描述文件是用于记录与待执行任务job1相关的任务信息的文件。任务描述文件还可以包括待执行任务的任务名称、任务类型、指定可执行文件信息及其参数信息等。该任务描述文件可以是针对自定义类型任务的描述文件,也就是允许用户提交自定义类型的任务。
80.指定可执行文件是运行待执行任务时需要的关键文件,存在于对应的第一镜像文件中。指定可执行文件信息可以包括指定可以执行文件在第一镜像文件中的存储路径,还可以包括指定可执行文件的名称等信息。例如,指定可执行文件可以是“.exe”文件、“.sys”文件或“.dll”文件等。
81.第一镜像文件d1是执行待执行任务job1时在容器中运行的镜像文件。该第一镜像
文件d1可以包括元信息和文件集合。文件集合包含执行待执行任务job1所需的所有文件,包括可执行文件、配置文件和运行时所依赖的基础库文件。也就是,文件集合中包含了运行待执行任务job1所需要的完整的操作系统和文件系统。元信息记录了第一镜像文件d1的基本信息,包括但不限于指定可执行文件信息及其参数信息。指定可执行文件信息中记录了指定可执行文件在文件集合中的路径,参数信息记录了指定可执行文件的启动参数。可见,在任务描述文件和第一镜像文件中,均包含了指定可执行文件信息及其参数信息。一般情况下,任务描述文件和第一镜像文件中的这些信息是相同的。
82.在实际应用中,任意的镜像文件可以与第一镜像文件具有相同结构。参见图3

1,图3

1是一个镜像文件所包含信息的示意图。其中,镜像文件包括元信息和文件集合,元信息包含指定可执行文件信息和参数信息,文件集合包含一个或多个可执行文件、配置文件和基础库文件,文件集合中包含指定可执行文件。
83.在k8s环境中,任务描述文件可以采用yaml格式的文件实现,指定可执行文件信息可以通过command字段值表示,其参数信息可以通过args字段值表示。参见图3

2,图3

2是任务描述文件的一种格式示意图。其中,该任务描述文件指定了任务名称(name字段)、任务使用的镜像文件名称(image字段),任务的指定可执行文件路径(command字段)和参数信息(args字段)。另外,任务描述文件中还可以包括很多其他字段信息,例如包括版本信息(apiversion字段),描述文件类型(kind字段),元数据(metadata字段),容器信息(containers字段)。以上仅仅是任务描述文件的一个例子,并不构成对本技术的限定。
84.接着,在步骤s220中,容器管理平台可以判断第一标识是否在白名单中。当确定第一标识在白名单中时,检测该任务描述文件中是否存在指定可执行文件信息。如果不存在,则执行步骤s230。
85.上述第一标识可以是在确定第一镜像文件包含的指定可执行文件信息安全时被添加至白名单的。第一标识可以是预先被添加至白名单的。当第一标识在白名单中,且任务描述文件中不存在指定可执行文件信息时,认为该待执行任务是安全的,不是恶意任务。当第一标识不在白名单中时,认为第一镜像文件未经过安全性检测,是不安全的镜像文件,因此可以拒绝执行待执行任务job1,也不必检测任务描述文件中是否存在指定可执行文件信息。
86.当检测到任务描述文件中存在指定可执行文件信息时,认为该待执行任务job1不安全,可以拒绝执行该待执行任务job1。本实施例不允许用户在任务描述文件中设置指定可执行文件信息,而替代地允许使用安全的镜像文件中的指定可执行文件信息,从而阻断可能的恶意任务。
87.在检测任务描述文件中是否存在指定可执行文件信息时,可以检测任务描述文件中的可执行文件字段是否为未设置状态,如果是,则确定任务描述文件中不存在指定可执行文件信息。如果不是未设置状态,则确定任务描述文件中存在指定可执行文件信息。可执行文件字段例如为commond字段。其中,未设置状态包括:字段值为空值,或字段值为标识该字段值不可用的预设值等。例如可以预先设置0值或者1值表示字段值不可用,当检测到commond字段中的字段值为0或1时,认为该commond字段不可用。
88.其中,上述白名单用于记录符合安全性检测的镜像文件标识。也就是,记录在白名单中的镜像文件的指定可执行文件信息是安全的。容器管理平台可以从其他设备中获取白
名单,也可以通过自身对镜像文件的检测,构建白名单。
89.例如,容器管理平台在接收提交的待执行任务的任务描述文件之前,可以接收提交的第一镜像文件,至少对第一镜像文件中的执行可执行文件信息进行安全性检测。当安全性检测通过时,将第一镜像文件的第一标识添加至白名单中,进而构建白名单。容器管理平台可以对多个镜像文件进行上述安全性检测,将检测通过的镜像文件的标识添加至白名单中。
90.第一镜像文件可以是用户提交的。对第一镜像文件中的执行可执行文件信息进行安全性检测的步骤,也可以是检测设备执行的。用户可以将第一镜像文件提交至检测设备,由检测设备维护白名单。检测设备可以存储第一镜像文件,也可以将第一镜像文件存储在存储平台中。
91.容器管理平台可以从检测设备中获取白名单,判断第一标识是否在白名单中;也可以不获取白名单,而将第一标识发送至检测设备,并获取检测设备反馈的第一标识是否在白名单中的检测结果。
92.在对第一镜像文件中的指定可执行文件进行安全性检测时,具体可以对第一镜像文件的指定可执行文件字段对应的可执行文件进行安全性检测。例如,可以检测第一镜像文件的元信息中的command字段对应的可执行文件是否安全,如果安全,则把第一镜像文件的第一标识添加至白名单中。
93.当安全性检测通过时,还可以将第一镜像文件存储至容器管理平台的指定空间中,或者存储至用于存储镜像文件的存储平台中。
94.镜像文件中往往包含许多的可执行文件,在对镜像文件进行安全性检测时,可以只检测指定可执行文件,即关键的可执行文件,例如只检测元信息中command字段对应的可执行文件。
95.经过安全性检测的镜像文件,其指定可执行文件信息也就经过了安全性检测。镜像文件存储在专门的设备中,这可以尽可能使得该指定可执行文件信息不被更改,保证其安全性。
96.在一般情况下,任务描述文件中也会包含指定可执行文件信息。在一般的k8s处理机制中,当任务描述文件和第一镜像文件中均包含了指定可执行文件信息时,在容器组中运行第一镜像文件时,会使用任务描述文件中的指定可执行文件信息,运行该指定可执行文件信息对应的可执行文件。这样,任务描述文件中的指定可执行文件信息就覆盖了第一镜像文件中的指定可执行文件信息。
97.因此,在提交待执行任务job1的任务描述文件时,如果允许用户在任务描述文件中任意指定可执行文件,则无法保证在执行待执行任务job1时,是否运行了安全的可执行文件。因此,为了避免执行恶意的待执行任务,本实施例不允许用户在任务描述文件中指定可执行文件,而使用经过了安全性检测的第一镜像文件中的指定可执行文件信息。
98.对白名单以及对任务描述文件中指定可执行文件信息这两方面的检测,能够确保待执行任务job1的安全性,避免执行恶意任务,并且可以更好地对接k8s的原有处理机制,不需要对k8s的原有处理机制进行复杂的修改,具有更强的适应性。
99.然后,在步骤s230中,也就是在确定第一标识在白名单中,且任务描述文件中不存在指定可执行文件信息的情况下,容器管理平台可以基于利用任务描述文件而创建的容器
组,以及第一镜像文件中包含的指定可执行文件信息,执行待执行任务job1。
100.在任务描述文件中不存在指定可执行文件信息的情况下,在容器组中运行第一镜像文件时,第一镜像文件中的指定可执行文件信息对应的指定可执行文件会被运行,该指定可执行文件经过了安全性检测,是安全的。
101.在本步骤中,容器管理平台可以按照现有的方式,基于任务描述文件来执行待执行任务job1。例如,容器管理平台可以基于任务描述文件生成容器组描述文件,基于利用容器组描述文件而创建的容器组,以及第一镜像文件中包含的指定可执行文件信息,执行待执行任务job1。具体的,可以在该容器组中运行第一镜像文件中包含的指定可执行文件信息,以便运行预定的计算任务等,以实现对待执行任务job1的执行。
102.其中,容器组描述文件是用于创建容器组并指示容器组运行相应任务的描述文件。容器组描述文件中可以包含第一镜像文件d1的第一标识、待执行任务的任务名称、任务类型、指定可执行文件信息及其参数信息、单容器组或多容器组等信息,其任务类型kind字段可以是pod。容器管理平台可以将任务描述文件中的内容,对应地填充至包含预定格式的容器组描述文件中,进而生成该容器组描述文件。
103.容器组描述文件是基于任务描述文件生成的。当任务描述文件中不存在指定可执行文件信息时,基于任务描述文件生成的容器组描述文件中也可以不存在指定可执行文件信息。
104.在另一种实施方式中,容器组描述文件中也可以存在指定可执行文件信息,而该指定可执行文件信息是第一镜像文件中的指定可执行文件信息,是从第一镜像文件中获取的。这样即保证了容器组中指定可执行文件信息的安全性。
105.利用容器组描述文件创建容器组的过程,可以在容器管理平台自身进行,也可以在其他的主机(例如节点设备)中进行。
106.因此,容器管理平台可以直接利用容器组描述文件创建容器,基于创建的容器组以及第一镜像文件中包含的指定可执行文件信息,运行待执行任务job1。容器管理平台也可以将该容器组描述文件发送至指定的节点设备。节点设备在接收到容器组描述文件时,基于该容器组描述文件创建容器,并利用该容器组以及第一镜像文件中包含的指定可执行文件信息,执行待执行任务job1。
107.不管是容器管理平台,还是节点设备,都可以创建容器组。不妨将创建容器组的设备称为容器设备,下面以容器设备为例,说明待执行任务job1的具体执行过程。
108.在容器组中执行待执行任务job1时,可以将第一镜像文件调用到对应的容器中。容器设备可以基于第一镜像文件的第一标识从用于存储镜像文件的存储平台中获取第一镜像文件。如果第一镜像文件预先配置在容器设备的指定空间中,则容器设备可以直接从指定空间中将第一镜像文件调用到容器中进行运行。
109.第一镜像文件中包括可执行文件字段,该可执行文件字段的字段值包括指定可执行文件在第一镜像文件中的存储路径。容器设备可以读取该存储路径,基于该存储路径,从第一镜像文件中获取指定可执行文件,并运行该指定可执行文件。当容器组描述文件中包含指定可执行文件信息时,容器设备可以读取容器组描述文件中的指定可执行文件信息(包含存储路径),基于该存储路径,从第一镜像文件中获取指定可执行文件,并运行该指定可执行文件。
110.任务描述文件中可以包括指定可执行文件的参数信息。只要确保指定可执行文件是安全的,不管是通过任务描述文件向指定可执行文件提供参数,还是通过第一镜像文件中的元信息提供该参数,指定可执行文件的运行都是安全的。
111.因此,容器设备在运行指定可执行文件时,可以利用任务描述文件中的指定可执行文件的输入参数,也可以从第一镜像文件中获取该输入参数。例如,可以从args字段中获取指定可执行文件的输入参数。利用该输入参数,运行指定可执行文件。
112.例如,在基于任务描述文件生成容器组描述文件时,当任务描述文件中包含指定可执行文件的输入参数时,可以将该输入参数填充值容器组描述文件中;当任务描述文件中不包含指定可执行文件的输入参数时,则容器组描述文件中的该输入参数字段(args字段)可以设置为空。容器设备在运行指定可执行文件时,可以从容器组描述文件中读取输入参数,也可以从第一描述文件中读取输入参数。
113.下面以联邦学习场景为例,在上述说明内容的基础上,对本说明书的实施例进行说明。容器管理平台还可以用于向服务器和多个(两个或两个以上)业务方设备部署待执行任务job1。服务器和多个业务方设备共同执行待执行任务job1,该待执行任务job1可以是共同训练业务预测模型。该业务预测模型可以用于对输入的对象特征数据进行分类,例如可以对用户进行风险分类,对图像进行有无异常的分类等。业务方设备中包括对象特征数据和对应的标签。例如,业务方设备中包含用户的特征数据以及用户是否为高风险用户的标签,或者业务方设备包含图像以及其中是否存在异常的标签。业务方设备的业务数据均是隐私数据,不能明文输出。
114.在联合训练业务预测模型时,服务器所执行的操作,与业务方设备所执行的操作是不同的。业务方设备可以利用自身的业务数据训练业务预测模型,得到用于更新模型参数的梯度信息,并将该梯度信息发送至服务器。服务器可以接收到多个业务方设备发送的梯度信息,对多个梯度信息进行聚合,得到聚合梯度信息,将聚合梯度信息发送至业务方设备。业务方设备利用聚合梯度信息对业务预测模型的模型参数进行更新,直至模型训练过程收敛。可见,在执行联合训练业务预测模型这个待执行任务job1时,服务器和业务方设备需要进行不同的操作。各方的训练过程均可以在容器中进行。
115.容器管理平台在接收到待执行任务job1的任务描述文件时,可以判断其携带的第一标识是否在白名单中,如果是,则检测该任务描述文件中是否存在指定可执行文件信息,如果不存在,则可以执行以下步骤1至3。
116.步骤1,基于该任务描述文件,生成针对服务器的第一容器组描述文件,其中包含针对服务器的配置信息。
117.该任务描述文件可以包含参与联合训练任务的服务器和多个业务方设备。在生成第一容器组描述文件时,可以基于该任务描述文件确定在该联合训练任务中与该服务器进行交互的交互设备,基于该交互设备,生成第一容器组描述文件,使得第一容器组描述文件中携带交互设备信息。
118.上述服务器的配置信息可以包括针对服务器的镜像文件标识以及其他信息,针对服务器的镜像文件可以是第一镜像文件中的部分文件。第一容器组描述文件还可以包含重启字段。该重启字段用于指示当满足重新创建并运行容器的条件时,执行重新创建并重启容器的操作。第一容器组描述文件中的重启字段可以设置为不重启,这样,当服务器遇到故
障或者训练完成时,都不必重新执行联合训练任务。
119.步骤2,基于该任务描述文件,分别生成针对多个业务方设备的第二容器组描述文件,其中分别包含针对对应的业务方设备的配置信息。
120.针对任意一个业务方设备,在生成第二容器组描述文件时,可以基于上述任务描述文件,确定在联合训练任务中与该业务方设备进行交互的交互设备,基于该交互设备,生成第二容器组描述文件,使得第二容器组描述文件携带该交互设备信息。
121.该业务方设备的配置信息可以包括针对业务方设备的镜像文件标识以及其他信息,针对业务方设备的镜像文件可以是第一镜像文件中的部分文件。第二容器组描述文件中可以包含重启字段,该重启字段可以设置为重启。这样,当业务方设备遇到故障或其他影响任务执行的情况时,可以重新开始执行联合训练任务。
122.步骤3,将生成的多个容器组描述文件,分别发送至对应的服务器和业务方设备,也就是,将第一容器组描述文件发送至服务器,将多个第二容器组描述文件分别发送至对应的业务方设备。服务器和业务方设备可以分别接收到容器管理平台发送的容器组描述文件,并利用各自的容器组描述文件创建容器组,基于各自创建的容器组和第一镜像文件包含的指定可执行文件信息,执行待执行任务job1。
123.在本实施例中,容器管理平台可以在确定任务描述文件以及第一镜像文件符合要求的情况下,针对服务器和业务方设备生成不同的容器组描述文件,进而使得服务器和业务方设备能够利用容器实现对业务预测模型的联合训练。
124.在本说明书的另一实施例中,容器管理平台可以包括准入层和管理层。图4为实施例提供的基于容器的任务执行方法的另一种流程示意图。
125.准入层410,可以接收提交的待执行任务job1的任务描述文件,其中包括第一镜像文件的第一标识;当确定第一标识在白名单中时,检测任务描述文件中是否存在指定可执行文件信息;如果不存在,则将该任务描述文件发送至管理层420。其中,第一标识是在确定第一镜像文件包含的指定可执行文件信息安全时被添加至白名单的。
126.管理层420,接收准入层410发送的任务描述文件,基于利用任务描述文件而创建的容器组,以及第一镜像文件中包含的指定可执行文件信息,执行待执行任务job1。
127.具体的,准入层410,可以接收根据用户的输入操作得到的待执行任务job1的任务描述文件;还可以,在当确定第一标识不在白名单中时,拒绝执行待执行任务job1。
128.准入层410可以检测任务描述文件中的可执行文件字段是否为未设置状态,如果是,则确定任务描述文件中不存在指定可执行文件信息。当任务描述文件中存在指定可执行文件信息时,准入层410可以拒绝执行待执行任务job1。
129.准入层410可以在接收提交的待执行任务job1的任务描述文件之前,接收提交的第一镜像文件,对第一镜像文件中的指定可执行文件信息进行安全性检测;当安全性检测通过时,将第一镜像文件的第一标识添加至白名单中。在一种实施方式中,上述步骤也可以由管理层420执行。
130.管理层420可以基于任务描述文件,生成容器组描述文件。然后,管理层420可以直接利用容器组描述文件创建容器组,利用该容器组以及第一镜像文件中包含的指定可执行文件信息,运行待执行任务job1。
131.或者,管理层420可以将容器组描述文件发送至指定的节点设备,以使节点设备利
用容器组描述文件创建容器组,并利用所述容器组以及第一镜像文件中包含的指定可执行文件信息,执行待执行任务job1。
132.又或者,在联邦学习场景中,管理层420可以基于任务描述文件,生成针对服务器的第一容器组描述文件,分别生成针对多个业务方设备的第二容器组描述文件,将生成的多个容器组描述文件,分别发送至对应的服务器和业务方设备,以使得服务器和业务方设备利用各自的容器组描述文件创建容器,并基于各自创建的容器组和第一镜像文件包含的指定可执行文件信息,执行待执行任务job1。其中,第一容器组描述文件包含针对服务器的配置信息,多个第二容器组描述文件中分别包含针对对应的业务方设备的配置信息。
133.这里还要说明的是,在本说明书的实施例中,为了有效地阻断恶意任务,只要保证第一标识在白名单中,并且在基于利用任务描述文件而创建的容器组中执行待执行任务job1时,利用的是第一镜像文件中包含的指定可执行文件信息即可。在具体实施时,可以基于上述处理流程,对k8s的原有处理机制进行修改,使得每次执行待执行任务时,都是基于镜像文件中经过审核的指定可执行文件信息,运行安全的指定可执行文件,保证执行的任务是安全的。例如,在接收到待执行任务的任务描述文件,且确定第一标识在白名单中时,获取第一镜像文件,利用任务描述文件以及第一镜像文件中的指定可执行文件生成容器组描述文件,使得容器组描述文件中的指定可执行文件信息是第一镜像文件中的指定可执行文件信息,利用该容器组描述文件创建容器组,并基于该容器组运行第一镜像文件中的指定可执行文件,使得待执行任务得以执行。以上实施方式并不是唯一的,在实际应用中还可以通过其他实施方式实施上述实施例。
134.本说明书中,第一镜像文件、第一标识、第一容器组描述文件中的“第一”,以及文中的“第二”,仅仅是为了区分和描述方便,而不具有任何限定意义。
135.上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
136.图5为实施例提供的基于容器的任务执行装置的一种示意性框图。该装置500可以部署在执行设备中,执行设备可以包括容器管理平台和/或节点设备等。该装置实施例与图2所示方法实施例相对应。该装置500包括:
137.接收模块510,配置为,接收提交的待执行任务的任务描述文件,其中包括第一镜像文件的第一标识;
138.执行模块530,配置为,当确定第一标识在白名单中时,利用所述任务描述文件创建容器组,并基于所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务;其中,第一标识是在确定第一镜像文件包含的指定可执行文件信息安全时被添加至白名单的。
139.在一种实施方式中,所述接收模块510具体配置为:
140.接收根据用户的输入操作得到的待执行任务的任务描述文件。
141.在一种实施方式中,装置500还包括拒绝模块(图中未示出),配置为:
142.当确定所述第一标识不在所述白名单中时,拒绝执行所述待执行任务。
143.在一种实施方式中,在执行模块530之前还可以包括检测模块520。该检测模块520配置为,检测所述任务描述文件中是否存在指定可执行文件信息;如果不存在,则执行所述执行模块530。
144.在一种实施方式中,装置500还包括添加模块(图中未示出),配置为:
145.在接收提交的待执行任务的任务描述文件之前,接收提交的所述第一镜像文件;
146.对所述第一镜像文件中的指定可执行文件信息进行安全性检测;
147.当安全性检测通过时,将第一标识添加至白名单中。
148.在一种实施方式中,所述检测模块520具体配置为:
149.检测所述任务描述文件中的可执行文件字段是否为未设置状态,如果是,则确定所述任务描述文件中不存在指定可执行文件信息。
150.在一种实施方式中,所述未设置状态包括:字段值为空值,或字段值为标识该字段值不可用的预设值。
151.在一种实施方式中,装置500还包括不执行模块(图中未示出),配置为:
152.当所述任务描述文件中存在指定可执行文件信息时,拒绝执行所述待执行任务。
153.在一种实施方式中,装置500可以部署在容器管理平台中。
154.在一种实施方式中,所述执行模块530包括:
155.生成子模块(图中未示出),配置为基于所述任务描述文件,生成容器组描述文件;
156.执行子模块(图中未示出),配置为基于利用所述容器组描述文件而创建的容器组,以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
157.在一种实施方式中,所述执行子模块具体配置为:
158.利用所述容器组描述文件创建容器组,基于所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
159.在一种实施方式中,所述执行子模块具体配置为:
160.将所述容器组描述文件发送至指定的节点设备,以使所述节点设备利用所述容器组描述文件创建容器组,并利用所述容器组以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
161.在一种实施方式中,所述容器管理平台还用于向服务器和多个业务方设备部署待执行任务;所述执行模块530包括:
162.第一生成模块(图中未示出),配置为,基于所述任务描述文件,生成针对所述服务器的第一容器组描述文件,其中包含针对所述服务器的配置信息;
163.第二生成模块(图中未示出),配置为,基于所述任务描述文件,分别生成针对多个业务方设备的第二容器组描述文件,其中分别包含针对对应的业务方设备的配置信息;
164.发送模块(图中未示出),配置为,将生成的多个容器组描述文件,分别发送至对应的服务器和业务方设备,以使得所述服务器和业务方设备利用各自的容器组描述文件创建容器组,并基于各自创建的容器组和第一镜像文件包含的指定可执行文件信息,执行所述待执行任务。
165.图6为实施例提供的容器管理平台的一种示意性框图。该容器管理平台600包括准入层610和管理层620。
166.准入层610,接收提交的待执行任务的任务描述文件,其中包括第一镜像文件的第
一标识;当确定所述第一标识在白名单中时,检测所述任务描述文件中是否存在指定可执行文件信息;如果不存在,则将所述任务描述文件发送至所述管理层620;其中,第一标识是在确定第一镜像文件包含的指定可执行文件信息安全时被添加至白名单的。
167.管理层620,接收准入层610发送的任务描述文件,基于利用所述任务描述文件而创建的容器组,以及所述第一镜像文件中包含的指定可执行文件信息,执行所述待执行任务。
168.上述各个装置实施例和设备实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
169.本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1至图4任一项所述的方法。
170.本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图4任一项所述的方法。
171.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
172.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
173.以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1