CN117882054A - 在编排环境中的资源共享 - Google Patents
在编排环境中的资源共享 Download PDFInfo
- Publication number
- CN117882054A CN117882054A CN202280059208.3A CN202280059208A CN117882054A CN 117882054 A CN117882054 A CN 117882054A CN 202280059208 A CN202280059208 A CN 202280059208A CN 117882054 A CN117882054 A CN 117882054A
- Authority
- CN
- China
- Prior art keywords
- orchestration
- node
- cluster
- orchestration unit
- unit
- 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 claims abstract description 47
- 238000004590 computer program Methods 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 11
- 238000009826 distribution Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000219112 Cucumis Species 0.000 description 1
- 235000015510 Cucumis melo subsp melo Nutrition 0.000 description 1
- FJJCIZWZNKZHII-UHFFFAOYSA-N [4,6-bis(cyanoamino)-1,3,5-triazin-2-yl]cyanamide Chemical compound N#CNC1=NC(NC#N)=NC(NC#N)=N1 FJJCIZWZNKZHII-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
用于在包括第一集群(10)和至少一个第二集群(20)的编排环境中进行资源共享的方法和装置,其中每个集群具有编排单元(11、21)用于自动地管理集群(10、20)的至少一个节点(13、14、15、23、24、25)上的容器实例,其被构造用于‑接收用于启动容器实例(C)的询问,所述询问包括所述第一集群(10)的第一编排单元(11)中的提供准则(B),‑确定第一集群(10)的第一节点(13、14、15)的第一利用状态,用于通过第一集群(10)的第一编排单元(11)提供容器实例(C),‑通过在第一编排单元(11)和至少一个第二集群(20)的第二编排单元(21)之间交换负载信息(L)来确定至少一个第二集群(20)的第二节点(23、24、25)的第二利用状态,‑根据提供准则(B)并且根据第一利用状态和第二利用状态通过第一编排单元(11)从第一节点(13、14、15)和第二节点(23、24、25)之一中选择目标节点(23),以及如果所选择的目标节点(23)是第二节点(23、24、25),则通过第二编排单元(21)在目标节点(23)上启动容器实例(C)。
Description
技术领域
本发明涉及一种用于在具有第一集群和至少一个第二集群的编排环境中进行资源共享的方法,其中每个集群具有至少一个用于执行至少一个容器实例的节点以及用于在集群的至少一个节点上自动地管理容器实例的编排单元。
背景技术
容器虚拟化是一种其中操作***的多个实例可以彼此隔离地使用来宾计算机的操作***内核的方法。软件容器(在下面简称为容器)因此表示来宾计算机(也称为主机***)上的运行时环境的轻量型虚拟化,并且封装下级主机***的在容器中运行的应用程序。应用程序在这期间借助于容器在诸如工业自动化和过程控制之类的许多领域中、而且对于在运输***或车辆中的应用被实施。
为了能够在主机***上启动容器,需要容器映像,所述容器映像除了应用程序软件本身之外,还包含对于应用程序软件需要的二进制程序和程序库。容器实例在主机***上从容器映像中被创建并且在运行时环境上被执行。在需要时,例如在通过用户增多地调用应用程序时,可以从相同的容器映像中在相同的主机***或另一主机***上产生并且执行其他容器实例。
按传统地,容器实例在主机***上借助于诸如“Docker”之类的运行时环境被运行,所述主机***必要时也被构造为虚拟化硬件资源。为了以高度可用的方式提供容器实例或缩放其负载,借助于诸如“Kubernetes”之类的编排解决方案在多个在组织上或地理上分布的资源上分发容器。为此,中央编排器管理多个设备、机器或其他资源,所述设备、机器或其他资源通常被称为节点,并且在所述设备、机器或其他资源上,编排前端组件、例如“Kubelet”被运行并且收到布置在中央编排器上的编排后端组件的命令并且在容器运行时环境上实施所述命令。
US2021/019194 Al描述一种多云服务平台,所述多云服务平台在多云环境中编排服务网格应用程序的微服务容器。多云服务平台将应用程序划分为多个微服务容器,用控制信息标记每个微服务容器并且执行动作,以便执行微服务容器中的每一个。多云服务平台可以是特定的物理网络的一部分,或者也可以被实施为云网络中的SW套件。微服务由编排器控制,并且通过节点中的容器被执行。编排器的遥测中心(Telemetry Hub)检测其资源。多云服务平台的管理层包括中央资源计数器,所述中央资源计数器采集用于执行应用程序和微服务容器的所有计算资源。资源计数器尤其是从遥测中心获得计数器值,所述遥测中心从物理主机或执行微服务容器的虚拟机采集该信息。
US2021/014113 A1描述一种用于在边缘云计算环境中的编排器的网络中以编排方式执行服务的设备和方法。该设备包括所调派的(abgestellte)编排器,所述编排器选择资源并且借助于所选择的资源对服务的执行进行编排;以及包括编排管理器,所述编排管理器基于来自至编排器的接口的信息管理各个编排器。
在由编排器和节点组成的集群中,通常未使用的硬件资源是可用的,所述未使用的硬件资源被维持,以便必要时能够截获例如由于容器实例的升尺度而引起的应用程序的负载峰值。然而,在大多数情况下,多余的和未使用的资源被维持在这些集群上,而实际上不询问这些资源。由于节点对编排器的1:1配给而不可能的是:其他编排器可以一起使用另一集群的这些可能临时可用的资源。
发明内容
因此,本发明的任务的是,一方面能够跨多个编排器分发可用的资源,并且同时能够使用所述可用的资源,并且在此确保直接分配给编排器的资源在需要情况下可供实际的核心任务使用。
该任务通过在独立权利要求中描述的措施来解决。本发明的有利改进方式在从属权利要求中示出。
根据第一方面,本发明涉及一种用于在具有第一集群和至少一个第二集群的编排环境中进行资源共享的方法,其中每个集群具有至少一个用于执行至少一个容器实例的节点以及用于自动地管理集群的至少一个节点上的容器实例的编排单元,所述方法包括:
-接收用于启动容器实例的询问,所述询问包括第一集群的第一编排单元中的提供准则,
-确定第一集群的第一节点的第一利用状态,用于通过第一集群的第一编排单元提供容器实例,
-通过在第一编排单元和至少一个第二集群的第二编排单元之间交换负载信息来确定至少一个第二集群的第二节点的第二利用状态,以及
-根据提供准则并且根据第一利用状态和第二利用状态通过第一编排单元从第一和第二节点之一中选择目标节点,以及
-如果所选择的目标节点是第二节点,则通过第二编排单元在目标节点上启动容器实例。
通过提供准则可以在分发过程中考虑要启动的容器实例的特质和要求。因为提供准则分配给用于启动容器实例的询问,所以可以定义和实施特定于容器实例的提供准则。通过在第一编排单元和至少一个第二集群的至少一个其他第二编排单元之间交换负载信息,在第一和第二编排单元之间的高效且快速的通信用于协调负载比例是可能的。编排单元中的每一个均知道集群的由编排单元管理的节点的利用或者可以利用现有的流程来确定该利用。不需要附加的、例如上级协调单元或编排单元来控制资源分发。因此,该解决方案在用于确定参与的集群的利用状态的硬件单元方面也是高效的。从而可以跨多个编排单元管理资源,并且同时可以履行在集群上运行的相应应用程序的实际核心任务。
如果例如在制造设施的生产线或其他物联网(IoT)环境内有足够的计算能力可用,并且各个编排单元可以彼此间瓜分资源并且动态地适配资源,则跨多个集群的节点的共享式使用是特别有利的。该方法还使得能够快速、逐级地使用新的IoT或运行时环境,这可以随着编排单元的小自身设置快速地启动设施,而不必等到所有节点可用。第一集群也可能不包含节点,使得第一编排单元仅仅在第二节点上启动容器实例。如果在第二节点上不存在资源,则容器实例不被执行。
在一种有利的实施方式中,在提供准则中预先给定特定的节点或节点类型和/或所述节点的特性,可以在所述节点上启动容器实例。
由此可以确保执行例如必须在特定的设备上运行的应用程序的容器实例也仅在该特定的设备上运行并且因此不在其他第一节点上或在第二节点上被启动。如果在提供准则中说明了设备类型,则容器实例的执行被限制到与所说明的设备类型对应的第一或第二节点上。
在一种有利的实施方式中,在提供准则中预先给定:所述容器实例是仅仅可以在第一节点之一上还是也可以在第二节点之一上被启动。
由此可以将例如安全相关的应用程序或对应的容器实例的启动限制到第一节点上,并且从而满足对应用程序的安全要求。
在一种有利的实施方式中,容器实例根据第一和第二利用状态要么在第一节点之一上要么在第二节点之一上被启动,所述容器实例的执行不限于特定的节点。
从而也可以在第二集群中的资源、也即第二节点上执行其执行不通过提供准则限制于第一节点的所有容器实例。这使得能够灵活地适配和最大化可在不同的集群上分发的容器实例的数量,使得广泛地分发到第一节点和所有可用的第二节点上是可能的。
在一种有利的实施方式中,在第一集群或第二集群内,用于启动容器实例的资源的剩余容量由自身集群的编排单元维持,所述剩余容量不从其他集群释放用于启动容器实例。
这使得能够立即在自身的集群的节点上启动关键的、与设备有关的容器实例,而不必首先等待第二集群之一中的资源的提供。
在一种有利的实施方式中,在由第二节点执行容器实例时,如果第二利用状态上升到预先给定的最大值以上,则通过第二编排单元通知第一编排单元,并且在第二节点上结束容器实例的执行。
容器实例是在第一集群中已经被询问的容器实例,对于所述容器示例在第二集群中选择目标节点,并且由第二编排单元在第二节点之一上已经被启动。在第二集群内的利用状态可能升高到最大值以上,其方式是例如各个容器实例由更高的询问量更强烈地被需要,并且所述容器实例本身需要更多的资源、尤其是节点上的计算能力和/或存储空间,或者通过调度程序借助于自动缩放准则自动地重新启动其他容器实例。从而也可以在执行容器实例期间改变资源共享,并且可以释放第二集群上的资源。
根据本发明,经由编排接口在第一编排单元和第二编排单元之间交换负载信息。
这使得能够在第一和第二编排单元之间直接地进行通信。在借助于编排软件“Kubernetes”进行编排时,可以例如通过API服务器的接口构造编排接口,所述API服务器也接受编排信息和本地用户的询问。
在一种有利的实施方式中,仅仅在第一编排单元和第二编排单元的成功互相认证之后,经由编排接***换负载信息。
由此确保,仅仅可信第二编排单元被使用来进行资源共享。
在一种有利的实施方式中,以规定的时间间隔或者基于资源占用事件在第一和第二编排单元之间交换负载信息。
这使得能够连续或高效地更新第一编排单元中的第二利用状态。
在一种有利的实施方式中,第一编排单元根据第二编排单元获得关于容器实例的配置或在第二节点上的资源占用的不同权限。
从而,可以由不同的第二集群或通过其第二编排单元规定用于通过第一编排单元的资源占用的不同条件。例如,可以通过在认证之后通过第二编排单元对第一编排单元进行授权来授予这样的权限。
在一种有利的实施方式中,负载信息从第二编排单元被传送给中央利用单元,并且负载信息由第一编排单元在中央利用单元处查询。
这显著地减少通信耗费,因为第一编排单元不必直接在每个第二编排单元处查询负载信息,而是通过在中央利用单元处的单个查询来实现这一点。该相同内容适用于第二编排单元的通信,所述第二编排单元仅必须将其负载信息传送给中央利用单元,而不必响应不同的第一编排单元的每个询问。
在一种有利的实施方式中,在发布-订阅服务的情况下,第一编排单元被注册为订阅者,并且至少一个第二编排单元被注册为发布者,并且第一编排单元通过发布-订阅服务自动地接收第二节点的负载信息。
在此,发布-订阅服务可以集中地或分散地被管理。因此,自动地执行通信,并且可以例如通过储存在第一和第二编排单元上的通信准则来设定通信模态。
在一种有利的实施方式中,第一编排单元将用于启动容器实例的询问传送给所选择的目标节点的编排单元。
本发明的第二方面涉及一种用于在包括第一集群和至少一个第二集群的编排环境中进行资源共享的装置,其中每个集群具有至少一个用于执行至少一个容器实例的节点以及用于自动地管理集群的至少一个节点上的容器实例的编排单元,所述装置被构造用于:
-接收用于启动容器实例的询问,所述询问包括第一集群的第一编排单元中的提供准则,
-确定第一集群的第一节点的第一利用状态,用于通过第一集群的第一编排单元提供容器实例,
-通过在第一编排单元和至少一个第二集群的第二编排单元之间交换负载信息来确定至少一个第二集群的第二节点的第二利用状态,以及
-根据提供准则且根据第一利用状态和第二利用状态通过第一编排单元从第一和第二节点之一中选择目标节点,以及
-如果所选择的目标节点是第二节点,则通过第二编排单元在目标节点上启动容器实例。
由此装置以及从而编排架构内的资源可以跨多个编排单元被共享。如果在第一节点上例如执行维护,则资源可以临时地被转移到其他第二集群的第二节点。
在此,该装置被配置为使得在该方法中所描述的所有特征可以由该装置执行。
本发明的第三方面涉及一种计算机程序产品,所述计算机程序产品包括能够直接被加载到数字计算机的存储器中的非易失性计算机可读介质,包括程序代码部分,所述程序代码部分在由数字计算机执行所述程序代码部分时促使所述数字计算机执行该方法的步骤。
只要在下面的描述中未另外说明,术语“接收”、“确定”、“选择”、“启动”等优选地涉及行动和/或过程和/或处理步骤,其改变和/或产生数据和/或将数据转变为其他数据,其中数据可以尤其是作为物理参量来表示或者存在,例如作为电脉冲。装置以及其中尤其是节点、编排单元等的物理以及虚拟实现可以包括一个或多个处理器。
计算机程序产品、诸如计算机程序构件可以例如作为存储介质、诸如存储卡、USB棒、CD-ROM、DVD或者以来自网络中的服务器的可下载的文件的形式被提供或供应。这可以例如在无线通信网络中通过将对应的文件传输到计算机程序产品或计算机程序构件上来进行。
附图说明
根据本发明的方法和根据本发明的装置的实施例在附图中示例性地示出并且根据以下描述更详细地予以阐述。其中:
图1以示意图示出根据本发明的装置的第一实施例;
图2以流程图的形式示出根据本发明的方法的第一实施例;
图3以示意图示出具有中央利用单元的根据本发明的装置的第二实施例;和
图4以流程图的形式示出具有中央利用单元的根据本发明的方法的第二实施例。
在所有图中,彼此对应的部分配备有相同的附图标记。
具体实施方式
图1示出具有第一集群10、第二集群20的编排环境。编排环境可以包括其他第二集群,参见集群30。第一集群10和所有第二集群20、30的结构以及在第一集群10和所有第二集群20、30之间的方法步骤是类似的,使得在进一步的描述中仅仅描述第一集群20和第二集群20之间的结构和方法步骤。
第一集群10和第二集群20包括至少一个用于执行至少一个容器实例的节点(13、14、15、23、24、25)以及用于自动地管理集群(10、20)的至少一个节点(13、14、15、23、24、25)上的容器实例的编排单元(11、21)。节点可以是设备,例如控制设备或可以是机器,所述机器也可以构造为虚拟的并且包括至少一个处理器。
编排环境可以例如是IoT环境,其中不同的编排单元、在这里为第一编排单元11和第二编排单元21可以控制并且因此代表独立的生产过程,并且可以由相应的生产负责方分别独立地被适配于产品。于是在这样的环境中,通过编排单元可以例如将非特定于设备的容器实例转移到资源、即其他第二集群的第二节点上,可以在自管理的节点、即第一集群中的第一节点以及必要时专用硬件、例如用于工业机器人的控制组件上执行更高优先级的容器实例。
为了能够管理资源、即第一或第二节点13、14、15、23、24、25或其计算和存储单元用于跨多个编排单元11、21执行容器实例,并且同时能够履行(wahrgenehmen)在集群上运行的相应应用程序的实际核心任务,在第一编排单元11和第二编排单元21之间构造编排接口16,第一编排单元11和第二编排单元21经由所述编排接***换关于第二集群20中的第二节点23、24、25的负载信息L。在此假设,第一和第二编排单元11、21互相信任并且每个编排单元11、21信任其所管理的节点。该装置可以是基于云的***,其中第一和第二节点至少部分地布置在计算机云中,以及可以是可以是所谓的“本地部署(On-Premise)”***,其中第一和第二节点至少部分地“现场(vor Ort)”布置,例如布置在工业设施中。后者也称被为边缘云。
各个容器实例向特定节点或节点类型的分配由提供准则B预先给定,所述提供准则B在用于启动容器实例的询问时被递交给第一编排单元11。必须在特定的节点或特定的节点类型上启动和执行的容器实例例如是需要连接到特定硬件、例如可编程逻辑控制单元(简称PLC)上的容器实例。从而通过提供准则B规定:容器实例是否可以在装置、也即集群联合体内的任意第一或第二节点13、14、15、23、24、25上被执行,该容器实例是否局限于具有特定特性、例如与生产网络的特定部分的连接的设备类型或设备,以及所定义的终端设备是否被设置用于容器实例。在提供准则B中预先给定:容器实例C是可以仅仅在第一节点13、14、15之一上被启动还是也可以在第二节点23、24、25之一上被启动。
根据图2更详细地描述图1中所示的编排环境中的方法步骤。
在第一方法步骤S1中,第一集群10的第一编排单元11接收用于启动容器实例C的询问REQ。该询问不一定必须从外部、例如通过部署信息由用户接收。也可能的是,例如当识别到过载情形并且集群中的自动缩放机制发起并且因此询问新的容器实例时,在第一集群内产生用于启动实例的询问。
随后在方法步骤S2中,第一集群10的第一编排单元11确定第一集群10的第一节点13、14、15的第一利用状态。此外参见S3,第一编排单元11通过在第一编排单元11与至少一个第二集群20的第二编排单元21之间交换负载信息L来确定第二集群的第二节点23、24、25的第二利用状态。为此,例如从第一编排单元11经由编排接口16(参见图1)将请求消息REQL传送给第二编排单元21。该第二编排单元21将所询问的负载信息L与响应消息RSP L一起发送回给第一编排单元11。如果存在多个第二集群,则为每个第二集群确定第二利用状态。在方法步骤S4中,第一编排单元11根据通过提供准则进行的预先给定、根据第一利用状态并且根据第二利用状态从第一和第二节点13、14、15、23、24、25之一中选择目标节点。
然后在目标节点上启动容器实例C。如果已经选择了第二目标节点23作为目标节点,则第一编排单元11指示第二编排单元21执行容器实例C。紧接着第二容器实例21启动,参见S5。
例如,通过给予容器实例或所属的容器镜像的对应标签,根据权限准则B将容器实例分派给目标节点。
第一编排单元11根据第二编排单元21获得关于在第二节点23上容器实例的配置或资源占用的不同权限。
在此,方法步骤S2、S3、S4的执行的顺序可以不同。例如,一旦提供准则B已经被递交给第一编排单元11,第一编排单元11就检验所述提供准则B。第一编排单元11检验在其自身的节点、即第一节点13、14、15上是否有足够的资源可供使用,并且选择对应的第一节点。如果容器实例C的执行不通过其提供准则B而限制于特定的节点,则容器实例C根据第一和第二利用状态要么在第一节点13、14、15之一上要么在第二节点23、24、25之一上被启动。
在第一集群10内,可以可选地规定,资源、尤其是处理器性能和存储容量的剩余容量对于特定于设备的容器实例必须总是被准备好,或者这些特定于设备的容器实例应该相对于非特定于设备的容器实例被优选。以相同的方式,第二编排单元21可以保留这样的剩余容量,并且将其包括到给第一编排单元11的负载信息L中。
如果不通过权限准则B将容器实例C的执行限制于第一节点13、14、15,则所述容器实例C根据各个第一和第二节点的所确定的利用状态在第一节点13、14、15之一上或在第二节点之一上被启动。可以从负载信息中确定节点13、14、15、23、24、25的利用状态,所述负载信息通过编排单元11、21内的调度程序周期性地被确定。
在提供准则B中可以规定,当在自身的集群中、即在第一集群10中资源短缺时,另一集群的容器实例、例如在第二集群20中最初已经询问的容器实例不再在第一集群10中的第一节点上得到执行或者其在第一集群10中的执行被停止。由需要节点的编排单元、在这里第一编排单元11相应地将此报告给管理节点的编排单元、在这里第二编排单元21。
相应地,如果第二利用状态上升到预先给定的最大值以上,则在通过第二节点23执行容器实例C时,通过第二编排单元21通知第一编排单元11。容器实例C在第二节点23上的执行将被结束。为了确保容器实例C以及从而由此提供的应用程序的不间断执行,第一编排单元11在获得该负载信息之后在另一节点上提供新的容器实例C,并且将这一点告知给第二编排单元21。仅根据该告知,第二编排单元21才结束容器实例C在第二节点23上的执行。如果容器实例C不及时从第一编排单元11中被转移,则第二编排单元21与此无关地停止。
为了防止或至少使得难以由不允许的或受操纵的编排单元11、21查询负载信息L,仅仅在第一编排单元11和第二编排单元21的成功互相认证之后经由编排接口16交换负载信息。第一和第二编排单元11、21例如借助于客户端证书或JavaScript对象表示法中的网络令牌(也称为JSON网络令牌)认证。由此对第二或第一集群20、10的通信网络的访问可以被限制于已知的编排单元11或21。
负载信息L以规定的时间间隔或者基于资源占用事件在第一和第二编排单元11、21之间被交换。在一种实施方式中,在发布-订阅服务的情况下,第一编排单元11被注册为订阅者,并且至少一个第二编排单元21被注册为发布者,并且第一编排单元11自动地通过发布-订阅服务接收第二节点23、24、25的负载信息L。
替代于构造为在第一和第二编排单元11、21之间的对等通信的编排接口16,可以经由中央资源管理单元在第一和第二编排单元11、21之间交换负载信息L。对应的装置在图3中示出,方法步骤在图4中示出。
根据图1的装置1,装置2包括具有第一编排单元110和第一节点130、140、150的第一集群100以及具有第二编排单元210和第二节点230、240、250的第二集群200。附加地,装置2包括中央利用单元400,所述中央利用单元经由编排接口160从第二编排单元210接收负载信息L并且经由编排接口160将负载信息L提供给第一编排单元110。为了能够在目标节点(在这里例如第二节点230)上启动容器实例C,由第二编排单元210的提供单元410(也称为镜像注册表(Image Registry))提供对应的容器镜像CI。在通过利用单元400提供负载信息L时,编排接口160被划分为多个子区段。除了在第一编排单元110和利用单元400之间以及在第二编排单元210和利用单元400之间的子区段之外,另一子区段直接存在于第一和第二编排单元110、210之间,以便例如交换用于控制和管理在第二节点230、240、250上执行的容器C的信息。
用于接收询问S1并且确定第一利用状态S2的方法步骤(参见图4)相应地与具有直接对等编排接口16的场景相比保持不变。为了确定第二利用状态,参见S3,现在由第一编排单元110在中央利用单元400处查询负载信息L。此外,在方法步骤S6中示出通过提供单元410提供容器镜像。
为了提供资源或负载信息L,提出两种不同的变型方案:分散式提供变型方案,参见图1和图2,其中第二编排单元11以对等方法或者例如借助于适当的分散式发布-订阅服务、诸如数据分发服务、即Data Distribution service(数据分发服务,DDS)向其他参与的第一编排单元21告知:该第二编排单元11针对所询问的容器实例C在提供愿望的情况下拥有哪些资源。在此情况下,可用的资源或负载信息L可以由参与的编排单元11、21要么周期性地被查询,要么周期性地或由于诸如容器实例C的执行的期望停止、容器实例C的启动、容器实例的升尺度和降尺度之类的事件由提供资源的第二编排单元主动地被传达。该行为可以在储存在第二和/或第一编排单元11、21上的通信准则中被设定。
此外可能的是,在该方法的情况下,第二编排单元对不同的第一编排单元允许关于各个容器实例C的配置的不同权限并且准许不同的资源占用。提供资源的第二编排单元可以例如不为有特权的容器实例分派资源,或根据不同容器实例的处理器和主存储器要求或根据容器的签名例如用于确定关于来源的可信度,以分层次的方式为第一编排单元11提供不同的资源。作为其他标准,此外可以一起包括第一编排单元11本身,使得可以动态地向不同的第一编排单元提供不同的资源。
在另一变型方案中可能的是,为了提供其他第二集群200的资源,将当前可用的资源或负载信息L录入到中央提供单元400中。提供单元400可以独立地查询第二编排单元200,或者可以借助于集中管理的发布-订阅服务、诸如所谓的消息队列遥测传输(MessageQueuing Telemetry Transport)MQTT被通知。例如周期性地和/或每当资源占用由于容器实例的启动或停止而改变时查询或提供负载信息L。两种方法的组合也是可能的。如果第一编排单元110想要将容器实例转移给第二集群200,则该第一编排单元可以在需要情况下查询各个第二集群200、300的资源可用性。
在这两种变型方案的情况下,进行询问的第一编排单元可以对目标或第二编排单元进行权衡并且从而控制哪个第二编排单元是用于所转移的容器实例的优选执行环境。在此情况下,标准可以是可用的总资源或者例如是第二编排单元的延迟时间。此外,提供资源的第二编排单元还可以提供关于第二节点或处理器架构、质量(QoS)要求、诸如有实时能力的Linux等的位置信息,进行询问的第一编排单元评估所述位置信息。同样可能的是,各个集群互相结算(verrechnen)各个所使用的资源,并且将所述资源一起包括到权衡(Gewichtung)中。
一旦第一编排单元110的调度程序确定了目标集群,所述调度程序就将针对容器实例C的提供愿望(参见TransREQ C)递交给第二编排单元210,参见图4。进行发出的第一编排单元110在此情况下同样确定IP地址并且告知给进行接收的第二编排单元210:可以如何构建覆盖网络。在此情况下存在以下可能性:跨第一和第二编排单元建立网络或者指定目标节点,所转移的容器实例的由第二编排单元210选择的运行时节点(在这里目标节点230)应当与所述目标节点构建网络连接。如何构建网络连接在此情况下由所使用的(覆盖)网络驱动程序确定。例如可能的是,这些在需要时构建IPSEC隧道或构建通过软件设计的网络(SDN)连接。是否应该重新启动其他容器实例C,留由进行发出的第一编排单元110决定。然而,进行接收的第二编排单元210接管运行时监控并且将容器实例C的状态告知回给进行发出的第一编排单元110。
借助于由编排单元管理的负载均衡器进行容器实例的暴露(Exponierung)、即为另一服务或用户提供在容器实例中所提供的服务或应用程序。在此情况下存在以下可能性:进行发出的第一编排单元11、110本身编排负载均衡器并且合并所转移的容器实例C,或者在进行接收的第二编排单元21、210处请求负载均衡器功能性。为此,如在转移容器实例时那样,于是必须借助于覆盖网络驱动程序将其集成到应用网络中。
如果对于容器实例C需要分布式数据存储器或文件目录(也称为卷(Volume)),同样可以由进行发出的第一集群10、100经由网络提供所述分布式数据存储器或文件目录。为此示例将会是暴露的全局文件***、NFS(网络文件服务(Network File Service))共享、WebDAV(基于Web的分布式创作和版本控制(Web-based Distributed Authoring andVersioning))、iSCSI(互联网小型计算机***接口(Internet Small Computer SystemInterface))等。原则上,用于对于卷进行曝光的技术不与单个集群相区别。然而,服务通过网络可能进一步被暴露。在我们的示例中,从而所述服务必须被暴露或可访问,使得进行接收的第二集群的节点也可以访问所述服务。
如果第二编排单元21、210需要用于自身的容器实例的空间,则所述第二编排单元可以向进行发出的第一编排单元11、110告知自身的资源需求。根据所定义的阈值、诸如用于处理器和存储容量的最大值,在此情况下定义:是否应该立即结束容器实例,或者是否应该首先给予进行转移的第一编排单元在另一位置处、例如在自身的集群节点或另一集群上启动实例并且在特定的期限内自身结束实例的机会。第一编排单元11、110可以根据所定义的目标平台的例如由创建者在提供准则B中定义的容器实例C的关键度以及本地资源的利用信息借助于调度准则决定:应该在哪个集群10、20、100、200中启动容器实例,是在本地第一集群10、100上还是转移到第二集群20、200上。
为了能够执行容器实例,假设所有要转移的容器镜像CI被存放在至少一个容器镜像提供单元410中,可以从所有相关节点到达所述容器镜像提供单元410。在一种替代的变型方案中,进行接收的第二编排单元21、210告知回给进行发出的第一编排单元11、110:所述第二编排单元不能获取期望的容器镜像,并且随后从进行发出的第一编排单元11、110得以传输该期望的容器镜像。
在一种扩展的变型方案中,如果进行接收的第二编排单元21、210执行不与储存在第二编排单元21、210中的节点准则相对应的活动,则该进行接收的第二编排单元21、210可以停止第一编排单元11、110的容器实例。例如,可以利用“异常检测(Anomaly Detection)”机制来识别运行时的偏差。如果进行接收的第二编排单元——类似于Pod安全策略(PodSecurity Policy)(参见https://kubernetes.io/docs/concepts/policy/pod-security-policy/)同其自身的提供准则相矛盾,则该进行接收的第二编排单元可以拒绝接受第一编排单元的容器实例。这样的Pod安全策略可以对于进行发出的第二集群20、200以与针对用于启动自身编排用户的容器实例的询问不同的方式、例如增强地来制定。
可设想的是,在准则中定义:仅在第一节点发生故障的情况下,第一编排单元11、21才临时转移到第二集群20、200的第二节点,并且优选地使用自身的第一节点13、14、15、130、140、150。
通过所描述的方法,可以更好地跨多个集群使用资源或节点,并且从而更均匀地充分利用装置的节点。因此,与传统编排环境相比,根据本发明的装置可以总计地更高地被利用,并且因此可以执行更多的容器实例。编排单元可以完全在无自身的节点的情况下被运行,或者直接仅仅编排***关键资源或节点。利用该解决方案创造独立于云提供商的容器即服务(Container as a Service)解决方案。
所有方法步骤都可以通过适合于执行相应的方法步骤的对应的设备来实现。所有可以由具体特征执行的功能都可以是该方法的方法步骤。所描述和/或绘制的所有特征可以在本发明的范围内有利地被相互组合。本发明不局限于所描述的实施例。
Claims (14)
1.一种用于在具有第一集群(10)和至少一个第二集群(20)的编排环境中进行资源共享的方法,其中每个集群(10、20)具有编排单元(11、21)用于自动地管理相应集群(10、20)的至少一个节点(13、14、15、23、24、25)上的容器实例,所述方法包括:
-接收(S1)用于启动所述容器实例(C)的询问,所述询问包括所述第一集群(10)的第一编排单元(11)中的提供准则(B),
-确定(S2)所述第一集群(10)的第一节点(13、14、15)的第一利用状态,用于通过所述第一集群(10)的第一编排单元(21)提供所述容器实例(C),
-通过在所述第一编排单元(11)和至少一个第二集群的第二编排单元(21)之间交换负载信息(L)来确定(S3)所述至少一个第二集群(20)的第二节点(23、24、25)的第二利用状态,以及
-根据所述提供准则(B)并且根据所述第一利用状态和所述第二利用状态通过所述第一编排单元(11)从第一和第二节点(13、14、15、23、24、25)之一中选择(S4)目标节点,以及
-如果所选择的目标节点(23)是第二节点(23、24、25),则通过所述第二编排单元(21)在所述目标节点(23)上启动(S5)所述容器实例(C),其中
经由编排接口(16、160)在所述第一编排单元(11、110)和所述第二编排单元(21、210)之间交换所述负载信息(L)。
2.根据权利要求1所述的方法,其中在所述提供准则中预先给定特定的节点或节点类型和/或所述节点的特性,可以在所述节点上启动所述容器实例(C)。
3.根据前述权利要求中任一项所述的方法,其中在所述提供准则(B)中预先给定:所述容器实例(C)是仅可以在所述第一节点(13、14、15)之一上还是也可以在所述第二节点(23、24、25)之一上被启动。
4.根据前述权利要求中任一项所述的方法,其中其执行不限于特定的节点的容器实例(C)根据第一和第二利用状态要么在所述第一节点(13、14、15)之一上要么在所述第二节点(23、24、25)之一上被启动。
5.根据前述权利要求中任一项所述的方法,其中在所述第一集群(10)或第二集群(20)内,用于启动容器实例的资源的剩余容量由自身集群(10、20)的编排单元(11、21)维持,所述剩余容量不从其他集群释放用于启动容器实例(C)。
6.根据前述权利要求中任一项所述的方法,其中在由所述第二节点执行所述容器实例时,如果所述第二利用状态上升到预先给定的最大值以上,则通过所述第二编排单元(21)通知所述第一编排单元(11),并且在所述第二节点(23、24、25)上结束所述容器实例(C)执行。
7.根据权利要求1所述的方法,其中仅仅在所述第一编排单元(11、110)和所述第二编排单元(21、210)的成功互相认证之后,经由所述编排接口(16、160)交换负载信息。
8.根据前述权利要求中任一项所述的方法,其中以规定的时间间隔或者基于资源占用事件在所述第一编排单元(11)和所述第二编排单元(21)之间交换所述负载信息。
9.根据前述权利要求中任一项所述的方法,其中所述第一编排单元(11)根据所第二编排单元(21)获得关于所述容器实例的配置或在所述第二节点(13、14、15)上的资源占用的不同权限。
10.根据前述权利要求中任一项所述的方法,其中所述负载信息从所述第二编排单元(210)被传送给中央利用单元(400),并且所述负载信息(L)由所述第一编排单元(110)在所述中央利用单元(400)处查询。
11.根据前述权利要求中任一项所述的方法,其中在发布-订阅服务的情况下,所述第一编排单元(11、110)被注册为订阅者,并且所述至少一个第二编排单元(21、210)被注册为发布者,并且所述第一编排单元(11、110)通过发布-订阅服务自动地接收所述第二节点(23、24、25、230、240、250)的负载信息(L)。
12.根据前述权利要求中任一项所述的方法,其中所述第一编排单元(11、110)将用于启动所述容器实例(C)的询问传送给所选择的目标节点(23、230)的编排单元(21、210)。
13.一种用于在包括第一集群(10)和至少一个第二集群(20)的编排环境中进行资源共享的装置,其中每个集群具有编排单元(11、21)用于自动地管理相应集群(10、20)的至少一个节点(13、14、15、23、24、25)上的容器实例,所述装置被构造用于:
-接收用于启动所述容器实例(C)的询问,所述询问包括所述第一集群(10)的第一编排单元(11)中的提供准则(B),
-确定所述第一集群(10)的第一节点(13、14、15)的第一利用状态,用于通过所述第一集群(10)的第一编排单元(11)提供所述容器实例(C),
-通过在所述第一编排单元(11)和至少一个第二集群(20)的第二编排单元(21)之间交换负载信息(L)来确定所述至少一个第二集群(20)的第二节点(23、24、25)的第二利用状态,以及
-根据所述提供准则(B)并且根据所述第一利用状态和所述第二利用状态通过所述第一编排单元(11)从第一节点(13、14、15)和第二节点(23、24、25)之一中选择目标节点(23),以及
-如果所选择的目标节点(23)是第二节点(23、24、25),则通过所述第二编排单元(21)在所述目标节点(23)上启动所述容器实例(C),其中
经由编排接口(16、160)在所述第一编排单元(11、110)和所述第二编排单元(21、210)之间交换所述负载信息(L)。
14.一种计算机程序产品,所述计算机程序产品包括能够直接被加载到数字计算机的存储器中的非易失性计算机可读介质,包括程序代码部分,所述程序代码部分在由数字计算机执行所述程序代码部分时促使所述数字计算机执行根据权利要求1至12中任一项所述的方法的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21193712.3A EP4141664A1 (de) | 2021-08-30 | 2021-08-30 | Ressourcenteilung in einer orchestrierten umgebung |
EP21193712.3 | 2021-08-30 | ||
PCT/EP2022/072826 WO2023030874A1 (de) | 2021-08-30 | 2022-08-16 | Ressourcenteilung in einer orchestrierten umgebung |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117882054A true CN117882054A (zh) | 2024-04-12 |
Family
ID=77543349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280059208.3A Pending CN117882054A (zh) | 2021-08-30 | 2022-08-16 | 在编排环境中的资源共享 |
Country Status (3)
Country | Link |
---|---|
EP (2) | EP4141664A1 (zh) |
CN (1) | CN117882054A (zh) |
WO (1) | WO2023030874A1 (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11635995B2 (en) * | 2019-07-16 | 2023-04-25 | Cisco Technology, Inc. | Systems and methods for orchestrating microservice containers interconnected via a service mesh in a multi-cloud environment based on a reinforcement learning policy |
US20210014113A1 (en) * | 2020-09-25 | 2021-01-14 | Intel Corporation | Orchestration of meshes |
-
2021
- 2021-08-30 EP EP21193712.3A patent/EP4141664A1/de not_active Withdrawn
-
2022
- 2022-08-16 WO PCT/EP2022/072826 patent/WO2023030874A1/de active Application Filing
- 2022-08-16 CN CN202280059208.3A patent/CN117882054A/zh active Pending
- 2022-08-16 EP EP22765524.8A patent/EP4356246A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4356246A1 (de) | 2024-04-24 |
EP4141664A1 (de) | 2023-03-01 |
WO2023030874A1 (de) | 2023-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10988793B2 (en) | Cloud management with power management support | |
US10719367B1 (en) | Management of workers executing program code functions | |
US20190377604A1 (en) | Scalable function as a service platform | |
US10701139B2 (en) | Life cycle management method and apparatus | |
US8862720B2 (en) | Flexible cloud management including external clouds | |
JP6522128B2 (ja) | リソースサイジングの自動管理システム、方法及び非一時的コンピュータ可読記憶媒体 | |
EP3468151B1 (en) | Acceleration resource processing method and apparatus | |
US8271653B2 (en) | Methods and systems for cloud management using multiple cloud management schemes to allow communication between independently controlled clouds | |
US10630559B2 (en) | Virtual machine (VM) realm integration and management | |
US9450783B2 (en) | Abstracting cloud management | |
US10462262B2 (en) | Middleware abstraction layer (MAL) | |
US11650856B2 (en) | Federated operator for edge computing network | |
US10152357B1 (en) | Monitoring application workloads scheduled on heterogeneous elements of information technology infrastructure | |
US11467874B2 (en) | System and method for resource management | |
CN104937584A (zh) | 基于共享资源的质量向经优先级排序的虚拟机和应用程序提供优化的服务质量 | |
CN110716788B (zh) | 管理虚拟化资源的方法和装置 | |
KR102524540B1 (ko) | 멀티 클라우드 서비스 플랫폼 장치 및 방법 | |
US10042673B1 (en) | Enhanced application request based scheduling on heterogeneous elements of information technology infrastructure | |
Taherizadeh et al. | Auto-scaling applications in edge computing: Taxonomy and challenges | |
US20210311798A1 (en) | Dynamic microservices allocation mechanism | |
CN111542809A (zh) | 管理虚拟网络功能 | |
KR101544487B1 (ko) | 복수의 사용자 계정들을 갖는 클라이언트에 대한 가상 데스크톱 서비스 시스템 | |
EP3258643B1 (en) | A method and apparatus for performing resource management | |
CN117882054A (zh) | 在编排环境中的资源共享 | |
Miranda et al. | Dynamic communication-aware scheduling with uncertainty of workflow applications in clouds |
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 |