IP Library › Granted Patent US 11,102,282
Granted Patent B2
US 11,102,282 · App. 16/519,623 · Granted Aug 24, 2021

Method for managing and allocating resources in a clustered computing environment

Inventors: Alex C. Chatt (Winchester, GB); Andrew Dunnings (Southampton, GB); Samuel Hawker (Winchester, GB); Uchendu Emmanuel Nnorom (Winchester, GB); Simon Francis Page (Southampton, GB)
Assignee: International Business Machines Corporation
H04L67/1008H04L47/803H04L67/1034
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,102,282
App. No.
16/519,623
Filed
Jul 23, 2019
Granted
Aug 24, 2021
Kind
B2
Art Unit
2458
USPC
709/224
Abstract

This present invention is directed towards a container orchestration method such as Kubernetes in which pods monitor themselves to determine if they are likely to require additional resources or vertical scaling within a given timeframe. If the pod determines that it will need additional processing power it notifies the state manager to begin allocating these resources on the same node or a different virtual or physical node before the CPU usage reaches 99%+. The state manager receives this request and allocates the necessary resources ahead of time. When the pod's CPU usage reaches 99%+, the state manager will remove the pod from the existing node and moves the application to the new pod on a different node in which sufficient resources are allocated. This invention brings about efficient utilization of nodes.

Claims (32)

1. A method for managing and allocating computing resources amongst a plurality of computing machines each of which has a plurality of containerized computer applications stored thereon and all of which are stored in a clustered computing environment, the method comprising:

determining a first allocation scheme for allocating computing resources of a first physical computing machine among a plurality of containerized applications configured to run on the first physical computing machine;

allocating the computing resources of the first physical computing machine according to the first allocation scheme wherein each containerized application allocates an initial set of computing resources;

determining, based on receipt of computing resource data from a resource monitor, while running the plurality of the container applications, that a first containerized application needs additional computing resources;

responsive to determining the first containerized application needs additional computing resources, creating a second allocation scheme for allocating the computing resources of the first physical computing machine among a plurality of containerized applications running on the first physical computing machine, wherein the second allocation scheme transfers a set of transferred computing resources from a second containerized application to the first containerized application;

while running of the plurality of containerized applications, re-allocating the computing resources of the first physical computing machine in accordance with the second allocation scheme so that each containerized application is respectively allocated a revised set of computing resources, whereby the first containerized application receives the set of transferred resources from the second containerized application;

deducting, by an adapted resource allocator, computing resources from a second computing machine of the plurality of computing machines and creating a new containerized computer application within the first computing machine;

deducting resources from the newly containerized computer application stored within the first computing machine and assigning the computing resources of the newly containerized computer application received from the second computing machine to the first containerized computer application or the second containerized computer application, if the first computing machine does not have sufficient computing resources available and the second existing computing machine does have sufficient computing resources.

2. The method of claim 1 , further comprising deploying a state manager within a cluster of the clustered computing environment, thereby lowering latency on the communication between pods of the clustered computing environment and the state manager.

3. The method of claim 2 , further comprising replicating the state manager across multiple nodes within the cluster.

4. The method of claim 1 , wherein the computing resource data comprises percent CPU usage.

5. The method of claim 1 , further comprising allocating computing resources at a threshold of percent CPU usage via the adapted resource allocator.

6. The method of claim 1 , further comprising allocating, via the adapted resource allocator, computing resources from one containerized computer application to another of the containerized computer applications stored within the same computing machine if the said computing machine has sufficient computing resources available.

7. The method of claim 1 , further comprising sending error messages or distress signals for individual pods requiring greater computing resources if the first containerized application fails or does not find additional computing resources.

8. The method of claim 1 , wherein each pod reads the percent CPU usage for said pod.

9. A method for managing and allocating computing resources amongst a plurality of computing machines in a clustered computing environment, the method comprising:

deducting, by an adapted resource allocator, computing resources from a first computing machine of the plurality of computing machines in the clustered computing environment;

creating, by the adapted resource allocator, a new containerized computer application within a second computing machine using the computing resources deducted from the first computing machine;

deducting, by the adapted resource allocator, the computing resources from the new containerized computing application; and

assigning, by the adapted resource allocator, the computing resources deducted from the new containerized computing application stored within the second computing machine to another containerized computing application stored within the second computing machine, if the second computing does not have sufficient computing resources available and there exists the first computing machine within the plurality of computing machines with sufficient computing resources.

10. The method of claim 9 , wherein the adapted resource allocator begins allocating resources from the new containerized computing application of the new computing machine to the another containerized computer application at a threshold percentage of CPU usage.

11. The method of claim 9 , further comprising:

deploying a state manager within a cluster of the clustered computing environment, lowering latency in the communication between pods of the cluster and the state manager.

12. The method of claim 11 , further comprising:

replicating the state manager across multiple nodes within the cluster.

13. The method of claim 9 , further comprising:

determining, by the adapted resource allocator, based on receipt of computing resource data that the another containerized application, that the another containerized application needs additional computing resources.

14. The method of claim 13 , wherein the computing resource data comprises percent usage of a CPU.

15. The method of claim 14 , wherein assigning the computing resources deducted from the new containerized computing application stored within the second computing machine occurs at a threshold of the percent CPU usage.

16. The method of claim 9 , further comprising:

sending error messages or distress signals for individual pods requiring greater computing resources if the second computing machine fails or does not find the additional computing resources.

17. The method of claim 14 , wherein each pod of the clustered computing environment reads the percent usage of the CPU.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2019
From: CHATT, ALEX C.; DUNNINGS, ANDREW; HAWKER, SAMUEL; NNOROM, UCHENDU EMMANUEL; PAGE, SIMON FRANCIS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049834/0912 →
Continuity (2)
Continuation 16277403 · Feb 15, 2019
Related Publication 20200267212A1 · Aug 20, 2020
Cited By (6)
US 12,339,750 US 12,561,125 US 12,566,638 US 12,632,382 US 12,675,326 US 12,675,368