IP Library › Granted Patent US 11,102,281
Granted Patent B2
US 11,102,281 · App. 16/277,403 · Granted Aug 24, 2021

Tool 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,281
App. No.
16/277,403
Filed
Feb 15, 2019
Granted
Aug 24, 2021
Kind
B2
Art Unit
2458
USPC
709/224
Abstract

This present invention is directed towards a container orchestration system 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 (42)

1. A computer program product encoded in a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform 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 computer program product comprising:

a resource monitor adapted to communicate with and receive computing resource data from each of the computing machines; and

an adapted resource allocator structured, programmed and/or configured to allocate the computing resources by creating a new computing machine and a new containerized computing application within the new computing machine, from which the computing resources are deducted if sufficient computing resources on any of the plurality of computing machines do not exist.

2. The computer program product of claim 1 , wherein a state manager is deployed within the cluster.

3. The computer program product of claim 2 , wherein the state manager is replicated across multiple nodes within the cluster.

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

5. The computer program product of claim 1 , wherein the adapted resource allocator begins allocating computing resources at a threshold of percent CPU usage.

6. The computer program product of claim 1 , wherein the adapted resource allocator is structure, programmed, and/or configured to allocate 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 computer program product of claim 6 , wherein the adapted resource allocator is structure, programmed, and/or configured to allocate computing resources of the containerized computer application from one of a plurality of pre-defined buckets of resources comprising: 2 GB, 4 GB, or 8 GB of memory.

8. The computer programming product of claim 1 , wherein if the program fails or does not find additional computing resources, the computer program sends at least one of error messages or distress signals for individual pods requiring greater computing resources.

9. A computer system comprising:

a processor; and

a computer-readable storage media coupled to the processor, wherein the computer readable storage media contains program instructions executing a computer-implemented method comprising the steps of:

determining a first allocation scheme for allocating computing resources of a first physical computing machine among a plurality of containerized applications stored in a clustered computing environment and 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 the resource monitor while running the plurality of the containerized application, that a first containerized application needs additional computing resources;

responsive to determining the first containerized application needs the additional computing resources, creating a second allocation scheme for allocating the computing resources of the first physical computing machine among the 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 of the plurality of containerized resources 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, whereby the first containerized application receives the set of transferred computing 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.

10. The computer system of claim 9 , further comprising:

deploying, by the processor, 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.

11. The computer system of claim 10 , further comprising:

replicating the state manager across multiple nodes within the cluster.

12. The computer system of claim 9 , wherein the computing resource data comprises percent usage of a CPU.

13. The computer system of claim 9 further comprising:

allocating the computing resources at a threshold of percent CPU usage via the adapted resource allocator.

14. The computer system of claim 9 , further comprising:

allocating, via the adapted resource allocator, computing resources by creating a new computing machine and a new containerized computer application within the new computing machine from which computing resources may then be deducted if there does not exist sufficient computing resources on the same computing machine or any of the plurality of existing computing machines.

15. The computer system of claim 9 , further comprising:

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

16. The computer system of claim 12 , wherein each pod of the clustered computing environment reads the percent usage of the CPU.

17. A computer system comprising:

a processor; and

a computer-readable storage media coupled to the processor, wherein the computer readable storage media contains program instructions executable by the processor to perform a method for managing and allocating computing resources amongst a plurality of computing machines, said plurality of computing machines comprising a plurality of containerized computer applications stored thereon within a clustered computing environment, said program instructions comprising:

instructions to a resource monitor adapted to communicate with and receive computing resource data from each of the computing machines; and

instructions to an adapted resource allocator structured, programmed and/or configured to:

deduct computing resources from a first computing machine of the plurality of computing machines,

create a new containerized computer application within a second computing machine using the computing resources deducted from the first computing machine,

deduct the computing resources from the new containerized computing application, and

assign 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.

18. The computer system of claim 17 , 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2019
From: CHATT, ALEX C.; DUNNINGS, ANDREW; HAWKER, SAMUEL; NNOROM, UCHENDU EMMANUEL; PAGE, SIMON FRANCIS
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 048347/0698 →
Continuity (1)
Related Publication 20200267210A1 · Aug 20, 2020
Cited By (4)
US 12,339,750 US 12,561,125 US 12,675,368 US 12,699,601