CN113900767B - 监测集群和实施自动缩放策略的容器即服务控制器 - Google Patents

监测集群和实施自动缩放策略的容器即服务控制器 Download PDF

Info

Publication number
CN113900767B
CN113900767B CN202110432500.2A CN202110432500A CN113900767B CN 113900767 B CN113900767 B CN 113900767B CN 202110432500 A CN202110432500 A CN 202110432500A CN 113900767 B CN113900767 B CN 113900767B
Authority
CN
China
Prior art keywords
cluster
machine
bare metal
scaling
machines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110432500.2A
Other languages
English (en)
Other versions
CN113900767A (zh
Inventor
P·E·梅利奎斯特
B·A·麦基
F·M·罗伊林
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN113900767A publication Critical patent/CN113900767A/zh
Application granted granted Critical
Publication of CN113900767B publication Critical patent/CN113900767B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开涉及监测集群和实施自动缩放策略的容器即服务控制器。本文中所描述的实施例通常涉及一种经管理容器服务的控制器,控制器基于私有云内可用的裸机机器来促进自动缩放。根据示例,经管理容器服务的CaaS控制器监测表示容器编制系统内的客户所部署的集群的度量。响应于缩放事件基于与所述集群相关联的所述监测和自动缩放策略而针对所述集群被标识出,可以使与所述私有云相关联的BMaaS提供者创建所述私有云内可用的裸机机器的库存。最终,裸机机器通过基于所述自动缩放策略、所述库存和根据由所述客户或表示所述客户建立的策略所配置的最佳拟合算法在所述裸机机器当中进行选择,标识将被添加到所述集群的裸机机器。

Description

监测集群和实施自动缩放策略的容器即服务控制器
技术领域
本公开的实施例涉及监测集群和实施自动缩放策略的容器即服务(CaaS)控制器。
背景技术
云提供者向企业和/或个人递送基于云计算的服务和解决方案。虚拟硬件、软件和基础设施可以被租用并且被提供者管理,以根据各种云服务模型(包括容器即服务(CaaS)、虚拟机即服务(VMaaS)、存储即服务(STaaS)和裸机即服务(BMaaS))来递送服务。
发明内容
本公开的目的是提供一种系统、一种非暂时性机器可读介质以及一种方法,以至少部分地解决现有技术中存在的问题。
本公开的一方面提供了一种系统,包括:处理资源;以及非暂时性计算机可读介质,被耦合到处理资源,非暂时性计算机可读介质中存储有指令,指令在由处理资源执行时使处理资源执行以下操作:监测与代表在容器编制系统内的经管理容器服务的客户所部署的集群的操作相关联的度量;响应于缩放事件基于与集群相关联的监测和自动缩放策略而针对集群被标识出,使与私有云相关联的裸机即服务BMaaS提供者创建在私有云内可用的多个裸机机器的库存;以及基于自动缩放策略、库存以及根据由客户或代表客户建立的策略所配置的最佳拟合算法,通过在多个裸机机器之间进行选择,来标识将被添加到集群的裸机机器。
根据一个或多个实施例,其中指令还使处理资源从客户的用户接收自动缩放策略作为集群的定义的一部分,其中集群的定义包括关于期望由集群使用的机器配置的信息。
根据一个或多个实施例,其中缩放事件包括触发自动缩放策略的规则的横向扩展动作。
根据一个或多个实施例,其中当与集群相关联的需求超过私有云的容量时,指令还使处理资源通过使用云突发或工作负载转移来为客户提供灵活的容量。
根据一个或多个实施例,其中策略表达了使多个裸机机器的过量资源最小化的目标,其中库存包括量化针对多个裸机机器中的每个裸机机器的每个资源的值的信息,并且其中指令还使处理器执行以下操作:标识多个裸机机器的具有满足由自动缩放策略所标识的机器规范的资源类型和数量的子集;针对子集中的每个机器,基于机器的资源超出满足机器规范所需的资源量,来计算过量资源度量;以及选择子集的具有指示最小量的过量资源的过量资源度量的机器作为特定的裸机机器。
根据一个或多个实施例,其中指令还使处理资源经由与BMaaS提供者相关联的BMaaS门户,请求BMaaS提供者创建库存。
根据一个或多个实施例,其中集群的部署响应于经由容器即服务CaaS门户所接收到的请求。
根据一个或多个实施例,其中CaaS门户和BMaaS门户在公共云内可操作。
根据一个或多个实施例,其中系统包括在公共云内可操作的CaaS控制器。
根据一个或多个实施例,其中系统包括在私有云内可操作的CaaS控制器。
本公开的另一方面提供了一种存储指令的非暂时性机器可读介质,指令当由计算系统的处理资源执行时使处理资源执行以下操作:
监测与代表在容器编制系统内的经管理容器服务的客户所部署的集群的操作相关联的度量;响应于缩放事件基于与集群相关联的监测和自动缩放策略而针对集群被标识出,使与私有云相关联的裸机即服务BMaaS提供者创建在私有云内可用的多个裸机机器的库存;以及基于自动缩放策略、库存以及根据由客户或代表客户建立的策略所配置的最佳拟合算法,通过在多个裸机机器之间进行选择,来标识将被添加到集群的裸机机器。
根据一个或多个实施例,其中指令还使处理资源从客户的用户接收自动缩放策略作为集群的定义的一部分,其中集群的定义包括关于期望由集群使用的机器配置的信息。
根据一个或多个实施例,其中缩放事件包括触发自动缩放策略的规则的横向扩展动作。
根据一个或多个实施例,其中当与集群相关联的需求超过私有云的容量时,指令还使处理资源通过使用云突发或工作负载转移来为客户提供灵活的容量。
根据一个或多个实施例,其中策略表达了使多个裸机机器的过量资源最小化的目标,其中库存包括量化针对多个裸机机器中的每个裸机机器的每个资源的值的信息,并且其中指令还使处理器执行以下操作:标识多个裸机机器的具有满足由自动缩放策略所标识的机器规范的资源类型和数量的子集;针对子集中的每个机器,基于机器的资源超出满足机器规范所需的资源量,来计算过量资源度量;以及选择子集的具有指示最小量的过量资源的过量资源度量的机器作为特定的裸机机器。
根据一个或多个实施例,其中指令还使处理资源经由与BMaaS提供者相关联的BMaaS门户,请求BMaaS提供者创建库存。
本公开的又一方面提供了一种方法,包括:由经管理容器服务的容器即服务CaaS控制器的处理资源监测与代表在容器编制系统内的经管理容器服务的客户所部署的集群的操作相关联的度量;响应于缩放事件基于与集群相关联的监测和自动缩放策略而针对集群被标识出,由处理资源使与私有云相关联的裸机即服务BMaaS提供者创建在私有云内可用的多个裸机机器的库存;以及由处理资源,基于自动缩放策略、库存以及根据由客户或代表客户建立的策略所配置的最佳拟合算法,通过在多个裸机机器之间进行选择,来标识将被添加到集群的裸机机器。
根据一个或多个实施例,方法还包括由处理资源从客户的用户接收自动缩放策略作为集群的定义的一部分,其中集群的定义包括关于期望由集群使用的机器配置的信息。
根据一个或多个实施例,其中缩放事件包括触发自动缩放策略的规则的横向扩展动作。
根据一个或多个实施例,方法还包括当与集群相关联的需求超过私有云的容量时,由处理资源通过使用云突发或工作负载转移来使客户被提供灵活的容量。
利用本公开的实施例,可以有利地使得容器SaaS门户能够在云提供者或第三方提供者的其他“即服务”产品上构建,从而促进可扩展性以包括其他产品,以及使得能够在CaaS或Kubernetes即服务(KaaS)顶部创建增值服务。
附图说明
在随附附图的图式中,通过示例的方式而不是通过限制的方式来对此处所描述的实施例进行图示,在附图中相似的附图标记是指类似的元件。
图1是概念性地图示根据示例实施例的经管理容器服务的系统架构的组件的分布的高级框图。
图2是概念性地图示根据示例实施例的容器SaaS门户的各种功能单元的框图。
图3是概念性地图示根据示例实施例的CaaS控制器的各种功能单元的框图。
图4图示了根据示例实施例的与蓝图元语言或模式的集群项目相关联的数据。
图5图示了根据示例实施例的与蓝图元语言或模式的蓝图项目相关联的数据。
图6图示了根据示例实施例的集群蓝图。
图7是图示根据示例实施例的CaaS控制器处理的流程图。
图8是图示根据示例实施例的最佳拟合处理的流程图。
图9是图示根据另一示例实施例的最佳拟合处理的流程图。
图10是图示根据示例实施例的自动缩放处理的高级流程图。
图11是图示根据示例实施例的涉及标识将被添加到集群的裸机机器的自动缩放处理的流程图。
图12是根据实施例的计算机系统的框图。
具体实施方式
本文中所描述的实施例通常涉及一种经管理容器服务的控制器,该控制器基于私有云内可用的裸机机器来促进自动缩放。在以下描述中,阐述了许多具体细节以便提供对示例实施例的透彻理解。然而,对于本领域的技术人员而言,将明显的是,可以在没有这些具体细节中的一些具体细节的情况下实践本文中所描述的实施例。
作为可实践的方式,公共云提供者倾向于实际上具有虚拟的无限的云机器池。因此,公共云提供者不必处理在私有云的背景下出现的许多问题。例如,在环境(例如表示云提供者和/或CaaS的客户的组织、实体或个人的现场或托管设施)内的裸机基础设施上的在服务器类型的数量和/或多样性方面具有有限的机器库存的CaaS需要比仅基于本质上无限制的硬件池创建虚拟机高得多的精细度。如此,与受限制机器库存环境内的集群(例如Kubernetes或Docker)相关的自动缩放处理应考虑各种折衷。例如,当多个裸机机器(具有超过由与集群相关联的自动缩放策略所标识的机器规范的资源(例如在处理器、存储器、网络容量和/或存储性能方面))在库存中可用时,由云提供者和/或CaaS用户或管理员所定义的一个或多个基于策略的约束(例如机器成本、操作成本(电源、冷却等)、性能、可靠性(可用性)、安全性等)可以被采用,以作为横向扩展或纵向扩展动作的结果而针对将新机器添加到集群而标识最佳拟合。例如,当响应于横向缩容或纵向缩容动作而从集群中去除机器时,也可以使用类似的方法。
虽然为了简洁起见,本文中所描述的实施例可以主要集中在有限的机器库存环境中的裸机机器的选择,但是方法同样适用于涉及物理基础设施和虚拟基础设施两者的混合集群和/或跨越公共云和私有云的集群的创建和管理。
术语
术语“连接”或“耦合”和相关术语在操作意义上使用,并且不一定限于直接连接或耦合。因此,例如,两个设备可以直接或经由一个或多个中间介质或设备耦合。作为另一示例,设备可以以使得信息可以在其间传递而彼此不共享任何物理连接的方式耦合。基于本文中所提供的公开内容,本领域的普通技术人员将了解根据前述定义存在连接或耦合的各种方式。
如果说明书陈述组件或特征“可以(may)”、“可以(can)”、“可能(could)”或“可能会(might)”被包括或具有特性,则该特定组件或特征不需要被包括或具有特性。
除非上下文另外明确指示,否则如本文中的描述中和贯穿所附权利要求书所使用,“一”、“一个”和“该”的含义包括复数参考物。而且,除非上下文另外明确指示,否则如本文中的描述中所使用,“在…中”的含义包括“在…中”和“在…上”。
本说明书中对“一个实施例”或“实施例”的提及意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。在本说明书的各个位置中出现的短语“在一个实施例中”不一定全部指的是同一实施例。
如本文中所使用,“集群信息”通常是指指示集群所期望的资源的信息。在一些实施例中,集群信息可以包括从裸机方面到容器应用方面的规范。例如,由集群信息指定的方面可以包括总体集群参数、机器类型、联网特征、存储规范和服务定义。在本文中所描述的各种实施例中,可以以集群蓝图的形式来表示集群信息,该集群蓝图可以被用于定义包括计算、存储和联网的集群细节以及如何组装这些细节以构建完整功能集群(例如Kubernetes或Docker)。
如本文中所使用,“过量资源度量”通常是指指示存在的资源超过满足集群的需要所需的那些资源的度量。例如,假定在机器库存中的候选机器具有10个处理器核心和1兆兆字节(TB)的存储器,则与指示对具有2个处理器核心和128千兆字节(GB)的存储器的机器的需要的新集群请求相比,这种候选机器将具有过量处理容量和存储器容量两者。过量资源度量可以被用于以原始形式量化这些过量资源(例如8个过量处理器核心和872GB过量存储器)或可以被标准化(例如.8过量处理容量和.872过量存储器容量)。
图1是概念性地图示根据示例实施例的经管理容器服务的系统架构100的组件的分布的高级框图。在本文中所描述的各种实施例中,经管理容器服务使用客户的私有云(例如现场数据中心或托管设施)的基础设施使用容器(例如提供Docker容器和Kubernetes编制作为服务)来提供操作系统虚拟化。经管理容器服务可以促进用于各种用例的云本机应用的部署和操作,包括但不限于边缘、人工智能/机器学习(AI/ML)、高性能计算(HPC)。经管理容器服务可以提供完全管理的解决方案,其中经管理服务提供者(MSP)操作CaaS实例,并且协助客户的基于容器的工作负载的部署和操作。根据一个实施例,可以将集群信息供应给基于SaaS的服务(例如容器SaaS门户130),以定义包括计算、存储和联网的集群细节以及如何组装这些细节以构建完整功能集群,并且控制器(例如BMaaS控制器166、STaaS控制器156、VMaaS控制器146和CaaS控制器160)的集合根据集群信息来执行集群的实例化。然后,所得集群可以由用户(例如CaaS用户102中的一个)消耗,并且由集群管理器(例如容器集群管理器170)进行管理。
在本示例的背景中,驻留在私有云内的组件(例如现场数据中心或托管设施)被示出在左侧,并且驻留在公共云内的组件被示出在右侧。在一个实施例中,私有云组件包括基础设施110、BMaaS控制器166、STaaS控制器156、VMaaS控制器146、虚拟机管理器(VMM)147、CaaS控制器160和容器集群管理器170;并且公共云组件包括裸机SaaS门户165、存储装置SaaS门户155和容器SaaS门户130。
根据一个实施例,容器SaaS门户130以云主机的多租户服务的形式表示基于网页的门户,该基于网页的门户允许基于例如呈集群蓝图105的形式的集群信息来创建物理集群、虚拟集群或混合集群,这些集群蓝图可以由CaaS管理员101和/或CaaS用户102预定义或创建。在一个实施例中,使用集群蓝图105促进由用户创建完整功能集群,该完整功能集群包括计算、联网和存储资源、以及将通过简单地参考现有蓝图被部署的应用集合。可以提供蓝图的目录,以允许用户从目录中选择与其需要匹配的蓝图。例如,可以存在允许创建人工智能/机器学习(AI/ML)集群的预定义蓝图以及用于通用计算集群的其他预定义蓝图。下文参考图6描述集群蓝图的非限制性示例。
继续本示例,CaaS管理员101和CaaS用户102可以利用容器SaaS门户130来执行与基于基础设施110的集群(例如Kubernetes或Docker)相关的各种生命周期管理(LCM)操作,该基础设施可以包括物理和/或虚拟基础设施,包括联网基础设施111、存储基础设施112和计算基础设施113。LCM操作可以包括初始计算集群创建、将基础设施添加到集群或从集群去除的集群修改、可以修改现有基础设施的集群更新以及集群的破坏。在一个实施例中,由容器SaaS门户130提供的应用编程接口(例如表示状态传送(REST)API)支持对集群的全部LCM操作,并且应用编程接口基于OpenAPI(Swagger)定义。例如,可以从容器SaaS门户130或从Kubernetes命令行跟踪集群LCM操作的状态。容器SaaS门户130还可以使用REST与其所依赖的其他服务(例如裸机SaaS门户165、存储装置SaaS门户155和VM SaaS门户145)进行通信,以获得关于基础设施110的信息和/或实施与LCM操作相关联的各种任务。关于容器SaaS门户130的非限制性示例的进一步细节在下文参考图2进行描述。
裸机SaaS门户165可以表示呈与BMaaS控制器166进行交互以执行集群的实例化的各个方面的特定BMaaS提供者(可以是与云提供者相同或不同的提供者)的云托管服务的形式的基于网页的门户。例如,BMaaS控制器166可以被用于将适当的固件和软件安装到由CaaS控制器160所选择的裸机机器上,以便将其包含在集群中。
类似地,存储装置SaaS门户155和VM SaaS门户145可以表示相应STaaS和VMaaS提供者的基于网页的门户,这些门户由客户使用并且被用于分别经由STaaS控制器156和VMaaS控制器146与基础设施110进行接口。在一个实施例中,VMaaS控制器146可以利用VMM147来创建适当大小的控制平面节点,以运行用于所请求的集群的容器控制平面。由系统架构100实施的分层方法的优点包括:使得容器SaaS门户130能够在云提供者或第三方提供者的其他“即服务”产品(例如BmaaS、STaaS和VMaaS)上构建,从而促进可扩展性以包括其他产品(例如联网和计算),以及使得能够在CaaS或Kubernetes即服务(KaaS)顶部创建增值服务。取决于特定实施方式的需要,例如通过添加或去除适当的SaaS门户和相关联的控制器,可以支持更多或更少类型的基础设施或提供者。
在本示例的背景中,CaaS控制器160在现场运行,并且由容器SaaS门户130控制。在一个实施例中,CaaS控制器160可以是Kubernetes集群,并且可以通过由容器SaaS门户130所调动的kubectl API调用来控制。在这种情境中,CaaS控制器160实际上是引导集群,其允许创建和管理目标集群(例如集群120)。在一些实施例中,例如,也可以使用“kube-native”方法将BMaaS控制器166、STaaS控制器156和VMaaS控制器146中的一个或多个控制器集成到引导集群中。关于CaaS控制器160的非限制性示例的进一步细节在下文参考图3进行描述。
容器集群管理器170可以负责在新提供的节点上安装容器编制系统。在一个实施例中,容器集群管理器170包括“Kubernetes引擎”(例如慧与科技公司(HPE)容器平台、Rancher Kubernetes引擎(RKE)、Loodse Kubermatic容器引擎、Google Kubernetes引擎(GKE)、Kubernetes+集群API或其他引擎)来安装Kubernetes并且创建集群。在创建集群之后,CaaS控制器160可以监测集群的状态,并且可以根据需要采取校正动作。例如,如果机器以无法修复的方式发生故障,那么另一机器将被可以分配、提供和添加到集群中,以替换故障的机器。
各种门户(例如裸机SaaS门户165、存储装置SaaS门户155、VM SaaS门户和容器SaaS门户130)和控制器(例如BMaaS控制器166、STaaS控制器156、VMaaS控制器146和CaaS控制器160),以及由它们执行的功能性可以由硬件、软件、固件和/或其组合来实施。例如,门户和控制器可以以被存储在机器可读介质上并且由处理资源(例如微控制器、微处理器、(一个或多个)中央处理单元核心、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)执行的可执行指令的形式和/或以其他类型的电子电路装置的形式实施。
虽然为了简单起见,可以参考单个客户或单个客户站点(例如现场数据中心或托管设施)描述各种示例,但是应了解,本文中所描述的各种门户可以与关联于多个客户和/或跨多个站点分布的控制器交互。附加地,尽管在本示例中,示出了控制器和SaaS门户以特定方式分布在私有云与公共云之间,但是取决于特定实施方式,这些组件可以不同地分布。例如,可以在公共云内提供一个或多个控制器(例如CaaS控制器160)。而且,可以针对云提供者的一个或多个客户实施相同或不同的系统架构(例如系统架构100)。还预期的是,系统架构的各个组件可以由相同或不同的供应者或服务提供者来实施。例如,具有一个或多个现有“即服务”产品的云提供者可以利用这种现有产品和/或可以利用第三方服务。
图2是概念性地图示根据示例实施例的容器SaaS门户230的各种功能单元的框图。在本示例的上下文中,容器SaaS门户230包括用户接口232、CaaS REST API服务器235、CaaS工作者236和CaaS资源数据库234。在一个实施例中,用户接口232和CaaS REST API服务器235表示北向接口(或前端),以用于接受REST请求以根据集群蓝图205对集群执行创建、读出、更新和删除(CRUD)操作,以及将它们保留在CaaS资源数据库234中。例如,CaaS RESTAPI服务器235可以为用户(例如CaaS用户102)提供自助API以创建其自己的集群(例如Kubernetes集群),并且为CaaS管理员(例如CaaS管理员101)提供管理员API以创建集群并且将其指派给用户组。
根据一个实施例,关注分离和缩放可以通过以容器SaaS门户230的一个或多个工作者(例如CaaS工作者236)的形式实施后端来解决,该一个或多个工作者负责确保经由容器SaaS门户230的REST接口所请求的操作被实现。在本示例的背景中,内部处理器间通信(IPC)机制(例如gRPC远程过程调用(gRPC))被用于在前端与后端之间进行通信,并且CaaS工作者236可以经由远程数据访问(RDA)上的kubectl通信关于向CaaS控制器(例如CaaS控制器160)的集群请求的信息。
在一个实施例中,例如由标识提供者210支持的基于角色的访问控制(RBAC)可以被用于安全地适应不同用户角色的需要。例如,以该方式,可以在(i)使用容器SaaS门户230来操作和管理客户的经管理容器环境的云提供者操作或管理人员(例如CaaS管理员101)与(ii)针对CaaS和/或KaaS的容器SaaS门户230的客户的(租户的)自助用户(例如CaaS用户102)之间实现分离。
图3是概念性地图示根据示例实施例的CaaS控制器360的各种功能单元的框图。在本示例的背景中,CaaS控制器360包括API服务器360、集群控制器362、容器集群管理器接口363a-n、机器控制器364和各种提供者接口365a-n。CaaS控制器360以及由CaaS控制器360执行的功能性可以由硬件、软件、固件和/或其组合来实施。例如,CaaS控制器360可以以被存储在机器可读介质上、并且由处理资源(例如微控制器、微处理器、(一个或多个)中央处理单元核心、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)可执行的可执行指令的形式和/或以其他类型的电子电路装置的形式实施。
根据一个实施例,集群的创建涉及经由CaaS SaaS门户(例如容器SaaS门户130)选择或输入集群信息305(例如呈集群蓝图(例如集群蓝图105)的形式)。CaaS SaaS门户可以经由对API服务器370的API调用(例如kubectl API调用)来控制CaaS控制器360。在本示例中,API服务器370为由经管理容器服务支持的各种对象(包括例如集群、机器、机器集合和机器部署)提供自定义资源定义(CRD)(例如(一个或多个)集群CRD 372和(一个或多个)机器CRD)。取决于特定实施方式,CRD可以基于Kubernetes社区“集群API”CRD。
集群对象可以提供其相应集群的高级描述,包括因特网协议(IP)地址、域名服务(DNS)信息等。在一个实施例中,机器对象对于物理机器与虚拟机器是不可知的,并且包括期望机器的提供者特定细节。机器集合对象可以被支持以允许指定多个机器的集合。机器部署对象可以被用于自动化更新。
响应于(一个或多个)集群CRD 372,集群控制器362可以将集群操作导引至适当的容器集群管理器接口363a-n。例如,取决于集群信息305内所指示的集群规范,集群控制器362可以使用容器集群管理器接口363a与RKE Kubernetes分布进行交互,或可以使用容器集群管理器接口363n与另一类型的Kubernetes引擎进行交互。
类似地,机器控制器364可以负责将机器操作导引至适当的提供者接口365a-n。取决于在集群信息305内所指示的机器规范,机器控制器364可以使用BM提供者接口365a与BMaaS提供者(例如经由与裸机SaaS门户(例如裸机SaaS门户165)相关联的BMaaS API)进行交互,并且可以使用VM提供者接口365n与VMaaS提供者(例如经由与VM SaaS门户(例如VMSaaS门户145)相关联的VMaaS API)进行交互。例如,机器控制器364可以利用针对基础设施(例如BMaaS、VMaaS或任何IaaS)的Terraform提供者和Ansible手册来管理安装的OS组件(例如Docker、代理、基本配置和初始Helm图表)。
图4图示了根据示例实施例的与蓝图元语言或模式的集群项目400相关联的数据。在本文中所描述的各种实施例中,陈述式模型可以被用于使用集群蓝图(例如集群蓝图105或205)的集群LCM。在一个实施例中,蓝图元语言(例如JavaScript对象表示法(JSON)、YAML不是标记语言(YAML)和/或Terraform语言)或模式包括:(i)集群蓝图;(ii)定义将用作集群蓝图的一部分的不同类型的计算资源的机器蓝图;(iii)为集群定义联网拓扑和特征的联网蓝图;(iv)定义将在集群内使用的存储装置的存储装置蓝图;以及(v)定义将在新创建的集群上预安装的服务的服务蓝图。
在本示例的背景中,集群项目400包括ID、名称、蓝图ID、创建日期、最后更新日期和状态。ID可以是表示集群的唯一标识符(例如通用唯一标识符(UUID))的字符串。名称可以是用户指派的对表示集群的名称的字符串,并且其可以例如被显示在目录中。蓝图ID可以是表示与集群相关联的集群项目的唯一标识符(例如UUID)的字符串。创建日期可以指示创建集群的日期和时间,并且可以以字符串的形式表示。最后更新日期可以指示最后更新集群的日期和时间,并且可以以字符串的形式表示。例如由CaaS控制器(例如CaaS控制器160)监测和更新的状态可以从预定义的枚举值(例如未决、就绪、错误或脱机)集合中被选择,并且可以以字符串的形式被表示。
图5图示了根据示例实施例的与蓝图元语言或模式的蓝图项目500相关联的数据。蓝图项目500可以陈述性地描述期望的集群,该集群例如包括主节点大小和工作节点大小、数量和质量属性(例如可用性和性能)。集群蓝图还可以定义所需的存储和联网特性以及要部署的其他策划服务,例如集群和工作负载可观察性服务。取决于特定实施方式,集群蓝图还可以包括期望状态的服务特定表示以及其他众所周知的表示(例如Terraform基础设施计划)。
在本示例的背景中,蓝图项目500包括ID、名称、版本、k8s版本、创建日期、最后更新日期、机器规范、集群规范、存储规范以及关于期望的主节点和工作节点的信息。如上文参考集群项目所描述,ID可以是表示蓝图的唯一标识符(例如UUID)的字符串。名称可以是表示用户指派的对蓝图的名称的字符串,并且其可以例如被显示在目录中。创建日期可以指示创建蓝图的日期和时间,并且可以以字符串的形式表示。最后更新日期可以指示最后更新蓝图的日期和时间,并且可以以字符串的形式表示。机器规范可以包括指示期望机器的提供者的信息。集群规范可以包括指示期望的容器集群管理器(例如容器集群管理器170)(例如期望的Kubernetes引擎)的信息。存储规范可以包括指示将在集群中使用的存储基础设施(例如存储基础设施112)的类型的信息。
图6图示了根据示例实施例的集群蓝图605。在本示例的背景中,集群蓝图605定义了要经由RKE创建的Kubernetes集群,该RKE具有一个小型主节点和一个中型基于裸机的工作节点。
本文中所描述的各个门户和控制器以及下文参考图7至图9的流程图所描述的处理可以以被存储在机器可读介质上、并且由处理资源(例如微控制器、微处理器、(一个或多个)中央处理单元核心、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)执行的可执行指令的形式和/或以其他类型的电子电路装置的形式实施。例如,处理可以由各种形式的一个或多个虚拟或物理计算机系统(诸如下文参考图10所描述的计算机系统)执行。
图7是图示根据示例实施例的CaaS控制器处理的流程图。在本示例的背景中,云提供者可能已经由特定客户或多个客户雇佣来提供和支持利用其私有云基础设施(例如包括裸机服务器)的经管理容器服务。
在框710处,与表示客户创建容器集群的请求相关联的集群信息由CaaS控制器接收。根据一个实施例,CaaS控制器(例如CaaS控制器160)在客户的私有云内(例如在现场基础设施或客户所使用的托管设施内的基础设施上)运行。CaaS控制器可以从在与CaaS控制器相同或不同的私有云或公共云中运行的容器SaaS门户(例如容器SaaS门户130),以集群蓝图(例如集群蓝图105)的形式接收集群信息。取决于特定实施方式,集群信息可以陈述性地描述期望集群。例如,集群蓝图可以由CaaS用户(例如CaaS用户102)从经由用户接口(例如用户接口232)呈现的预定义的集群蓝图集合中选择,其中所选择的集群蓝图包括主节点大小和工作节点大小、数量和质量属性(例如可用性和/或性能)。集群蓝图还可以定义期望的存储和联网特性以及要部署的其他策划服务,例如集群和工作负载可观察性服务。集群蓝图还可以包括期望状态的系统特定表示以及其他众所周知的表示(例如Terraform基础设施计划)。
在框720处,经由BMaaS提供者接收在客户的私有云内可用的裸机机器的库存。根据一个实施例,库存包含指示一种或多种类型的基础设施(例如基础设施110)的相应资源(例如处理器核心的数量、存储器的数量、网络容量和/或存储性能)的实时信息,基础设施包括当前可用以与支持经管理容器服务结合地使用(例如,当前未被部署以供另一集群使用)的裸机机器集合。取决于特定实施方式,库存可以由CaaS控制器直接地(例如经由BMaaS提供者的裸机SaaS门户)或间接地(例如经由CaaS门户)从BMaaS提供者被请求。
在各种实施例中,库存可以包括或以其他方式被映射到与可用的裸机机器相关联的元数据或其他信息,以便与例如通过优化、最小化或最大化各种因素或条件来优先化、指导、导引或以其他方式影响机器选择结合地使用。元数据或其他信息的非限制性示例包括指示呈相对或绝对度量/评分或原始或标准化数据的形式的一个或多个机器特性/属性(例如成本、功耗、热量、性能、安全性、可靠性等)的信息。
在框730处,裸机机器基于在框720中接收到的库存、在框710中接收到的集群信息以及根据由或表示客户建立的策略所配置的最佳拟合算法来针对集群而被标识。尽管客户具有各种裸机机器配置,但客户不太可能具有足够数目的这种配置来精确匹配所有潜在集群请求的范围。为了示例起见,假设经管理容器服务对以下四个资源使用四个枚举的大小(小型、中型、大型、超大型):处理器、存储器、网络容量和存储性能。在该示例中,存在资源的256个组合,但是随着枚举类别的增加和/或资源的添加,客户不太可能具有256种不同的机器配置可供选择,并且可能性的数目非常迅速地增长。因为客户试图具有满足可能由CaaS用户所期望的每个可能的机器规范的裸机机器配置是不切实际的,所以期望的是具有机器选择过程以促进从可用库存中选择适当的机器以满足用户的请求。例如,虽然许多可用机器可以具有足够的资源来满足由用户的请求所指示的要求,但是机器中的一些机器可以具有超过由期望集群所需要的那些资源的一种或多种类型的资源,或可能需要服务其他集群请求。如此,本文中所描述的实施例提供了基于策略的方法,以允许云提供者和/或客户表达一个或多个机器选择优先级,以将其用作最佳拟合算法的一部分。可以是最佳拟合算法的一部分的最佳拟合处理的非限制性示例在下文参考图8和图9被描述。
在本文中所描述的各种示例的背景中,CaaS用户可以以其中以合理的高水平描述资源的形式指定期望集群。虽然可以使用户指定具有特定性(例如具有特定类型的处理器、特定数量的存储器和特定类型的图形处理单元(GPU)的特定制造者的特定型号)的机器,但对于用户来说,基于更抽象的事物来指定机器通常更高效。取决于对机器进行分类的特定方式,这些类别(例如大小)到被呈现给用户的现实的内部映射可以被用作机器选择过程的一部分。
图8是图示根据示例实施例的最佳拟合处理的流程图。在框810处,基于库存来创建候选机器集合。根据一个实施例,候选机器集合是库存中的具有足够的资源来满足集群请求的可用裸机机器的子集。即,在候选机器集合中的每个候选机器具有的资源等于或大于由请求所指示的资源。候选集合的标识可以涉及使用机器类别到对应资源范围的内部映射,以将在机器类别方面所表达的集群请求变换为资源的显式数量。然后,针对库存中的每个可用机器,可以将满足请求所需的每种资源的数量与机器配置的每种资源的对应数量进行比较,以确定是否将可用机器添加到候选集合。
在框820处,计算候选机器集合中的每个候选机器的过量资源度量。根据一个实施例,可以与候选集合的标识同时地计算过量资源度量。备选地,可以在候选集合已经完成之后执行过量资源度量。计算可以涉及从作为特定机器配置的一部分可用的那些资源中减去满足请求所需的资源数量,以及将每种类型的资源的结果聚合或平均化为单个过量资源度量。备选地,过量资源度量可以包括多个组件——针对每种类型的资源一个组件。
在框830处,针对集群选择候选机器集合中的具有指示最小量的过量资源的过量资源度量的裸机机器。
图9是图示根据另一示例实施例的最佳拟合处理的流程图。在本示例的上下文中,假定附加信息可用于辅助机器选择过程。例如,关于集群请求的寿命的信息可以被包括为集群请求的一部分,或可以基于历史数据来习得。附加地,量化在机器级别或资源级别处的、指示在寿命期间将需要机器或资源来满足后续请求的概率的概率度量的信息,可以与库存一起被包括或基于历史数据习得。框910和920可以如上文参考图8所描述。在框930处,从候选机器集合中选择裸机机器,该裸机机器具有指示最小量的过量资源、并且还最小化了在请求的使用寿命期间将需要过量资源来满足另一请求的概率的过量资源度量。根据一个实施例,该最小化涉及最小化选择的裸机机器的过量资源的概率度量之总和。在备选实施例中,最小化可以作为机器级别来执行,以最小化在请求的使用寿命期间所选择的机器被需要来满足另一请求的概率。
虽然为了简洁起见,上文已经参考图8和图9提供了机器选择方法的一些示例,但本领域的技术人员将了解,本文中所描述的方法的适用性超出了这些特定示例。例如,在与裸机机器相关联的元数据或信息可用的程度上,这种元数据或信息可以由机器选择过程加以考虑,该元数据或信息指示裸机机器的相对功率使用、安全性、可靠性和/或可以被期望作为对机器选择进行优先化的基础的其他因素。此外,在一些实施例中,机器学习和/或大数据分析可以由CaaS控制器使用来揭示用户、工作负载、机器和/或资源的集群请求的模式和/或概率。由于提供者管理站点,并且因此,除其他以外,洞悉用户、由特定用户随时间推移进行的集群请求、随时间推移的机器需求和使用以及在私有云基础设施上正在运行的内容,历史数据可以被单独使用或与机器学习结合使用,以辅助机器选择过程。例如,经管理CaaS系统可以“习得”特定用户通常请求比所讨论的工作负载所必需的机器大的机器,并且结果,经管理CaaS系统可以分配比特定用户所请求的机器稍小的机器。类似地,经管理CaaS系统可以观察到特定用户倾向于请求大小较小的机器的模式,并主动为特定用户提供选择较大机器的选项。备选地或附加地,经管理CaaS系统可以考虑机器和/或资源需求/使用模式,以便以增加针对预期的工作负载需求的机器可用性的可能性、并且因此增加针对云提供者的经管理CaaS的收益率的方式来优化机器分配。
附加机器选择示例包括但不限于:
·使用关于特定机器配置、操作系统、应用程序和/或其组合的安全漏洞的信息来指导机器选择过程
·使用机器学习针对通常观察到的工作负载,来优化机器配置、操作系统参数、应用程序和/或其组合
·使用影响可用性的特性,诸如确保提供冗余的机器具有独立的功率连接和网络路径
·确保将可能需要大量功率的工作负载放置在具有良好的冷却的地点中的机器上(例如将可能发热的工作放在正处于空调通风口处的机器上)
·使用性能特性来优化所分配的资源的性能。例如,如果数据中心中存在多个速度网络,那么确保将需要大量网络带宽的工作负载分配在高速网络上。
·操作成本—一些机器需要更多的功率和冷却来执行相同的工作,而针对需要大量功率的工作负载,将工作负载放置在具有较低功率需求的机器上。
·可靠性—一些机器可能会具有更好的跟踪记录
·过量容量—如果某些工作负载比其他工作负载增长的可能性更大,那么可以通过将这种工作负载放在更大的机器上来避免潜在的未来中断。
图10是图示根据示例实施例的自动缩放处理的高级流程图。在本示例的背景中,可以使用云突发或工作负载转移技术来促进各种自动缩放动作的处置(例如,横向扩展以将组件添加到集群以在更多组件当中分散负载,纵向扩展例如集群的组件以使组件更大或更快以使得组件可以处置更多负载,横向缩容以从集群中去除组件以将负载固定到更少的组件当中,以及将例如集群的组件纵向缩容以使组件更小或更慢,以使得组件可以更经济高效地处置更少的负载)。在一个实施例中,自动缩放策略可以在集群创建时被提供作为集群信息(例如集群蓝图105)的一部分,并且可以指定条件(例如度量值或统计信息和对应时间段的上限和/或下限),以便触发对应自动缩放动作(例如将集群的机器实例横向扩展或横向缩容特定数量)。在一个实施例中,自动缩放策略可以包括规则(例如条件表达式)和当规则被满足时(例如当条件表达式为真时)要执行的对应自动缩放动作。例如,针对特定集群的自动缩放策略可以指示响应于集群中的现有裸机机器的任何中央处理单元(CPU)超过1小时的时段内90%利用率的平均值,而向集群添加附加小型裸机机器。本领域的技术人员将了解,度量的瞬时值或度量的各种其他统计信息(例如平均值、最大值、最小值、标准偏差、百分位数等)可以被用于定义自动缩放策略。
在框1010处,监测与集群的操作相关联的各种度量。根据一个实施例,CaaS控制器(例如CaaS控制器160)周期性地获取来自容器编制系统(例如Kubernetes、Docker Swarm等)的度量(例如处理资源利用率、中央处理单元(CPU)利用率、图形处理单元(GPU)利用率、存储器利用率、入站和/或出站网络业务、每秒的输入/输出操作(IOP)、原始速度、延迟、冗余、磁盘输入/输出(I/O)和事务计数),在所述容器编制系统中集群经由适当的容器集群管理器(例如容器集群管理器170)运行。备选地,容器集群管理器可以周期性地将这种度量推送给CaaS控制器。
在决策框1020处,关于是否已触发自动缩放策略进行确定。根据一个实施例,参考在框1010中所获得的度量来评估自动缩放策略。例如,与适当度量相关的适当值或统计测量可以被用于评估自动缩放策略的一个或多个规则。当满足规则时(例如当条件表达式为真时),处理继续到决策框1030;否则,处理循环回到框1010以继续监测。
在决策框1030处,标识自动缩放动作。根据一个实施例,自动缩放动作可以是横向扩展、纵向扩展、纵向缩容或横向缩容中的一项并且在本示例的背景中,当对应于已经被确定为被满足的规则的自动缩放动作是横向扩展时,然后处理继续进行到框1040。当对应自动缩放动作是纵向扩展时,然后处理继续进行到框1050。当规则触发纵向缩容自动缩放动作时,然后处理继续进行到框1060。当对应自动缩放动作是横向缩容时,然后处理继续进行到框1070。
在框1040处,标识要添加到集群的新机器。根据一个实施例,横向扩展动作标识要添加到所讨论的集群的机器的类型和数量。假定它是要添加到集群的裸机机器,基于要添加的裸机机器的类型和数量,可以执行机器选择过程以标识(一个或多个)新机器。上文已经参考图8和图9描述了可以使用的机器选择过程的非限制性示例。根据一个实施例,横向扩展动作可以涉及云突发或工作负载转移,以处理需求高峰。例如,工作负载可以在客户的私有云内执行,并且在需要满足峰值需求时突发到公共云,这些峰值需求超过了现场基础设施(例如基础设施110)能够满足的需求。以该方式,可以根据需要向经管理容器服务的客户提供灵活的容量。
在框1050处,标识集群中的要用“更大”机器替换的现有机器。根据一个实施例,现有机器可以是包含资源的机器,该资源的(一个或多个)度量触发了纵向扩展动作。例如,现有的“小型”机器可以用大一号的机器(例如“中型”机器)替换。备选地,如果包含资源(其(一个或多个)度量触发了纵向扩展动作)的机器已经是可用的最大机器大小,那么集群内的不同机器(例如“小型”或“中型”机器)可以被标识以供替换。在一些实施例中,如上文参考横向扩展动作的处置所描述的,纵向扩展动作可以涉及用公共云中的物理或虚拟机替换私有云基础设施(例如被定位于现场的裸机机器)。在其他示例中,现有机器和“大型”机器都可以是现场基础设施库存中的裸机机器。
在框1060处,标识集群中的要用“较小”机器替换的现有机器。根据一个实施例,现有机器可以是包含资源的机器,该资源的(一个或多个)度量触发了纵向缩容动作。例如,现有的“大型”机器可以用小一号的机器(例如“中型”机器)替换。备选地,如果包含资源(其(一个或多个)度量触发了纵向缩容动作)的机器已经是可用的最小机器大小,那么集群内的不同机器(例如“中型”机器)可以被标识以供替换。在一些实施例中,可以优先考虑首先减少对公共云基础设施的利用。例如,纵向缩容动作可以涉及用私有云基础设施(例如被定位于现场的裸机机器)替换公共云中的物理机器或虚拟机器。在其他示例中,现有机器和“小型”机器都可以是现场基础设施库存中的裸机机器。
在框1070处,标识要从集群去除的机器。根据一个实施例,横向缩容动作标识要从所讨论的集群去除的机器的类型和数量。假定它是要从集群去除的裸机机器,基于要去除的裸机机器的类型和数量,可以使用类似于上文参考图8和图9所描述的机器选择过程的机器选择过程,以标识要去除的新机器,该去除将引起集群中的剩余机器的过量资源的最小化。根据一个实施例,横向缩容动作可以涉及逆转先前已经执行以处理需求高峰的云突发或工作负载转移。例如,在需求高峰已经过去之后,在减少私有云基础设施(例如被定位于现场的裸机机器)之前,可以首先减少集群对公共云基础设施的利用。以该方式,云提供者可以计量客户对公共云基础设施的实际使用,并且仅为客户针对他们使用的内容进行计费,从而当客户的私有云中没有足够的资源可用时提供灵活并且按需的容量。
在一些实施例中,作为本文中所描述的各种优化、机器学习和大数据分析方法的补充或备选方案,标识新的裸机机器以添加到集群(例如响应于要求标识新机器以添加到集群或替换集群中的现有的“较小”机器的横向扩展或纵向扩展动作),机器学习或大数据分析可以被使用,以智能地选择已经证明针对所讨论的工作负载很好地进行执行的能力的(库存中可用的有限机器的)特定机器配置。类似地,相对于要求标识集群内的现有机器被去除或由“较小”机器替换的横向缩容或纵向缩容动作,标识现有机器以从集群去除可以涉及例如标识特定机器配置,该特定机器配置针对所讨论的(一个或多个)特定工作负载,不能与集群中的其他机器一样好地进行执行。
虽然在“自动缩放”的背景中描述了上述示例,但是本文中所描述的方法被认为等同地适用于“自动放置”。因此,例如,当评估是否将工作从一个机器(M1)(出于一个或多个原因,其对于所讨论的工作而言可能不是最高效的)移动到另一机器(M2)((其对于所讨论的工作而言被视为最佳的)时,在M1上运行的实例的副本可以被带到M2上,并且然后M1可以被关停。
虽然参考与基础设施相关联的各种度量描述了上文示例,但是本领域的技术人员将了解,也可以使用来自环境的各种其他度量。例如,与在决策块1020中所评估的集群的操作相关联的各种度量除其他潜在度量以外可以包括温度、冷却成本(在通风口附近的机器可能会比在远处的机器更便宜地冷却)和/或功耗(一些机器类型每单位工作需要较少的功率)、功率成本(大型安装可能会具有多于一个电源)。
为了说明基于策略的约束可以如何影响自动缩放的具体示例起见,考虑指示当任何现有工作节点的CPU利用率在1小时的时段内大于70%、并且与集群相关联的基于策略的约束表达希望最小化功率成本时应添加“大型”工作节点的自动缩放策略。在这种情境中,当触发自动缩放策略以横向扩展集群时,当评估要添加到集群的新工作节点的候选机器时,可以考虑与候选机器相关联的特定电源。针对纵向扩展、横向缩容和/或纵向缩容动作,可以考虑类似的基于策略的约束。
图11是图示根据示例实施例的涉及标识将被添加到集群的裸机机器的自动缩放处理的流程图。在框1110处,监测与在容器编制系统内表示客户所部署的集群的操作相关联的度量。度量的非限制性示例包括中央处理器(CPU)利用率、存储器利用率、入站和/或出站网络业务、延迟、磁盘输入/输出(I/O)和事务计数。取决于特定实施方式,度量可以由CaaS控制器(例如CaaS控制器160)周期性地或按需从容器编制系统(例如Kubernetes、Docker Swarm等)的需求推动,所讨论的集群正在该容器编制系统中经由适当的容器集群管理器(例如容器集群管理器170)运行。备选地,容器集群管理器可以将这种度量推送给CaaS控制器。
在框1120处,响应于缩放事件基于与集群相关联的监测和自动缩放策略而针对集群被标识出,使得在客户的私有云内运行的BMaaS控制器创建或更新私有云内可用的裸机机器的库存。根据一个实施例,库存包含指示一种或多种类型的基础设施(例如基础设施110)(包括当前可供与支持经管理容器服务结合地使用(例如,当前未被部署以供另一集群使用)的裸机机器集合)的相应资源(例如处理器核心的数量、存储器的数量、网络容量和/或存储性能)的实时信息。取决于特定实施方式,库存可以由CaaS控制器直接地(例如经由BMaaS提供者的裸机SaaS门户)或间接地(例如经由CaaS门户)从BMaaS提供者被请求。
在框1130处,裸机机器基于在框1120中接收到的库存、所讨论的自动缩放策略以及根据由或表示客户建立的策略所配置的最佳拟合算法而被标识出,以供添加到集群。根据一个实施例,希望被添加到集群的机器的类型和数目由已经被触发的自动缩放策略的自动缩放规则标识出。备选地,可以选择要添加的机器的类型,以与已经是集群的一部分的其他现有机器一致。尽管客户可假定地具有在其私有云内所表示的各种裸机机器配置,但客户不太可能具有足够数目的这种配置来精确匹配所有潜在集群请求的范围。如此,本文中所描述的实施例提供了基于策略的方法,以允许云提供者和/或客户表达一个或多个机器选择优先级,以将其用作最佳拟合算法的一部分。可以是最佳拟合算法的一部分的最佳拟合处理的非限制性示例在上文参考图8和图9被描述。
本文中所描述的实施例包括各种步骤,上文已经描述了这些步骤的示例。如下文进一步描述,这些步骤可以由硬件组件执行或可以被实施在机器可执行指令中,这些机器可执行指令可以被用于使用指令编程的通用或专用处理器执行步骤。备选地,可以通过硬件、软件和/或固件的组合来执行至少一些步骤。
本文中所描述的实施例可以被提供作为计算机程序产品,该计算机程序产品可以包括有形地在其上实施指令的机器可读存储介质,这些指令可以被用于对计算机(或其他电子设备)进行编程以执行过程。机器可读介质可以包括但不限于固定(硬盘)驱动器、磁带、软盘、光碟、光盘只读存储器(CD-ROM)和磁光碟、半导体存储器,诸如ROM、PROM、随机存取存储器(RAM)、可编程只读存储器(PROM)、可擦PROM(EPROM)、电可擦PROM(EEPROM)、闪速存储器、磁卡或光卡或适用于存储电子指令(例如计算机编程代码,诸如软件或固件)的其他类型的介质/机器可读介质。
通过将包含根据本文中所描述的示例实施例的代码的一个或多个机器可读存储介质与适当的标准计算机硬件组合以执行其中所包含的代码,可以实践本文中所描述的各种方法。用于实践本文中所描述的各种示例实施例的装置可以涉及一个或多个计算元件或计算机(或单个计算机内的一个或多个处理器)以及包含或具有对根据本文中所描述的各种方法所写码的(多个)计算机程序的网络访问权的存储系统,并且本文中所描述的各种示例实施例的方法步骤可以通过计算机程序产品的模块、例程、子例程或子部分来实现。
图12是根据实施例的计算机系统的框图。在由图12所图示的示例中,计算机系统1200包括处理资源1210,该处理资源被耦合到非暂时性机器可读介质1220,该非暂时性机器可读介质被编码有用以执行私有云网关创建处理的指令。处理资源1210可以包括微控制器、微处理器、(一个或多个)中央处理单元核心、ASIC、FPGA和/或适用于从机器可读介质1220获取和/或执行指令以执行与本文中所描述的各种示例相关的功能的其他硬件设备。附加地或备选地,处理资源1210可以包括用于执行本文中所描述的指令的功能性的电子电路装置。
机器可读介质1220可以是适用于存储可执行指令的任何介质。机器可读介质1220的非限制性示例包括RAM、ROM、EEPROM、闪存存储器、硬盘驱动器、光盘等。机器可读介质1220可以被安置在计算机系统1200内,如图12中所示出,在该情况下,可执行指令可以被视为“被安装”或“被嵌入”在计算机系统1200上。备选地,机器可读介质1220可以是便携式(例如外部)存储介质,并且可以是“安装包”的一部分。在机器可读介质1220上所存储的指令对于实施本文中所描述的方法的至少一部分可以是有用的。
在本示例的上下文中,机器可读介质1220被编码有可执行指令1230-1250的集合。应理解,在交替实施方式中,一个框内所包括的部分或全部可执行指令和/或电子电路可以被包括在图式中所示出的不同框中或未示出的不同框中。
指令1230在执行时使处理资源1210监测与表示在容器编制系统内的客户所部署的集群的操作相关联的度量。在一个实施例中,指令1230通常可以对应于用于执行图11的框1110的指令。
指令1240在执行时使处理资源1210响应于缩放事件基于监测和与集群相关联的自动缩放策略而针对集群被标识出,而使在客户的私有云内运行的BMaaS控制器创建私有云内可用的裸机机器的库存。在一个实施例中,指令1240通常可以对应于用于执行图11的框1120的指令。
指令1250在执行时使处理资源1210基于库存、所讨论的自动缩放策略以及根据由客户建立的策略所配置的最佳拟合算法,来标识将被添加到集群的裸机机器。在一个实施例中,指令1250通常可以对应于用于执行图11的框1130的指令。
在前述描述中,阐述了许多细节以提供对本文中所公开的主题的理解。然而,实施方式可以在没有这些细节中的一些或全部的情况下被实践。其他实施方式可以包括对上文所论述的细节的修改和变化。旨在使所附权利要求书覆盖这种修改和变化。

Claims (18)

1.一种用于监测集群和实施自动缩放策略的系统,包括:
处理资源;以及
非暂时性计算机可读介质,被耦合到所述处理资源,所述非暂时性计算机可读介质中存储有指令,所述指令在由所述处理资源执行时使所述处理资源执行以下操作:
监测与代表在容器编制系统内的经管理容器服务的客户所部署的集群的操作相关联的度量;
响应于缩放事件基于与所述集群相关联的所述监测和自动缩放策略而针对所述集群被标识出,使与私有云相关联的裸机即服务BMaaS提供者创建在所述私有云内可用的多个裸机机器的库存,其中所述策略表达了使所述多个裸机机器的过量资源最小化的目标,其中所述库存包括量化针对所述多个裸机机器中的每个裸机机器的每个资源的值的信息;
基于所述自动缩放策略、所述库存以及根据由所述客户或代表所述客户建立的策略所配置的最佳拟合算法,通过在所述多个裸机机器之间进行选择,来标识将被添加到所述集群的裸机机器;
标识所述多个裸机机器的具有满足由所述自动缩放策略所标识的机器规范的资源类型和数量的子集;
针对所述子集中的每个机器,基于所述机器的资源超出满足所述机器规范所需的资源量,来计算过量资源度量;以及
选择所述子集的具有指示最小量的过量资源的所述过量资源度量的机器作为特定的所述裸机机器。
2.根据权利要求1所述的系统,其中所述指令还使所述处理资源从所述客户的用户接收所述自动缩放策略作为所述集群的定义的一部分,其中所述集群的所述定义包括关于期望由所述集群使用的机器配置的信息。
3.根据权利要求1所述的系统,其中所述缩放事件包括触发所述自动缩放策略的规则的横向扩展动作。
4.根据权利要求1所述的系统,其中当与所述集群相关联的需求超过所述私有云的容量时,所述指令还使所述处理资源通过使用云突发或工作负载转移来为所述客户提供灵活的容量。
5.根据权利要求1所述的系统,其中所述指令还使所述处理资源经由与所述BMaaS提供者相关联的BMaaS门户,请求所述BMaaS提供者创建所述库存。
6.根据权利要求5所述的系统,其中所述集群的部署响应于经由容器即服务CaaS门户所接收到的请求。
7.根据权利要求6所述的系统,其中所述CaaS门户和所述BMaaS门户在公共云内可操作。
8.根据权利要求7所述的系统,其中所述系统包括在所述公共云内可操作的CaaS控制器。
9.根据权利要求1所述的系统,其中所述系统包括在所述私有云内可操作的CaaS控制器。
10.一种存储指令的非暂时性机器可读介质,所述指令当由计算系统的处理资源执行时使所述处理资源执行以下操作:
监测与代表在容器编制系统内的经管理容器服务的客户所部署的集群的操作相关联的度量;
响应于缩放事件基于与所述集群相关联的所述监测和自动缩放策略而针对所述集群被标识出,使与私有云相关联的裸机即服务BMaaS提供者创建在所述私有云内可用的多个裸机机器的库存,其中所述策略表达了使所述多个裸机机器的过量资源最小化的目标,其中所述库存包括量化针对所述多个裸机机器中的每个裸机机器的每个资源的值的信息;
基于所述自动缩放策略、所述库存以及根据由所述客户或代表所述客户建立的策略所配置的最佳拟合算法,通过在所述多个裸机机器之间进行选择,来标识将被添加到所述集群的裸机机器;
标识所述多个裸机机器的具有满足由所述自动缩放策略所标识的机器规范的资源类型和数量的子集;
针对所述子集中的每个机器,基于所述机器的资源超出满足所述机器规范所需的资源量,来计算过量资源度量;以及
选择所述子集的具有指示最小量的过量资源的所述过量资源度量的机器作为特定的所述裸机机器。
11.根据权利要求10所述的非暂时性机器可读介质,其中所述指令还使所述处理资源从所述客户的用户接收所述自动缩放策略作为所述集群的定义的一部分,其中所述集群的所述定义包括关于期望由所述集群使用的机器配置的信息。
12.根据权利要求10所述的非暂时性机器可读介质,其中所述缩放事件包括触发所述自动缩放策略的规则的横向扩展动作。
13.根据权利要求12所述的非暂时性机器可读介质,其中当与所述集群相关联的需求超过所述私有云的容量时,所述指令还使所述处理资源通过使用云突发或工作负载转移来为所述客户提供灵活的容量。
14.根据权利要求10所述的非暂时性机器可读介质,其中所述指令还使所述处理资源经由与所述BMaaS提供者相关联的BMaaS门户,请求所述BMaaS提供者创建所述库存。
15.一种监测集群和实施自动缩放策略的方法,包括:
由经管理容器服务的容器即服务CaaS控制器的处理资源监测与代表在容器编制系统内的所述经管理容器服务的客户所部署的集群的操作相关联的度量;
响应于缩放事件基于与所述集群相关联的所述监测和自动缩放策略而针对所述集群被标识出,由所述处理资源使与私有云相关联的裸机即服务BMaaS提供者创建在所述私有云内可用的多个裸机机器的库存,其中所述策略表达了使所述多个裸机机器的过量资源最小化的目标,其中所述库存包括量化针对所述多个裸机机器中的每个裸机机器的每个资源的值的信息;
由所述处理资源,基于所述自动缩放策略、所述库存以及根据由所述客户或代表所述客户建立的策略所配置的最佳拟合算法,通过在所述多个裸机机器之间进行选择,来标识将被添加到所述集群的裸机机器;
标识所述多个裸机机器的具有满足由所述自动缩放策略所标识的机器规范的资源类型和数量的子集;
针对所述子集中的每个机器,基于所述机器的资源超出满足所述机器规范所需的资源量,来计算过量资源度量;以及
选择所述子集的具有指示最小量的过量资源的所述过量资源度量的机器作为特定的所述裸机机器。
16.根据权利要求15所述的方法,还包括由所述处理资源从所述客户的用户接收所述自动缩放策略作为所述集群的定义的一部分,其中所述集群的所述定义包括关于期望由所述集群使用的机器配置的信息。
17.根据权利要求15所述的方法,其中所述缩放事件包括触发所述自动缩放策略的规则的横向扩展动作。
18.根据权利要求15所述的方法,还包括当与所述集群相关联的需求超过所述私有云的容量时,由所述处理资源通过使用云突发或工作负载转移来使所述客户被提供灵活的容量。
CN202110432500.2A 2020-06-22 2021-04-21 监测集群和实施自动缩放策略的容器即服务控制器 Active CN113900767B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/908,042 2020-06-22
US16/908,042 US11301276B2 (en) 2020-06-22 2020-06-22 Container-as-a-service (CaaS) controller for monitoring clusters and implemeting autoscaling policies

Publications (2)

Publication Number Publication Date
CN113900767A CN113900767A (zh) 2022-01-07
CN113900767B true CN113900767B (zh) 2023-05-02

Family

ID=78823274

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110432500.2A Active CN113900767B (zh) 2020-06-22 2021-04-21 监测集群和实施自动缩放策略的容器即服务控制器

Country Status (3)

Country Link
US (3) US11301276B2 (zh)
CN (1) CN113900767B (zh)
DE (1) DE102021109511A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11625256B2 (en) 2020-06-22 2023-04-11 Hewlett Packard Enterprise Development Lp Container-as-a-service (CAAS) controller for selecting a bare-metal machine of a private cloud for a cluster of a managed container service
US20220027778A1 (en) * 2020-07-22 2022-01-27 International Business Machines Corporation Runtime environment determination for software containers
US20220066904A1 (en) * 2020-08-28 2022-03-03 Red Hat, Inc. Simulating containerized clusters
WO2022056845A1 (en) * 2020-09-18 2022-03-24 Zte Corporation A method of container cluster management and system thereof
US11550633B2 (en) * 2020-10-31 2023-01-10 Nutanix, Inc. Intra-footprint computing cluster bring-up
US11900172B2 (en) 2021-07-30 2024-02-13 Nutanix, Inc. Computing cluster bring-up on public cloud infrastructure using expressed intents
KR102553084B1 (ko) * 2021-12-30 2023-07-07 아콘소프트 주식회사 엣지 클라우드 구성요소의 고속 설치가 가능한 엣지 클라우드 구축 시스템 및 방법
CN114584559A (zh) * 2022-03-07 2022-06-03 浪潮云信息技术股份公司 一种实现声明式管理容器云的方法及装置
CN116225624B (zh) * 2023-05-09 2023-06-30 江苏博云科技股份有限公司 基于kubernets的裸机管理方法、系统和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107567696A (zh) * 2015-05-01 2018-01-09 亚马逊科技公司 计算集群内的资源实例群组的自动扩展

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9769085B2 (en) 2012-05-04 2017-09-19 Citrix Systems, Inc. Systems and methods for adaptive application provisioning
JP2015149578A (ja) 2014-02-06 2015-08-20 株式会社日立製作所 運用管理装置
US9606826B2 (en) * 2014-08-21 2017-03-28 International Business Machines Corporation Selecting virtual machines to be migrated to public cloud during cloud bursting based on resource usage and scaling policies
US10162682B2 (en) 2016-02-16 2018-12-25 Red Hat, Inc. Automatically scaling up physical resources in a computing infrastructure
WO2017200878A1 (en) * 2016-05-17 2017-11-23 Amazon Technologies, Inc. Versatile autoscaling
US10230662B2 (en) * 2016-05-20 2019-03-12 Mitel Networks, Inc. Hybrid cloud deployment for hybrid unified communications
US20190122156A1 (en) 2017-10-20 2019-04-25 International Business Machines Corporation Orchestration Engine Blueprint Milestones
CN110502349A (zh) 2018-05-16 2019-11-26 北京理工大学 一种构建云端容器应用的编排方法
CN114880078A (zh) 2018-06-05 2022-08-09 华为技术有限公司 管理容器服务的方法和装置
US20190097900A1 (en) 2018-11-26 2019-03-28 Bryan J. Rodriguez Zero-configuration cluster and provisioning pipeline for heterogeneous computing nodes
US10860362B2 (en) 2019-01-09 2020-12-08 Vmware, Inc. Methods and apparatus to deploy a hybrid workload domain

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107567696A (zh) * 2015-05-01 2018-01-09 亚马逊科技公司 计算集群内的资源实例群组的自动扩展

Also Published As

Publication number Publication date
US20220222095A1 (en) 2022-07-14
DE102021109511A1 (de) 2021-12-23
US20210397465A1 (en) 2021-12-23
US20230359476A1 (en) 2023-11-09
US11301276B2 (en) 2022-04-12
CN113900767A (zh) 2022-01-07

Similar Documents

Publication Publication Date Title
CN113900767B (zh) 监测集群和实施自动缩放策略的容器即服务控制器
US11625256B2 (en) Container-as-a-service (CAAS) controller for selecting a bare-metal machine of a private cloud for a cluster of a managed container service
US10659387B2 (en) Cloud resource placement optimization and migration execution in federated clouds
US10915369B2 (en) Reward-based admission controller for resource requests in the cloud
US11483384B2 (en) Application migrations
US10372435B2 (en) System, method and program product for updating virtual machine images
CN107548549B (zh) 分布式计算环境中的资源平衡
EP3400535B1 (en) System and method for distributed resource management
US20220276904A1 (en) Job execution with managed compute environments
KR20160102552A (ko) 구성 가능한 컴퓨팅 자원 할당 기술
US11726836B2 (en) Predicting expansion failures and defragmenting cluster resources
US10970113B1 (en) Systems and methods for orchestrating seamless, distributed, and stateful high performance computing
EP3475820A1 (en) Adaptive resource management in distributed computing systems
US20220382603A1 (en) Generating predictions for host machine deployments
US20230145025A1 (en) Modeling cloud inefficiencies using domain-specific templates
US9515905B1 (en) Management of multiple scale out workloads
TWM583564U (zh) 雲端資源管理系統
US20080235705A1 (en) Methods and Apparatus for Global Systems Management
EP3942409B1 (en) Bin-packing virtual machine workloads using forecasted capacity usage
CN116166413A (zh) 针对异构基础设施上的工作负载的生命周期管理
US11507431B2 (en) Resource allocation for virtual machines
US11875191B1 (en) Energy-optimizing placement of resources in data centers
CN112306666A (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