US2025086016A1PendingUtilityA1

Scheduling optimization for containerized instances

Assignee: RED HAT INCPriority: Sep 8, 2023Filed: Sep 8, 2023Published: Mar 13, 2025
Est. expirySep 8, 2043(~17.1 yrs left)· nominal 20-yr term from priority
G06N 20/00G06F 9/455G06F 2009/4557G06F 9/5033G06F 9/5088
60
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A computing device determines a state of each containerized instance of containerized instances executing on a compute node in a cluster of compute nodes. The computing device determines a state of each compute node in the cluster. The computing device calculates, for each respective compute node in the cluster, a cost associated with each containerized instance on the respective compute node based on the state of each containerized instance and the state of each compute node. The computing device creates a list of preferred compute nodes for each containerized instance to execute on based on the state of each containerized instance, the state of each compute node, and the cost associated with each containerized instance for each compute node in the cluster. The computing device causes, based on the list, a first containerized instance of the containerized instances to be moved to a first compute node identified in the list.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method, comprising:
 determining, by a container orchestration system (COS) executing on a computing device, a first current state of each containerized instance of a plurality of containerized instances executing on a compute node in a cluster of compute nodes;   determining, by the COS, a first current state of each compute node in the cluster of compute nodes;   calculating, by the COS, for each respective compute node in the cluster of compute nodes, a first cost associated with each containerized instance on the respective compute node based on the first current state of each containerized instance and the first current state of each compute node;   creating, by the COS, a list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes; and   causing, by the COS based on the list of preferred compute nodes, a first containerized instance of the plurality of containerized instances to be moved to a first compute node identified in the list of preferred compute nodes.   
     
     
         2 . The method of  claim 1 , further comprising:
 determining that a second containerized instance of the plurality of containerized instances is to be initiated on a compute node in the cluster of compute nodes;   accessing the list of preferred compute nodes; and   causing the second containerized instance to be initiated on a second compute node in the cluster of compute nodes based on the list of preferred compute nodes.   
     
     
         3 . The method of  claim 2 , further comprising:
 prior to accessing the list of preferred compute nodes, determining a second current state of each containerized instance of the plurality of containerized instances executing on a compute node in the cluster of compute nodes;   determining a second current state of each compute node in the cluster of compute nodes;   calculating, for each respective compute node in the cluster of compute nodes, a second cost associated with each containerized instance on the respective compute node based on the second current state of each containerized instance and the second current state of each compute node; and   updating the list of preferred compute nodes for each containerized instance to execute on based on the second current state of each containerized instance, the second current state of each compute node, and the second cost associated with each containerized instance for each compute node in the cluster of compute nodes.   
     
     
         4 . The method of  claim 1 , wherein determining the first current state of each containerized instance of the plurality of containerized instances executing on a compute node in the cluster of compute nodes comprises obtaining, from each containerized instance of the plurality of containerized instances, resources of each respective containerized instance of the plurality of containerized instances. 
     
     
         5 . The method of  claim 1 , wherein determining the first current state of each compute node in the cluster of compute nodes comprises obtaining, from each compute node in the cluster of compute nodes, resources of each respective compute node in the cluster of compute nodes. 
     
     
         6 . The method of  claim 1 , wherein calculating, for each respective compute node in the cluster of compute nodes, the first cost associated with each containerized instance on the respective compute node based on the first current state of each containerized instance and the first current state of each compute node comprises:
 determining costs for each containerized instance with the respective first current state to execute on the respective compute node in the cluster of compute nodes with the respective first current state;   determining costs for the respective compute node with the respective first current state to execute in the cluster of compute nodes;   determining costs to move each containerized instance to the respective compute node; and   calculating, for the respective compute node, the first cost associated with each containerized instance on the respective compute node based on the costs for each containerized instance, the costs for the respective compute node, and the costs to move each containerized instance to the respective compute node.   
     
     
         7 . The method of  claim 6 , wherein:
 the costs for each containerized instance with the respective first current state to execute on the respective compute node in the cluster of compute nodes comprise computing resources for executing the respective containerized instance on the respective compute node in the cluster of compute nodes;   the costs for the respective compute node with the respective first current state to execute in the cluster of compute nodes comprise computing resources for executing the respective compute node in the cluster of compute nodes; and   the costs to move each containerized instance to the respective compute node comprise computing resources to move the respective containerized instance to the respective compute node.   
     
     
         8 . The method of  claim 1 , wherein creating the list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes comprises:
 receiving, by a machine-learned model, the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes;   determining, by the machine-learned model, a policy for each containerized instance based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes; and   outputting, by the machine-learned model, the list of preferred compute nodes based on the policy.   
     
     
         9 . The method of  claim 8 , wherein the machine-learned model comprises a reinforcement learning algorithm. 
     
     
         10 . The method of  claim 9 , further comprising:
 determining, by the reinforcement learning algorithm based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes, actions to improve one or more of the first current state of each containerized instance and the first current state of each compute node.   
     
     
         11 . The method of  claim 1 , wherein the list of preferred compute nodes comprises a list of a preferred compute node in the cluster of compute nodes for each containerized instance of the plurality of containerized instances. 
     
     
         12 . The method of  claim 1 , further comprising:
 obtaining a performance constraint associated with the first current state of each containerized instance;   wherein creating the list of preferred compute nodes for each containerized instance to execute on comprises creating the list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, the first cost associated with each containerized instance for each compute node in the cluster of compute nodes, and the performance constraint.   
     
     
         13 . The method of  claim 1 , further comprising:
 obtaining a performance constraint associated with the first cost associated with each containerized instance for each compute node in the cluster of compute nodes;   wherein creating the list of preferred compute nodes for each containerized instance to execute on comprises creating the list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, the first cost associated with each containerized instance for each compute node in the cluster of compute nodes, and the performance constraint.   
     
     
         14 . The method of  claim 1 , further comprising:
 determining a change in resources available on one or more compute nodes in the cluster of compute nodes;   in response to determining the change in resources available, determining a second current state of each containerized instance of the plurality of containerized instances executing on a compute node in the cluster of compute nodes;   determining a second current state of each compute node in the cluster of compute nodes;   calculating, for each respective compute node in the cluster of compute nodes, a second cost associated with each containerized instance on the respective compute node based on the second current state of each containerized instance and the second current state of each compute node; and   updating the list of preferred compute nodes for each containerized instance to execute on based on the second current state of each containerized instance, the second current state of each compute node, and the second cost associated with each containerized instance for each compute node in the cluster of compute nodes.   
     
     
         15 . The method of  claim 14 , wherein updating the list of preferred compute nodes for each containerized instance to execute on comprises:
 receiving, by a machine-learned model, the second current state of each containerized instance, the second current state of each compute node, and the second cost associated with each containerized instance for each compute node in the cluster of compute nodes;   determining, by the machine-learned model, a policy for each containerized instance based on the second current state of each containerized instance, the second current state of each compute node, and the second cost associated with each containerized instance for each compute node in the cluster of compute nodes; and   outputting, by the machine-learned model, the list of preferred compute nodes based on the policy.   
     
     
         16 . A computing device, comprising:
 a memory; and   a processor device coupled to the memory, the processor device to:
 determine a first current state of each containerized instance of a plurality of containerized instances executing on a compute node in a cluster of compute nodes; 
 determine a first current state of each compute node in the cluster of compute nodes; 
 calculate, for each respective compute node in the cluster of compute nodes, a first cost associated with each containerized instance on the respective compute node based on the first current state of each containerized instance and the first current state of each compute node; 
 create a list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes; and 
 cause, based on the list of preferred compute nodes, a first containerized instance of the plurality of containerized instances to be moved to a first compute node identified in the list of preferred compute nodes. 
   
     
     
         17 . The computing device of  claim 16 , wherein the processor device is further to:
 determine that a second containerized instance of the plurality of containerized instances is to be initiated on a compute node in the cluster of compute nodes;   access the list of preferred compute nodes; and   cause the second containerized instance to be initiated on a second compute node in the cluster of compute nodes based on the list of preferred compute nodes.   
     
     
         18 . The computing device of  claim 16 , wherein the processor device is further to:
 prior to accessing the list of preferred compute nodes, determine a second current state of each containerized instance of the plurality of containerized instances executing on a compute node in the cluster of compute nodes;   determine a second current state of each compute node in the cluster of compute nodes;   calculate, for each respective compute node in the cluster of compute nodes, a second cost associated with each containerized instance on the respective compute node based on the second current state of each containerized instance and the second current state of each compute node; and   update the list of preferred compute nodes for each containerized instance to execute on based on the second current state of each containerized instance, the second current state of each compute node, and the second cost associated with each containerized instance for each compute node in the cluster of compute nodes.   
     
     
         19 . The computing device of  claim 16 , wherein, to calculate, for each respective compute node in the cluster of compute nodes, the first cost associated with each containerized instance on the respective compute node based on the first current state of each containerized instance and the first current state of each compute node, the processor device is further to:
 determine costs for each containerized instance with the respective first current state to execute on the respective compute node in the cluster of compute nodes with the respective first current state;   determine costs for the respective compute node with the respective first current state to execute in the cluster of compute nodes;   determine costs to move each containerized instance to the respective compute node; and   calculate, for the respective compute node, the first cost associated with each containerized instance on the respective compute node based on the costs for each containerized instance, the costs for the respective compute node, and the costs to move each containerized instance to the respective compute node.   
     
     
         20 . A non-transitory computer-readable storage medium that includes computer-executable instructions that, when executed, cause one or more processor devices to:
 determine a first current state of each containerized instance of a plurality of containerized instances executing on a compute node in a cluster of compute nodes;   determine a first current state of each compute node in the cluster of compute nodes;   calculate for each respective compute node in the cluster of compute nodes, a first cost associated with each containerized instance on the respective compute node based on the first current state of each containerized instance and the first current state of each compute node;   create a list of preferred compute nodes for each containerized instance to execute on based on the first current state of each containerized instance, the first current state of each compute node, and the first cost associated with each containerized instance for each compute node in the cluster of compute nodes; and   cause, based on the list of preferred compute nodes, a first containerized instance of the plurality of containerized instances to be moved to a first compute node identified in the list of preferred compute nodes.

Join the waitlist — get patent alerts

Track US2025086016A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.