IP Library › Granted Patent US 12,737,237
Granted Patent B2
US 12,737,237 · App. 18/312,447 · Granted Sep 15, 2026

Managing workload requests on Kubernetes clusters based on dynamic requests to a cloud provider and methods and systems for the same

Inventor: Justin Carl Hopper (Maple Valley, WA)
Assignee: T-Mobile USA, Inc.
G06F9/5077G06F9/5055G06F9/5094G06F2209/501G06F2209/5019G06F2209/5022G06F2209/505
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 12,737,237
App. No.
18/312,447
Filed
May 4, 2023
Granted
Sep 15, 2026
Kind
B2
Examiner
ZHAO, BING
Art Unit
2151
USPC
718/104
Abstract

Systems and methods for management of workloads within container orchestration systems associated with cloud systems are disclosed herein. A first request for at least one additional node from a cloud provider can be transmitted. Based on the first request, a first set of one or more node addresses can be received. Control plane network connections between control plane nodes can be configured. A workload processing request can be received. Based on generating an estimate of required resources for the workload processing request, a second request for at least one additional node can be transmitted. Based on receiving a second plurality of node identifiers, a worker node group can be configured.

Claims (124)

1 . A system for flexibly managing workloads on Kubernetes clusters, the system comprising:

a non-transitory, computer-readable medium storing instructions that are executable by one or more processors; and

a first node provisioned by a cloud provider, designated as a control plane node, and configured to:

prior to receiving a workload processing request:

receive, from a user device, a cluster generation request comprising cluster creation information including at least one of (1) a number of nodes requested, (2) a node-type request, or (3) cluster storage requirements;

determine that the cluster generation request is missing information for cluster creation;

in response to determining that the cluster generation request is missing information, generate a user request for the user device to request the missing information;

transmit, based on the cluster generation request and the missing information responsive to the user request, a first request for at least one additional node provisioned by the cloud provider,

wherein the first request includes at least one of: a certificate, a request for a node load-balancer, one or more binaries, or control plane network connection information;

receive, from the cloud provider, a first set of one or more node addresses identifying available nodes that are provisioned by the cloud provider based on the first request;

provision a control plane node group comprising the first node and nodes with addresses corresponding to the first set of one or more node addresses;

configure control plane network connections between control plane nodes of the control plane node group including the first node;

receive, via the one or more processors, the workload processing request, wherein the workload processing request comprises an indication of one or more requested processes;

generate an estimate of required resources for the workload processing request;

based on the generated estimate of required resources for the workload processing request, transmit, to the cloud provider, a second request for at least one worker node,

wherein the second request for at least one worker node comprises the estimate of required resources; and

based on receiving, from the cloud provider and in response to the second request, a second plurality of node addresses, generate a worker node group using an operating system image,

wherein the worker node group enables processing at least some of the requested processes of the workload processing request, and wherein nodes of the worker node group are associated with the second plurality of node addresses.

2 . The system of claim 1 , wherein the first node is configured to:

generate a plurality of node usage metrics,

wherein each node usage metric of the plurality of node usage metrics corresponds to a processing unit usage percentage for each node in the worker node group; and

based on comparing each node usage metric of the plurality of node usage metrics to a threshold usage metric, transmit, to the cloud provider, a third request for modifying nodes provisioned to the system by the cloud provider.

3 . The system of claim 2 , wherein the first node is configured to:

determine a first number of worker nodes that exhibit node usage metrics of the plurality of node usage metrics greater than the threshold usage metric;

based on comparing the first number of worker nodes to a first maximum threshold number, determine a requested number of additional nodes for processing workloads; and

generate the third request for modifying nodes provisioned to the system by the cloud provider to include the requested number of additional nodes for processing workloads.

4 . The system of claim 2 , wherein the first node is configured to:

determine a second number of worker nodes that exhibit node usage metrics of the plurality of node usage metrics lower than the threshold usage metric;

based on comparing the second number of worker nodes to a second maximum threshold number, determine a third number of worker nodes to deactivate; and

deactivate the third number of worker nodes.

5 . The system of claim 1 , wherein the first node is configured to:

receive a request for updating the worker node group,

wherein the request for updating the worker node group comprises an updated operating system image;

determine a plurality of inactive worker nodes,

wherein the plurality of inactive worker nodes are not processing any workloads; and

based on identifying a third plurality of node identifiers corresponding to the plurality of inactive worker nodes, update, for nodes associated with the third plurality of node identifiers, virtual machine software to include the updated operating system image.

6 . The system of claim 1 , wherein the first node is configured to:

receive, from the one or more processors, a request for generation of a cluster of virtual machines,

wherein the request for generation of the cluster of virtual machines comprises configuration metadata;

extract, from the configuration metadata, a number of requested control plane nodes; and

based on comparing the number of requested control plane nodes with a number of the nodes available for use, transmit, to the cloud provider, the first request for at least one additional node.

7 . The system of claim 6 , wherein the first node is configured to:

extract, from the configuration metadata, a type of requested control plane nodes; and

based on comparing the type of requested control plane nodes with a type of the nodes available for use, transmit a third request to the cloud provider for additional nodes of the type of requested control plane nodes.

8 . A system for flexibly managing workloads using a cloud services manager, the system comprising:

a first node comprising a hardware or virtual machine associated with at least one of memory, storage, or computational power, wherein the first node is provisioned by a cloud provider, is external to a control plane node group, and is configured to:

prior to receiving a workload processing request:

receive, from a user device, a cluster generation request comprising cluster creation information including at least one of (1) a number of nodes requested, (2) a node-type request, or (3) cluster storage requirements;

determine that the cluster generation request is missing information for cluster creation;

in response to determining that the cluster generation request is missing information, generate a user request for the user device to request the missing information;

transmit, based on the cluster generation request and the missing information responsive to the user request, a first request for at least one additional node from the cloud provider,

wherein the first request includes at least one of: a certificate, a request for a node load-balancer, one or more binaries, or control plane network connection information;

based on the first request, receive, from the cloud provider, a first set of one or more node addresses identifying available nodes;

configure control plane network connections between control plane nodes of the control plane node group not including the first node,

wherein the control plane node group comprises the nodes with addresses corresponding to the first set of one or more node addresses;

receive the workload processing request,

wherein the workload processing request comprises an indication of requested processes to be executed;

based on generating an estimate of required resources for the workload processing request, transmit, to the cloud provider, a second request for at least one worker node,

based on receiving, from the cloud provider and in response to the second request, a second plurality of node addresses, generate a worker node group using an operating system image,

wherein nodes of the worker node group are associated with the second plurality of node addresses.

9 . The system of claim 8 , wherein the first node is configured to:

generate a plurality of node usage metrics,

wherein each node usage metric of the plurality of node usage metrics corresponds to a processing unit usage percentage for each node in the worker node group; and

based on comparing each node usage metric of the plurality of node usage metrics to a threshold usage metric, transmit, to the cloud provider, a third request for modifying nodes provisioned to the system by the cloud provider.

10 . The system of claim 9 , wherein the first node is configured to:

determine a first number of worker nodes that exhibit node usage metrics of the plurality of node usage metrics greater than the threshold usage metric;

based on comparing the first number of worker nodes to a first maximum threshold number, determine a requested number of additional nodes for processing workloads; and

generate the third request for modifying nodes provisioned to the system by the cloud provider to include the requested number of additional nodes for processing workloads.

11 . The system of claim 9 , wherein the first node is configured to:

determine a second number of worker nodes that exhibit node usage metrics of the plurality of node usage metrics lower than the threshold usage metric;

based on comparing the second number of worker nodes to a second maximum threshold number, determine a third number of worker nodes to deactivate; and

deactivate the third number of worker nodes.

12 . The system of claim 8 , wherein the first node is configured to:

receive a request for updating the worker node group,

wherein the request for updating the worker node group comprises an updated operating system image;

determine a plurality of inactive worker nodes,

wherein the plurality of inactive worker nodes are not processing any workloads; and

based on identifying a third plurality of node identifiers corresponding to the plurality of inactive worker nodes, update, for nodes associated with the third plurality of node identifiers, virtual machine software to include the updated operating system image.

13 . The system of claim 8 , wherein the first node is configured to:

receive a request for generation of a cluster of virtual machines,

wherein the request for generation of the cluster of virtual machines comprises configuration metadata;

extract, from the configuration metadata, a number of requested control plane nodes; and

based on comparing the number of requested control plane nodes with a number of the nodes available for use, transmit, to the cloud provider, the first request for at least one additional node.

14 . The system of claim 13 , wherein the first node is configured to:

extract, from the configuration metadata, a type of requested control plane nodes; and

based on comparing the type of requested control plane nodes with a type of the nodes available for use, transmit a third request to the cloud provider for additional nodes of the type of requested control plane nodes.

15 . A method performed by a first node comprising a hardware or virtual machine associated with at least one of memory, storage, or computational power, the method comprising:

prior to receiving a workload processing request:

receiving, from a user device, a cluster generation request comprising cluster creation information including at least one of (1) a number of nodes requested, (2) a node-type request, or (3) cluster storage requirements;

determining that the cluster generation request is missing information for cluster creation;

in response to determining that the cluster generation request is missing information, generating a user request for the user device to request the missing information;

transmitting, based on the cluster generation request and the missing information responsive to the user request, a first request for at least one node from a cloud provider,

wherein the first request includes at least one of: a certificate, a request for a node load-balancer, one or more binaries, or control plane network connection information;

based on the first request, receiving, from the cloud provider, a first set of one or more node identifiers identifying available nodes;

configuring control plane network connections between control plane nodes of a control plane node group not including the first node,

wherein the control plane node group comprises nodes with addresses corresponding to the first set of one or more node identifiers;

receiving the workload processing request,

wherein the workload processing request comprises an indication of requested processes to be executed;

transmitting, to the cloud provider, a second request for at least one worker node using a generated estimate of required resources for the workload processing request;

configuring, based on the generated estimate, a worker node group to process workloads using a second plurality of node identifiers received from the cloud provider,

wherein nodes of the worker node group are associated with the second plurality of node identifiers.

16 . The method of claim 15 , comprising:

generating a plurality of node usage metrics,

wherein each node usage metric of the plurality of node usage metrics corresponds to a processing unit usage percentage for each node in the worker node group; and

based on comparing each node usage metric of the plurality of node usage metrics to a threshold usage metric, transmitting, to the cloud provider, a third request for modifying available nodes for processing workloads.

17 . The method of claim 16 , comprising:

determining a first number of worker nodes that exhibit node usage metrics of the plurality of node usage metrics greater than the threshold usage metric;

based on comparing the first number of worker nodes to a first maximum threshold number, determining a requested number of additional nodes for processing workloads; and

generating the third request for modifying available nodes for processing workloads to include the requested number of additional nodes for processing workloads.

18 . The method of claim 16 , comprising:

determining a second number of worker nodes that exhibit node usage metrics of the plurality of node usage metrics lower than the threshold usage metric;

based on comparing the second number of worker nodes to a second maximum threshold number, determining a third number of worker nodes to deactivate; and

deactivating the third number of worker nodes.

19 . The method of claim 15 , comprising:

receiving a request for updating the worker node group,

wherein the request for updating the worker node group comprises an updated operating system image;

determining a plurality of inactive worker nodes,

wherein the plurality of inactive worker nodes are not processing any workloads; and

based on identifying a third plurality of node identifiers corresponding to the plurality of inactive worker nodes, updating, for nodes associated with the third plurality of node identifiers, virtual machine software to include the updated operating system image.

20 . The method of claim 15 , comprising:

receiving a request for generation of a cluster of virtual machines,

wherein the request for generation of the cluster of virtual machines comprises configuration metadata;

extracting, from the configuration metadata, a number of requested control plane nodes; and

based on comparing the number of requested control plane nodes with a number of the nodes available for use, transmitting, to the cloud provider, the first request for at least one node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2023
From: HOPPER, JUSTIN CARL
To: T-MOBILE USA, INC.
Reel/Frame 063562/0763 →
Continuity (1)
Related Publication 20240370306A1 · Nov 7, 2024
References Cited (34)
US 8140678B2 · Fleischer et al. · 2012 [cited by applicant]
US 8370448B2 · Galchev · 2013 [cited by applicant]
US 9026658B2 · Xu et al. · 2015 [cited by applicant]
US 9317334B2 · Xu et al. · 2016 [cited by applicant]
US 9634956B2 · Xu et al. · 2017 [cited by applicant]
US 9658895B2 · Breternitz et al. · 2017 [cited by applicant]
US 9847918B2 · Kruse et al. · 2017 [cited by applicant]
US 10055262B1 · Thomas · 2018 [cited by applicant]
US 11228510B2 · Kruse et al. · 2022 [cited by applicant]
US 11616686B1 · Chandrachood · 2023 [cited by examiner]
US 11665090B1 · Banerjee et al. · 2023 [cited by applicant]
US 20060173993A1 · Henseler · 2006 [cited by examiner]
US 20200244721A1 · S et al. · 2020 [cited by applicant]
US 20220164229A1 · Sahasranamam et al. · 2022 [cited by applicant]
US 20220166690A1 · Kruse et al. · 2022 [cited by applicant]
US 20220279034A1 · Amacker et al. · 2022 [cited by applicant]
US 20220318060A1 · Choochotkaew et al. · 2022 [cited by applicant]
US 20230161631A1 · Sharma et al. · 2023 [cited by applicant]
US 20240103896A1 · Jiang · 2024 [cited by examiner]
US 20240231873A1 · Jigalur · 2024 [cited by examiner]
CN 106575245B · 2020 [cited by applicant]
CN 113906716A · 2022 [cited by applicant]
CN 113918270A · 2022 [cited by applicant]
DE 112020000054T5 · 2021 [cited by applicant]
EP 3308271A1 · 2018 [cited by applicant]
EP 3069228B1 · 2018 [cited by applicant]
EP 2583211B1 · 2020 [cited by applicant]
EP 3180694B1 · 2021 [cited by applicant]
WO 2011159842A2 · 2011 [cited by applicant]
WO 2015070236A1 · 2015 [cited by applicant]
WO 2016200921A1 · 2016 [cited by applicant]
WO 2018044341A1 · 2018 [cited by applicant]
WO 2018151661A1 · 2018 [cited by applicant]
WO 2020226979A2 · 2020 [cited by applicant]