Underprovisioning in containerized environments
AssigneeCAST AI Group, Inc.
InventorLeonid Kuperman
Life of this patent
Estimating the term…
Abstract
A system or a method for optimizing resource allocation in a cloud computing environment. The system determines an amount of resource to be allocated for a container workload at an under-provisioned level and schedules the workload onto a node among a plurality of nodes that has the determined amount of resource. Performance metrics of the nodes are continuously monitored to determine whether each of the plurality of nodes is busy. Responsive to determining that the node is busy, the system cordons the node by updating the node's metadata to prevent scheduling new workloads while allowing existing workloads to continue running. In some embodiments, container workloads may be evicted from the cordoned node and migrated to another node with sufficient resources.
Claims20
A method for optimizing resource allocation in a cloud computing environment, the method comprising:
- determining an amount of resource to be allocated for a container workload at an under-provisioned level;
- scheduling the container workload onto a node among a plurality of nodes that has the determined amount of resources;
- monitoring one or more performance metrics of the plurality of nodes,
- determining whether the node is busy based on the monitored performance metrics;
- responsive to determining that the node is busy, cordoning the node by directly modifying node specification metadata to set an unschedulable flag to indicate a state where no new workloads can be scheduled on the node while allowing existing workloads to continue operating;
- evicting at least one container workload from the cordoned node;
- and
- in response to determining that the node is no longer busy after cordoning by accessing performance metrics of the node following cordoning and determining resource usage is below a predetermined threshold, uncordoning the node by modifying the metadata associated with the state of the node to indicate a state that enables scheduling of new workloads on the node.
A non-transitory storage medium having instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to perform steps comprising:
- determining an amount of resource to be allocated for a container workload at an under-provisioned level;
- scheduling the container workload onto a node among a plurality of nodes that has the determined amount of resources;
- monitoring one or more performance metrics of the plurality of nodes,
- determining whether the node is busy based on the monitored performance metrics;
- responsive to determining that the node is busy, cordoning the node by directly modifying node specification metadata to set an unschedulable flag to indicate a state where no new workloads can be scheduled on the node while allowing existing workloads to continue operating;
- evicting at least one container workload from the cordoned node;
- and
- in response to determining that the node is no longer busy after cordoning by accessing performance metrics of the node following cordoning and determining resource usage is below a predetermined threshold, uncordoning the node by modifying the metadata associated with the state of the node to indicate a state that enables scheduling of new workloads on the node.
A computing system comprising:
- one or more processors;
- and
- a non-transitory storage medium having instructions encoded thereon that, when executed by one or more processors, cause the one or more processors to perform steps comprising:
- determining an amount of resource to be allocated for a container workload at an under-provisioned level;
- scheduling the container workload onto a node among a plurality of nodes that has the determined amount of resources;
- monitoring one or more performance metrics of the plurality of nodes,
- determining whether the node is busy based on the monitored performance metrics;
- responsive to determining that the node is busy, cordoning the node by directly modifying node specification metadata to set an unschedulable flag to indicate a state where no new workloads can be scheduled on the node while allowing existing workloads to continue operating;
- evicting at least one container workload from the cordoned node;
- and
- in response to determining that the node is no longer busy after cordoning by accessing performance metrics of the node following cordoning and determining resource usage is below a predetermined threshold, uncordoning the node by modifying the metadata associated with the state of the node to indicate a state that enables scheduling of new workloads on the node.
Dependencies are inferred from the claim text.