# US 12,001,865 B2 · Container-as-a-service (CAAS) controller for private cloud container cluster management

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,865 B2
- Document ID: US12001865B2
- Status: Granted
- Kind: B2
- Application number: 18/188,562
- Filed: 2023-03-23
- Published: 2023-07-20
- Granted: 2024-06-04
- Earliest claimed: 2020-06-22
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Bret Alan McKee; Peter Erik Mellquist; Frederick Miles Roeling
- Web page: https://patentgrep.com/patent/US12001865B2

## CPC

- G06F 9/45541: {Bare-metal, i.e. hypervisor runs directly on hardware}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- H04L 67/14: Session management (for real-time applications in data packet communications networks H04L65/1066)
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2209/505: Clust
- G06F 2209/508: Monitor
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments described herein are generally directed to a controller of a managed container service that facilitates selection among bare metal machines available within a private cloud. According to an example, a request is received by a Container-as-a-Service controller from a CaaS portal to create a cluster based at least in part on resources of a private cloud of a customer of a managed container service. An inventory of bare-metal machines available within the private cloud is received from a Bare-Metal-as-a-Service (BMaaS) provider associated with the private cloud. A particular bare metal machine is identified for the cluster by selecting among the available bare-metal machines based on cluster information associated with the request, the inventory, and a best fit algorithm configured in accordance with a policy established by the customer.

## Claims

### Claim 1

A system comprising:
a Container-as-a-Service (CaaS) hardware controller configured to:
receive cluster information associated with a request to create a container cluster on behalf of a customer, the cluster information comprising master and worker node sizes for the container cluster;
receive an inventory of bare metal machines available within a private cloud of the customer;
identify a particular bare metal machine for the container cluster based on the inventory of the bare metal machines, the cluster information, and a best fit algorithm, the best fit algorithm configured in accordance with a policy established by the customer, wherein the particular bare metal machine is identified by:
creating a set of candidate machines based on the inventory of the bare metal machines, the set of candidate machines comprising a subset of the bare metal machines that have sufficient resources to satisfy the request;
calculating an excess resource metric for each candidate machine in the set of candidate machines; and
selecting, as the particular bare metal machine, a particular candidate machine in the set of candidate machines having the excess resource metric indicative of a least amount of excess resources; and
create the container cluster on the particular bare metal machine.

### Claim 2 (depends on 1)

The system of claim 1, wherein the CaaS hardware controller receives the cluster information from a Container-as-a-Service (CaaS) portal, and wherein the CaaS hardware controller receives the inventory of the bare metal machines from a Bare-Metal-as-a-Service (BMaaS) portal.

### Claim 3 (depends on 2)

The system of claim 2, wherein the CaaS hardware controller, the CaaS portal, and the BMaaS portal are operable within a public cloud.

### Claim 4 (depends on 2)

The system of claim 2, wherein the CaaS hardware controller is operable within the private cloud, and wherein the CaaS portal and the BMaaS portal are operable within a public cloud.

### Claim 5 (depends on 1)

The system of claim 1, further comprising:
a Bare-Metal-as-a-Service (BMaaS) hardware controller configured to instantiate the container cluster by installing firmware and software onto the particular bare metal machine; and
a Virtual Machine as a Service (VMaaS) hardware controller configured to create a control plane node for the container cluster.

### Claim 6 (depends on 1)

The system of claim 1, wherein the cluster information further comprises a version of the container cluster.

### Claim 7 (depends on 1)

The system of claim 1, wherein the cluster information further comprises bare metal aspects of the container cluster, virtual machine aspects of the container cluster, storage aspects of the container cluster, and networking aspects of the container cluster.

### Claim 8 (depends on 1)

The system of claim 1, wherein the request further comprises a lifespan of the container cluster, wherein the inventory of the bare metal machines further comprises information that quantifies a probability metric, for each candidate machine of the set of candidate machines, indicative of a probability that the candidate machine will be needed to satisfy a subsequent request during the lifespan, and wherein the particular candidate machine has the probability metric indicative of a lowest probability the excess resources will be needed to satisfy another request during the lifespan of the container cluster.

### Claim 9 (depends on 1)

The system of claim 1, wherein the CaaS hardware controller is further configured to:
learn a historical pattern associated with a user of the customer, wherein the particular bare metal machine for the container cluster is further identified based on the historical pattern.

### Claim 10

A method comprising:
receiving, by a Container-as-a-Service (CaaS) controller, cluster information associated with a request to create a container cluster on behalf of a customer, the cluster information comprising master and worker node sizes for the container cluster and a version of the container cluster;
receiving, by the CaaS controller, an inventory of bare metal machines available within a private cloud of the customer;
identifying, by the CaaS controller, a particular bare metal machine for the container cluster based on the inventory of the bare metal machines, the cluster information, and a best fit algorithm, the best fit algorithm configured in accordance with a policy established by the customer, wherein identifying the particular bare metal machine for the container cluster includes:
creating a set of candidate machines based on the inventory of the bare metal machines, the set of candidate machines comprising a subset of the bare metal machines that have sufficient resources to satisfy the request;
calculating an excess resource metric for each candidate machine in the set of candidate machines; and
selecting, as the particular bare metal machine, a particular candidate machine in the set of candidate machines having the excess resource metric indicative of a least amount of excess resources; and
creating, by the CaaS controller, the container cluster on the particular bare metal machine.

### Claim 11 (depends on 10)

The method of claim 10, wherein the cluster information is received from a Container-as-a-Service (CaaS) portal, wherein the inventory of the bare metal machines is received from a Bare-Metal-as-a-Service (BMaaS) portal, and wherein the CaaS controller, the CaaS portal, and the BMaaS portal are operable within a public cloud.

### Claim 12 (depends on 10)

The method of claim 10, wherein the cluster information is received from a Container-as-a-Service (CaaS) portal, wherein the inventory of the bare metal machines is received from a Bare-Metal-as-a-Service (BMaaS) portal, wherein the CaaS controller is operable within the private cloud, and wherein the CaaS portal and the BMaaS portal are operable within a public cloud.

### Claim 13 (depends on 10)

The method of claim 10, further comprising:
interacting, by the CaaS controller, with a Bare-Metal-as-a-Service (BMaaS) controller to instantiate the container cluster by installing firmware and software onto the particular bare metal machine; and
interacting, by the CaaS controller, with a Virtual Machine as a Service (VMaaS) controller to create a control plane node for the container cluster.

### Claim 14 (depends on 10)

The method of claim 10, wherein the cluster information further comprises bare metal aspects of the container cluster, virtual machine aspects of the container cluster, storage aspects of the container cluster, and networking aspects of the container cluster.

### Claim 15 (depends on 10)

The method of claim 10, wherein the request further comprises a lifespan of the container cluster, wherein the inventory of the bare metal machines further comprises information that quantifies a probability metric, for each candidate machine of the set of candidate machines, indicative of a probability that the candidate machine will be needed to satisfy a subsequent request during the lifespan, and wherein the particular candidate machine has the probability metric indicative of a lowest probability the excess resources will be needed to satisfy another request during the lifespan of the container cluster.

### Claim 16 (depends on 10)

The method of claim 10, further comprising:
learning, by the CaaS controller, a historical pattern associated with a user of the customer, wherein the particular bare metal machine for the container cluster is further identified based on the historical pattern.

### Claim 17

A non-transitory machine readable medium storing instructions that when executed by a processing resource, cause the processing resource to:
receive cluster information associated with a request to create a container cluster on behalf of a customer, the cluster information comprising master and worker node sizes for the container cluster;
receive an inventory of bare metal machines available within a computing cloud;
receive a learned historical pattern associated with a user of the customer;
identify a particular bare metal machine for the container cluster based on the inventory of the bare metal machines, the cluster information, the learned historical pattern, and a best fit algorithm, the best fit algorithm configured in accordance with a policy established by the customer, wherein the particular bare metal machine is identified by:
creating a set of candidate machines based on the inventory of the bare metal machines, the set of candidate machines comprising a subset of the bare metal machines that have sufficient resources to satisfy the request;
calculating an excess resource metric for each candidate machine in the set of candidate machines; and
selecting, as the particular bare metal machine, a particular candidate machine in the set of candidate machines having the excess resource metric indicative of a least amount of excess resources; and
create the container cluster on the particular bare metal machine.
