CN115280287A - 执行生命周期管理 - Google Patents

执行生命周期管理 Download PDF

Info

Publication number
CN115280287A
CN115280287A CN202180017232.6A CN202180017232A CN115280287A CN 115280287 A CN115280287 A CN 115280287A CN 202180017232 A CN202180017232 A CN 202180017232A CN 115280287 A CN115280287 A CN 115280287A
Authority
CN
China
Prior art keywords
workload
environment
shadow
lifecycle management
kubernets
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
Application number
CN202180017232.6A
Other languages
English (en)
Inventor
P·L·怀特
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.)
Yuan Switch Network Co ltd
Original Assignee
Yuan Switch Network 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 Yuan Switch Network Co ltd filed Critical Yuan Switch Network Co ltd
Publication of CN115280287A publication Critical patent/CN115280287A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

生命周期管理在数据处理系统中被实现。在第一工作负载环境中提供第一工作负载。所述第一工作负载用于将所述第一工作负载环境中的所述第一工作负载的一个或多个第一生命周期管理状态与第二工作负载的一个或多个第二生命周期管理状态对齐。所述第二工作负载在不同的第二工作负载环境中。

Description

执行生命周期管理
技术领域
本公开涉及执行生命周期管理。
背景技术
工作负载(诸如虚拟机(VM)和物理服务器)的生命周期管理具有挑战性。例如,可能需要创建多个VM,当任何VM故障时进行检测,通过删除和重新创建任何故障VM来修复故障VM和/或动态地向上扩展或向下扩展VM池。可以针对VM所在的特定VM环境(诸如OpenStack或VMware)来编写和运行协调器。这可以使生命周期管理事件发生并使生命周期管理操作被执行。然而,这样的协调器可能是重量级的、脆弱的、难以使用的和/或高度特定于环境的。
发明内容
根据第一实施例,提供了一种在数据处理系统中执行生命周期管理的方法,所述方法包括:
在第一工作负载环境中提供第一工作负载;和
使用所述第一工作负载将所述第一工作负载环境中的所述第一工作负载的一个或多个第一生命周期管理状态与第二工作负载的一个或多个第二生命周期管理状态对齐,
其中,所述第二工作负载在不同的第二工作负载环境中。
根据第二实施例,提供了一种被布置成执行根据第一实施例的方法的数据处理系统。
根据第三实施例,提供了一种工作负载,被配置为在被执行时根据第一实施例来使用,其中,所述工作负载是第一工作负载。
进一步的特征和优点将从以下参照附图仅作为示例给出的描述中变得明显。
附图说明
图1示出了表示数据处理系统的示例的示意框图;
图2示出了表示执行生命周期管理的方法的示例的流程图;
图3示出了表示数据处理系统的另一示例的示意框图;
图4示出了表示数据处理系统的另一示例的示意框图;
图5示出了表示数据处理系统的另一示例的示意框图;
图6示出了表示数据处理系统的另一示例的示意框图;和
图7示出了表示数据处理系统的另一示例的示意框图。
具体实施方式
本文描述的示例一般涉及环境间(或“跨环境”)生命周期管理,在所述环境间(或“跨环境”)生命周期管理中,一个环境中的生命周期管理功能在另一环境中被利用。这与上述环境内生命周期管理不同,在所述环境内生命周期管理中,生命周期管理功能与被管理的工作负载在相同的环境中。例如,容器化环境(诸如开源容器编排系统(Kubernetes))中的生命周期管理功能可用于在VM环境(诸如开源云计算管理平台(OpenStack))中执行VM的环境间生命周期管理。因此,可能不需要针对VM环境自定义编写的重量级的、脆弱的和/或难以使用的协调器来管理VM环境中的VM。此外,与编写了许多特定于环境的协调器并且每个协调器特定于使用它的特殊环境的上述场景相比,在示例中可以避免编写超过一个这样的协调器的需要并且可以使用现有的协调器功能。
环境间生命周期管理违背了本领域的组合多个不同的环境(诸如Kubernetes和VM(通常被视为单独的技术))会增加复杂性的偏见Kubernetes。环境间生命周期管理与仅彼此交互的多个不同环境不同,例如,一个环境中的工作负载仅与另一环境中的工作负载通信。相比之下,环境间生命周期管理具体涉及跨环境生命周期管理。与Kubernetes相关的术语“工作负载”是指作为在Kubernetes上运行的应用的组件来运行的容器,但更一般地应理解为另外包括与可以执行生命周期管理相关的其他实体,例如包括但不限于VM和物理服务器。
以上面Kubernetes环境和VM环境为例,原则上,现有的VM功能可以从VM环境中的VM迁移到Kubernetes中的容器化工作负载,这样Kubernetes就可以在自己的环境中管理迁移到容器化工作负载。然而,在实践中,此类迁移可能涉及大量资源(例如,时间),并且可能需要或可能首选一些此类功能以在VM环境中运行,使得其在实践中无法迁移。因此,在实践中,可能仍然需要通过VM环境中的VM提供一些功能。例如,VM环境可以针对具有复杂逻辑和网络的大型进程进行优化。另一方面,Kubernetes可以针对快速故障、较小的流程和不太复杂的网络需求进行优化。特别地,VM可以具有多个可以直接映射到物理接口的网络接口,而容器通常各自具有一个映射到少量物理接口的网络接口。因此,VM在一些环境中可以拥有更灵活、更强大的网络。
在本文描述的示例中,软件实例(本文也称为“工作负载”、“影子”或“影子工作负载”)在第一环境(本文也称为“平台”)中被创建。此类软件实例在不同的第二环境中作为工作负载的影子工作负载运行。因此,影子工作负载与第二环境中的工作负载相关联。因为第一环境中的给定影子工作负载与第二环境中的单个给定工作负载相关联,所以这种关联可以是一对一的。影子工作负载在第一环境中由第一环境中的层(本文称为“部署协调”层)管理。因此,位于第一环境中的影子工作负载由相同的第一环境中的部署协调层管理。影子工作负载用于对齐第一环境中的影子工作负载的一个或多个第一生命周期管理状态和第二环境中相关联工作负载的一个或多个第二生命周期管理状态。采取并影响第一环境中的影子工作负载的生命周期管理状态的操作(特别是生命周期管理操作)被传递到第二环境中的工作负载,使得第二环境中的工作负载的生命周期管理状态与第一环境中的影子工作负载的生命周期管理状态对齐和/或反之亦然。此类操作的结果通过影子工作负载(例如通过影子工作负载的生命周期管理状态)报告回来。
如以下将更详细描述的,第一环境中的部署协调层可以在第一环境中创建影子工作负载,使得影子工作负载具有与创建影子工作负载相关的“已创建”生命周期管理状态。新创建的影子工作负载又可以在第二环境中创建相关联的工作负载。然后,第二环境中新创建的工作负载也具有“已创建”生命周期管理状态,其中,该生命周期管理状态与影子工作负载的“已创建”生命周期管理状态一致(或“匹配”、“映射到”或“镜像”)。另外,响应于影子工作负载确定第二环境中的工作负载具有与第二环境中的工作负载的准备就绪相对应的“准备就绪”生命周期管理状态(例如,第二环境中的工作负载具有正确的配置并且是健康的),影子工作负载可以将其生命周期管理状态与第二环境中的工作负载的生命周期管理状态(即“准备就绪”生命周期管理状态)对齐。然后,影子工作负载可以将其“准备就绪”生命周期管理状态报告给第一环境中的部署协调层。
通过管理第一环境中的影子工作负载,第一环境的部署协调层因此在第二环境中被利用。
在示例中,第一环境和第二环境分别使用不同的技术(诸如容器技术和VM技术)。相反,如果第一环境和第二环境彼此使用相同的技术,那么第一环境中的部署协调层也可以简单地在第二环境中运行。因此,这里描述的技术对于跨环境生命周期管理更有效,在所述跨环境生命周期管理中,不同的环境使用不同的技术。
本文描述的示例允许以环境中立的方式来利用现有的部署协调层技术(诸如Kubernetes)。这种现有的部署协调层技术(例如Kubernetes)可以是鲁棒的、维护良好的和经过良好测试的。这种现有技术可以被利用,而不是编写自定义生命周期管理器(LCM)产品或使用其他功能较弱的产品。在示例中,一个环境(诸如Kubernetes)中的现有软件的现有功能用于管理另一环境(例如VM)中的工作负载。具体地,Kubernetes操作部署协调层以提供应用程序编程接口(API)和功能来管理包括本文描述的生命周期管理码的容器。让单个Kubernetes集群管理VM集(在Kubernetes环境外部)允许在单个位置进行一致的管理,其中,对所有工作负载(容器、VM、物理裸机服务器等)的控制在一个位置利用一致的API甚至相同的码被管理。Kubernetes具有添加一系列特征的功能(诸如基于角色的访问控制(RBAC)、审核、GitOps集成等)。因此,这些功能默认情况下是使用Kubernetes提供的。如果改用自定义编写的协调器,协调器本身就需要被管理;在协调器故障时修复协调器,使协调器具有高可用性(HA)等。与大多数协调产品不同,Kubernetes具有自我修复功能,可以轻松地以HA模式部署。
在示例中,用于管理VM的逻辑被划分为两部分;复杂的生命周期逻辑在Kubernetes中独立于底层平台被执行,平台特定逻辑在容器图像中被维护。然而,容器图像被设计为轻量级且小尺寸(例如,与VM的尺寸相比),并且本文描述的技术可以容易地应用于各种平台(例如OpenStack、VMware、云平台(诸如Azure和亚马逊网络服务(AWS))),甚至是裸机。在示例中,因为容器图像没有协调或应用逻辑,所以容器图像可以做得很小(并且可以跨应用使用,在某种程度上,还可以用于VM环境)。相反,在示例中,它们具有最少的逻辑(即检查具有特定参数的工作负载(例如,VM)存在)。
除了通过利用另一环境中的部署协调层来促进一个环境中的工作负载的生命周期管理之外,这里描述的示例还促进了外部报告。例如,Kubernetes可以提供一个显示其管理的所有工作负载(无论是容器、VM还是物理服务器)的状态的控制面板。
在本文描述的示例中,协调器存在于第一环境(例如,Kubernetes环境)中。协调器负责管理第一环境中的一个或多个软件实例的集合。一个或多个软件实例中的一些或全部一对一地映射到不同的第二环境(例如,VM环境中的VM)中的一个或多个单独的软件实例。从第一环境中的协调器接收到的、影响映射的软件实例的生命周期操作以第二环境理解的方式(例如,通过第一到第二环境映射)被传递到第二配对环境。来自第二环境的响应和状态被传回,以便第二环境中的每个一对一映射的软件实例例如通过第二环境映射正确地出现在第一环境中的协调器中。
一个已知的项目vmctl使用Kubernetes通过影子配置模型来管理VM。然而,vmctl管理Kubernetes资源内部的VM,而不是管理Kubernetes外部的VM。因为vmctl仅在非常有限的环境中管理VM,因此vmctl项目远比本文描述的技术受到更多限制,其中,VM是在Kubernetes环境中的容器内部创建的。相比之下,本文描述的技术使Kubernetes环境外部的基础结构能够从Kubernetes环境内进行管理。
参照图1,示出了数据处理系统100的示例。
数据处理系统100包括第一环境105,其中,所述第一环境105在该示例中是工作负载环境。术语“工作负载环境”在本文中用于表示可以定位工作负载的环境。在该示例中,第一环境105是容器化环境,在所述容器化环境中,Kubernetes是示例。第一环境105包括第一工作负载110,在该示例中,第一工作负载110是容器化工作负载。在该示例中,第一工作负载110是影子工作负载。
数据处理系统100包括第二环境115,该第二环境115与第一环境105的不同之处在于第一环境105和第二环境115使用不同的技术。第二环境115包括第二工作负载120,该第二工作负载120例如可以是VM或物理服务器。在该示例中,第二工作负载120提供电话功能,诸如长期演进语音(VoLTE)功能、媒体资源功能(MRF)、IP多媒体子系统(IMS)核心功能、会话边界控制器(SBC)功能等。例如因为复杂性、网络要求、重新实现现有的成本虚拟化码等,所以此功能可能需要或可能更有效地由VM而不是容器执行。
在该示例中,影子工作负载110不提供电话功能,并且其唯一或主要功能是充当影子工作负载,执行第二工作负载120的生命周期管理(在本文中也称为“生命周期管理”或“拥有”第二工作负载120)。
参照图2,示出了执行与工作负载相关的生命周期管理的示例方法。在本示例中,该方法在图1所示的数据处理系统100中执行。
在该示例方法中,影子工作负载110用于将影子工作负载110的一个或多个第一生命周期管理状态与第二工作负载120的一个或多个第二生命周期管理状态对齐。
在项S2a,影子工作负载110开始生命周期管理例程。影子工作负载110可以间歇地执行例程。该例程可以周期性地被执行(诸如每30秒一次)。在该示例中,例程涉及检查第二工作负载120是否存在,如果存在,则检查第二工作负载120是否具有正确的图像和/或配置并且是否健康。
在项S2b,影子工作负载110检查第二工作负载120是否存在。
如果第二工作负载120不存在,则影子工作负载110在项S2c创建第二工作负载120。为了创建第二工作负载120,影子工作负载110可以生成“创建”命令并将“创建”命令发送到第二环境115。这样的传输可以包括影子工作负载110例如通过第一环境105和第二环境115之间的超文本传输协议安全(HTTPS)接口对第二环境115进行API调用。
在项S2d,影子工作负载110检查第二工作负载120是否具有正确的配置。
在项S2e,如果第二工作负载120存在但具有错误的配置,则影子工作负载110确定是否可以实时更改配置。
在项S2f,如果可以实时更改配置,则影子工作负载110更改第二工作负载120的配置。
在项S2g,影子工作负载110检查第二工作负载120是否健康。
在项S2h,如果第二工作负载120具有正确的配置并且是健康的,则认为第二工作负载120处于“准备就绪”生命周期管理状态。影子工作负载110将其自己的生命周期管理状态与第二工作负载120的“准备就绪”生命周期管理状态对齐。在该示例中,这涉及影子工作负载110将其生命周期管理状态报告为“准备就绪”给第一环境105中的部署协调层。因此,如果第二工作负载120启动并准备好正确配置,则影子工作负载110报告“准备就绪”状态。
在项S2i,如果第二工作负载120存在但具有无法实时更改的错误配置,或者如果第二工作负载120存在但不健康,则影子工作负载110删除第二工作负载120。例程的稍后循环可以(重新)创建第二工作负载120。
影子工作负载110可以在例程期间和/或外部向第二环境115一次或多次发送认证令牌。认证令牌指示影子工作负载110可以对第二工作负载120进行生命周期管理(例如,创建)。认证令牌可以是影子工作负载110在认证由影子工作负载110向第二环境115提供的凭证(诸如用户名和密码)之后存储的秘密。
参照图3,示出了数据处理系统300的另一示例。图3中示出的示例数据处理系统300包括与图1中示出的对应元素相同或相似的若干元素。这些元素使用相同但以200递增的参考符号表示。
在该示例中,第二环境315中的第二工作负载320提供电话功能并且在第一环境305中具有影子工作负载310。在该示例中,第一环境305包括另一工作负载325,该工作负载325不是影子工作负载而是“全功能”工作负载。在该示例中,其他工作负载325提供当与第二工作负载320提供的功能结合时允许数据处理系统300传递服务(诸如电话)的功能。因此,第一环境305实现了影子工作负载310和非影子全功能工作负载325两者的混合部署,这两者共存于第一环境305中并且可以由第一环境305中的公共部署协调层管理.
参照图4,示出了数据处理系统400的另一示例。图4中示出的示例数据处理系统400包括与图3中示出的对应元素相同或相似的若干元素。这些元素使用相同但以100递增的参考符号表示。
在该示例中,并且与图3中所示的示例数据处理系统300类似,第一环境405除了影子工作负载410之外还包括另一工作负载430。然而,在示例数据处理系统300中,另一工作负载325是提供电话功能的非影子、全功能工作负载,此示例中的另一工作负载430不提供电话功能并且是第二工作负载420的影子工作负载。因此,在此示例中,影子工作负载410、430两者在第一环境405中对第二工作负载420进行生命周期管理。第一环境405中的工作负载410、430中的一个可以执行与另一未被配置为执行的第二工作负载420相关的生命周期管理操作。这种生命周期管理操作的示例是响应于满足删除条件(诸如第一影子工作负载410不再用于对第二工作负载420进行生命周期管理)而使第二工作负载420被删除。
参照图5,示出了数据处理系统500的另一示例。图5中示出的示例数据处理系统500包括与图4中示出的对应元素相同或相似的若干元素。这些元素使用相同但以100递增的参考符号表示。
在该示例中,并且与图4所示的示例数据处理系统400类似,第一环境505包括第一工作负载510和另一影子工作负载535。然而,在示例数据处理系统400中,另一影子工作负载430对第二工作负载430进行生命周期管理,本示例中的另一影子工作负载535对在本示例中位于第二环境515中的又一工作负载540进行生命周期管理。第二环境515中的工作负载520、540可以具有与彼此相同的功能,或者可以具有不同的功能。因此,在该示例中,因为第一环境505中的工作负载510、535不对除了第二环境515中它们各自对应的工作负载520、540之外的任何工作负载进行生命周期管理,所以第一环境505中的影子工作负载510、535与第二环境515中的对应工作负载520、540之间存在一对一的映射。
参照图6,示出了数据处理系统600的另一示例。图6中示出的示例数据处理系统600包括与图5中示出的对应元素相同或相似的若干元素。这些元素使用相同但以100递增的参考符号表示。
在该示例中,并且与图5中所示的示例数据处理系统500类似,第一环境605包括第一工作负载610和另一影子工作负载645。然而,在示例数据处理系统500中,另一影子工作负载535对第二环境515中的又一工作负载540进行生命周期管理,本示例中的另一影子工作负载645对本示例中与第一环境605和第二环境615不同的第三环境655中的又一工作负载650进行生命周期管理。因此,在该示例中,第一环境605外部的多个环境615、655中的工作负载由第一环境605中的部署协调层管理。这与针对第二环境615和第三环境655中的每个编写特定于环境的协调器的实现形成对比。即使一些码对于这两种特定于环境的协调器都是通用的,但大量特定于环境的码仍可用于每个环境。
参照图7,显示了数据处理系统700的另一示例。图7中所示的示例数据处理系统700包括与一个或多个较早附图中所示的对应元素相同或相似的若干元素。这些元素使用相同但以100的倍数递增的参考符号表示。
示例数据处理系统700在特定示例中实现环境间生命周期管理,在所述特定示例中,VM环境715中的VM 720、740-1、740-2形式的工作负载由Kubernetes环境705中的Kubernetes通过Kubernetes环境705中的影子工作负载710、735-1、735-2进行管理。
在该示例中,Kubernetes环境705包括三个实体710、735-1、735-2,每个实体在图7中都标记为“VM管理器舱(Manager Pod)”。每个实体710、735-1、735-2表示一个Kubernetes舱包括单个容器,进而包括单个容器化工作负载。基于上下文,这里对影子工作负载710、735-1、735-2的引用应视情况理解为包括对舱本身、容器和/或容器化工作负载的引用。特别地,因为舱是共享作为一个单元被管理的网络命名空间的一个或多个容器集,所以术语“舱”和“容器”几乎可以互换使用。
Kubernetes了解容器,但不了解VM。因此,Kubernetes不直接管理VM 720、740-1、740-2,而是通过影子工作负载710、735-1、735-2管理VM 720、740-1、740-2。具体地,Kubernetes对映射并传播到VM 720、740-1、740-2的影子工作负载710、735-1、735-2执行生命周期操作。Kubernetes中的部署协调层可能不知道它通过影子工作负载710、735-1、735-2间接管理VM 720、740-1、740-2,甚至不知道VM存在720、740-1,740-2。
为了使Kubernetes能够以这种方式间接管理VM 720、740-1、740-2,创建有状态集(StatefulSet)对象755来管理影子工作负载710、735-1、735-2。有状态集对象755在Kubernetes中用于管理有状态工作负载。还创建部署(Deployment)对象760以管理单独的影子工作负载730,这将在下面更详细地描述。部署对象760在Kubernetes中用于管理无状态工作负载。部署对象760通常比有状态集对象755更轻量并且可以优先于有状态集对象755用于无状态工作负载。在单独的影子工作负载730被实现为无状态工作负载的这个示例中,部署对象760的使用因此可以提供效率。
有状态集对象755和部署对象760的手动配置可能相对耗时且繁重。在示例中,Kubernetes运算符(Operator)模型用于促进此类配置。在此示例中,这与添加新的服务器池(ServerPool)对象765以及在Kubernetes中为该池创建任何其他对象的码对应。在图7所示的示例Kubernetes环境705中,服务器池对象765是本公开定义的新对象。有状态集对象755和部署对象760是具有自己的控制器的标准对象,并且默认情况下与Kubernetes一起提供。可以使用Kubernetes API添加新的服务器池对象765,该Kubernetes API可以被扩展以添加新的对象和控制器。
Kubernetes管理影子工作负载710、735-1、735-2的创建、滚动升级、修复、缩放、删除等。在此示例中,每个影子工作负载710、735-1、735-2负责以一对一的对应关系对单个相应的VM 720、740-1、740-2进行生命周期管理,并被设计为使用最小逻辑。
如上所述,影子工作负载逻辑可以简单地了解影子工作负载710、735-1、735-2对哪个VM 720、740-1、740-2进行生命周期管理,如果VM 720、740-1、740-2处于错误状态,则删除它们,如果VM 720、740-1、740-2不存在,则创建它们,和/或如果VM 720、740-1、740-2以正确的状态存在,则将它们的状态报告为“准备就绪”。影子工作负载710、735-1、735-2可以使用VM 720、740-1、740-2的VM标识符识别其进行生命周期管理的VM 720、740-1、740-2。每个影子工作负载710、735-1、735-2还负责获取有关其各自VM 720、740-1、740-2的信息,并将该信息暴露给Kubernetes和/或在Kubernetes环境705中运行的应用程序。例如,影子工作负载710、735-1、735-2可以报告它们各自的VM 720、740-1、740-2的版本和/或一旦它们各自的VM 720、740-1、740-2准备好就可以报告“准备就绪”。
如果在影子工作负载710、735-1、735-2进行生命周期管理的VM 720、740-1、740-2已经存在并且VM 720、740-1、740-2已经在正确的状态时创建影子工作负载710、735-1、735-2(例如,当Kubernetes检测到影子工作负载710、735-1、735-2故障并重新创建影子工作负载710、735-1、735-2),影子工作负载710、735-1、735-2可能没做什么。
在一些情况下,影子工作负载710、735-1、735-2的删除或故障可能导致删除其相应的VM 720、740-1、740-2。集群故障(换言之,所有影子工作负载710、735-1、735-2的故障)可能因此导致丢失所有VM 720、740-1、740-2。
在此示例中,VM不会被有状态集对象755中的影子工作负载710、735-1、735-2删除。相反,删除由部署对象760中的单独影子工作负载730来执行,该单独影子工作负载730由图7中的标签“收割器(Reaper)舱”指示,在本文中称为“收割器影子工作负载”。收割器影子工作负载730的逻辑也可以被设计为具有有限的复杂性,即例如通过确定来自服务器池对象765的VM 720、740-1、740-2的状态应该是什么来找到不应该存在的任何被管理的VM720、740-1、740-2并去除它们。收割器影子工作负载730在Kubernetes中特别有效,Kubernetes是一个快速故障的环境,其中,在所述环境中影子工作负载710、735-1、735-2预计会故障,但可以在故障后迅速再次启动。收割器影子工作负载730也可以在集群发生故障、重新启动并通过删除现有的VM 720、740-1、740-2、现在未使用的VM 720、740-1、740-2来创建与重新启动的影子工作负载710、735-1、735-2对应的另一VM集(未示出)的情况下有效。在示例中,当删除服务器池对象765时,Kubernetes给收割器影子工作负载730时间来删除所有VM 720、740-1、740-2。
因此,在该示例中,存在单个对象(即服务器池对象765),它在Kubernetes环境705中具有声明性配置。当创建服务器池对象765时,VM 720、740-1、740-的整个池已创建并保持最新。对服务器池对象765的配置的改变例如通过缩放和/或滚动更新自动反映在VM720、740-1、740-2中。
如上所述,示例生命周期管理事件是创建事件。影子工作负载710、735-1、735-2可以逐一创建,使得它们每个都具有“已创建”生命周期管理状态。因为影子工作负载710、735-1、735-2的创建映射到由VM 720、740-1、740-2各自的影子工作负载710、735-1、735-2正在逐一创建的VM 720、740-1、740-2,所以“已创建”生命周期管理状态将在VM环境715中被镜像。在创建之后,VM 720、740-1、740-2也处于“已创建”生命周期管理状态。
另一示例生命周期管理事件是扩展。在此示例中,正如创建一样,可以添加额外的影子工作负载,从而产生额外的VM。
另一示例生命周期管理事件是去除影子工作负载的缩减事件或删除事件。在该示例中,由于以下情况,所以收割器影子工作负载730负责删除VM 720、740-1、740-2:因为VM720,740-1,740-2应该被删除,或者因为例如影子工作负载被分配了更高的内存阈值或发生了节点错误情况,所以影子工作负载710、735-1、735-2不能容易地确定它是否正在被关闭。缩减可以被认为具有两个部分。首先,随着有状态集对象755被重新配置,影子工作负载710、735-1、735-2被去除。其次,收割器影子工作负载730在重新配置收割器影子工作负载730时去除VM 720、740-1、740-2。保持配置和有状态集对象755一致是提供服务器池对象765和运算符的原因。
另一示例生命周期事件是康复事件。在此示例中,故障的影子工作负载710、735-1、735-2被Kubernetes替换,故障的VM 720、740-1、740-2被检测到并被其影子工作负载710、735-1、735-2替换。
另一示例生命周期管理事件是升级事件或修改事件。在此示例中,影子工作负载710、735-1、735-2可以逐一替换,因此它们会连续关闭并使用更新的配置被重新创建。Kubernetes具有仅在先前的影子应用报告“准备就绪”时(换言之,当它们完成了它们映射的工作负载所需要的一切时)执行替换的智能。这种滚动升级或替换是在例如OpenStack中默认不存在的默认的Kubernetes特征。图7中仅示出了单个VM环境715、单个服务器池对象765和三个VM 720、740-1、740-2。然而,在其他示例中这些元素中的任何一个都可以有不同数量。图7中的箭头示出了控制权和所有权。Kubernetes内的控制表示运行在Kubernetes中的控制器基于高级别对象的声明式配置来管理(包括创建、删除、缩放、滚动升级等)低级别对象。
在示例中,尽管影子工作负载710、735-1、735-2被参数化,有状态集对象755中的所有影子工作负载710、735-1、735-2也具有彼此相同的规范,使得例如第三影子工作负载735-2可以确定它是第三影子工作负载735-2。
不同的应用可以逐一迁移(例如从VM环境715迁移到Kubernetes环境705),这种迁移是在应用级别执行的。例如,三个不同的应用,每个具有多个VM,在Kubernetes环境705中可以具有三个相应的服务器池设置来管理它们。一个应用可以通过去除与该应用对应的整个服务器池设置并将该服务器池设置替换为在Kubernetes环境705中运行的本机对象来迁移到Kubernetes,其中,Kubernetes管理整个迁移处理中的工作负载。
以上实施例应理解为说明性示例。设想了进一步的实施例。
在上述示例中,被管理的工作负载是VM。然而,本文描述的技术可以扩展到管理其他类型的工作负载。例如,本文描述的技术可以应用于其他云技术和/或物理服务器。对于物理服务器,影子工作负载可能无法删除或创建物理服务器,但可以验证物理服务器是否存在,如果物理服务器不健康,可以重新启动该物理服务器,可以使用其他方法(诸如ansible脚本)来执行滚动状态改变,和/或可以使用自动化物理服务器部署平台(例如“金属即服务(metal as a service)”)。
上述示例涉及基于容器的VM生命周期管理。如果有理由利用这种生命周期管理,本文描述的技术可以扩展到任何速度较慢、规模更大的技术的基于容器的生命周期管理,甚至是另一种技术对一种技术的生命周期管理。
可以使用新服务器池对象中的声明性配置添加GitOps和/或持续集成/持续交付(CI/CD)集成,以自动将状态推出到部署协调层。
与本文描述的那些技术相似的技术可以用于在一个环境中、在另一容器环境中复制容器。然而,如上所述,这可能不如跨环境生命周期管理有效。
可以提供影子工作负载的智能和逻辑复杂性与它们周围的框架之间的不同平衡以促进这一点。例如,影子工作负载可以实现所需的逻辑以在内部翻译命令和信息,或者可以利用任一(或两个)环境中提供的服务来执行此类翻译。
在上述示例中,影子工作负载与其他工作负载一一对应。这使得影子工作负载在逻辑上被设计得相对简单。影子工作负载可以具有一对多映射,但这可能会将协调挑战转移到影子工作负载,从而增加复杂性并降低粒度,尤其是在影子工作负载相对容易启动的情况下,几乎没有任何好处,。一个影子工作负载可能管理一对主动-备用工作负载,但在影子工作负载中可能需要另外的逻辑来报告一个工作负载的故障而不是另一个工作负载的故障,以避免共同命运的情况。
上述示例主要涉及Kubernetes。在其他示例中,可以使用替代的容器化环境(诸如Docker Swarm和Mesos)。
应当理解,针对任一实施例所描述的任何特征可以单独使用,也可以与所描述的其他特征组合使用,也可以与任何其他实施例的一个或多个特征组合使用,或者任意组合使用任何其他实施例。此外,在不脱离由所附权利要求限定的本发明的范围的情况下,也可以采用以上未描述的等同和修改。

Claims (15)

1.一种在数据处理系统中执行生命周期管理的方法,所述方法包括:
在第一工作负载环境中提供第一工作负载;以及
使用所述第一工作负载将所述第一工作负载环境中的所述第一工作负载的一个或多个第一生命周期管理状态与第二工作负载的一个或多个第二生命周期管理状态对齐,
其中所述第二工作负载在不同的第二工作负载环境中。
2.根据权利要求1所述的方法,其中所述第一工作负载环境是Kubernetes环境。
3.根据权利要求1至2任一项所述的方法,其中所述第一工作负载不执行对除所述第二工作负载之外的任何工作负载的生命周期管理。
4.根据权利要求1至3任一项所述的方法,其中所述第二工作负载是虚拟机。
5.根据权利要求1至4任一项所述的方法,其中所述第二工作负载被配置为提供电话功能,并且所述第一工作负载未被配置为提供电话功能。
6.根据权利要求1至5任一项所述的方法,其中所述第一工作负载环境包括被配置为提供电话功能的另一工作负载。
7.根据权利要求6所述的方法,其中所述另一工作负载被配置为执行与所述第二工作负载相关的生命周期管理。
8.根据权利要求7所述的方法,其中由所述另一工作负载执行的所述生命周期管理包括:响应于删除条件而使所述第二工作负载被删除,所述删除条件包括所述第一工作负载不再被用以执行与所述第二工作负载相关的生命周期管理。
9.根据权利要求8所述的方法,其中所述另一工作负载被配置为执行与所述第二工作负载环境中的又一工作负载相关的生命周期管理。
10.根据权利要求9所述的方法,其中所述又一工作负载在第三工作负载环境中,所述第三工作负载环境不同于所述第一工作负载环境和所述第二工作负载环境。
11.根据权利要求1至10任一项所述的方法,还包括:使用所述第一工作负载向所述第二工作负载环境发送认证令牌。
12.根据权利要求1至11任一项所述的方法,包括:使用所述第一工作负载来提供与所述第二工作负载相关的状态报告数据。
13.根据权利要求1至12任一项所述的方法,其中所述一个或多个第二生命周期管理状态各自与以下之一有关:
创建所述第二工作负载;或
所述第二工作负载准备就绪。
14.一种数据处理系统,被配置为执行操作,所述操作包括:
在第一工作负载环境中提供第一工作负载;以及
使用所述第一工作负载将所述第一工作负载环境中的所述第一工作负载的一个或多个第一生命周期管理状态与第二工作负载的一个或多个第二生命周期管理状态对齐,
其中所述第二工作负载在不同的第二工作负载环境中。
15.一种工作负载,在被执行时被配置为根据权利要求1至13任一项而被使用,其中所述工作负载是所述第一工作负载。
CN202180017232.6A 2020-03-04 2021-03-03 执行生命周期管理 Pending CN115280287A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB2003142.3 2020-03-04
GB2003142.3A GB2592631B (en) 2020-03-04 2020-03-04 Performing Lifecycle Management
PCT/US2021/020755 WO2021178598A1 (en) 2020-03-04 2021-03-03 Performing lifecycle management

Publications (1)

Publication Number Publication Date
CN115280287A true CN115280287A (zh) 2022-11-01

Family

ID=70278771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180017232.6A Pending CN115280287A (zh) 2020-03-04 2021-03-03 执行生命周期管理

Country Status (5)

Country Link
US (1) US20230121924A1 (zh)
EP (1) EP4115289A1 (zh)
CN (1) CN115280287A (zh)
GB (1) GB2592631B (zh)
WO (1) WO2021178598A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10985997B2 (en) * 2016-05-06 2021-04-20 Enterpriseweb Llc Systems and methods for domain-driven design and execution of metamodels
CN106598694A (zh) * 2016-09-23 2017-04-26 浪潮电子信息产业股份有限公司 一种基于容器的虚拟机安全监测机制
US10587463B2 (en) * 2017-12-20 2020-03-10 Hewlett Packard Enterprise Development Lp Distributed lifecycle management for cloud platforms
US10915349B2 (en) * 2018-04-23 2021-02-09 Hewlett Packard Enterprise Development Lp Containerized application deployment
CN110618884A (zh) * 2018-06-19 2019-12-27 中国电信股份有限公司 故障监控方法、虚拟化的网络功能模块管理器和存储介质
US10931507B2 (en) * 2019-06-25 2021-02-23 Vmware, Inc. Systems and methods for selectively implementing services on virtual machines and containers

Also Published As

Publication number Publication date
WO2021178598A1 (en) 2021-09-10
GB2592631A (en) 2021-09-08
US20230121924A1 (en) 2023-04-20
GB202003142D0 (en) 2020-04-15
GB2592631B (en) 2022-03-16
EP4115289A1 (en) 2023-01-11

Similar Documents

Publication Publication Date Title
US11416342B2 (en) Automatically configuring boot sequence of container systems for disaster recovery
US10496503B2 (en) Healing cloud services during upgrades
Endo et al. High availability in clouds: systematic review and research challenges
US11329888B2 (en) End-to-end automated servicing model for cloud computing platforms
US10114665B2 (en) Communication node upgrade system and method for a communication network
US8392919B2 (en) Runtime environment for virtualizing information technology appliances
US10268468B2 (en) Dynamic release baselines in a continuous delivery environment
US20160204977A1 (en) Method and system for providing distributed management in a networked virtualization environment
US11102278B2 (en) Method for managing a software-defined data center implementing redundant cloud management stacks with duplicate API calls processed in parallel
EP1840741A1 (en) Device, method, and computer program product for accessing a non-native application executing in a virtual machine environment
US11894983B2 (en) Simulation and testing of infrastructure as a service scale using a container orchestration engine
Chen et al. MORE: A model-driven operation service for cloud-based IT systems
US10255153B2 (en) Systematic testing of failover and recovery for distributed system components
US20240028323A1 (en) Simulation of nodes of container orchestration platforms
US20240004686A1 (en) Custom resource definition based configuration management
CN115280287A (zh) 执行生命周期管理
US10891154B2 (en) Hosting virtual machines on a secondary storage system
US11880294B2 (en) Real-time cross appliance operational intelligence during management appliance upgrade
US11061666B1 (en) Distributing computing tasks to individual computer systems
US12007859B2 (en) Lifecycle management of virtual infrastructure management server appliance
US20240012631A1 (en) Remediation engine for updating desired state of inventory data to be replicated across multiple software-defined data centers
US20230236902A1 (en) Dynamic gpu-enabled virtual machine provisioning across cloud providers
Udayakumar Getting Started with AVS
CN114816725A (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