Physical node optimizer in a containerized application management system
The described technology is generally directed towards minimizing energy requirements of nodes/servers during periods of low resource usage by collection of pods deployed on the nodes. An application can be deployed on a set of nodes via a set of pods. During a period(s) of low application resource requirement, a subset of the available nodes can be powered down to reduce the operational overhead/energy consumption of the set of nodes. Prior to powering down, any pods operating of the subset of nodes can be redeployed to nodes that are to remain powered, thereby freeing up the subset of nodes to be powered down. Operation of the subset of powered nodes can be monitored to determine the pods exerting operational pressure on the resources, whereby the subset of nodes currently powered down can be powered up to make their resources available to reduce the operational pressure of the pods.
1 . A system, comprising:
at least one processor; and at least one memory that stores executable instructions that, when executed by the at least one processor, facilitate performance of operations, comprising:
monitoring a first operational parameter of a first node having a first set of resources comprising at least one first pod deployed thereon, wherein the first operational parameter relates to a first percentage utilization of a first resource in the first set of resources;
monitoring a second operational parameter of a second node having a second set of resources comprising at least one second pod deployed thereon, wherein the second operational parameter relates to a second percentage utilization of a second resource in the second set of resources, wherein the first node and the second node are included in a deployment of a containerized application management system;
based on the monitoring, determining operation of an application serviced by a combined operation of the first resource and the second resource operating in combination to service the application;
determining, based on the first percentage utilization of the first resource and the second percentage utilization of the second resource, an average percentage utilization for the first resource and the second resource;
determining, based on the average percentage utilization, whether the combination of the first node and the second node is operating efficiently according to a defined efficiency metric;
in response to determining that a combined implementation of the first set of resources at the first node and the second set of resources at the second node is at or below the defined efficiency metric, redeploying the at least one second pod in the second set of resources from the second node to the first node;
as a result of which no pods are operating on the second node, generating an instruction to power down the second node; and
transmitting the instruction to a power controller located at the second node;
receiving a response indicating the second node has been powered down, as a result of which servicing of the application is performed by the first node, and powering down of the second node increases operational efficiency of the system in servicing the application.
2 . The system of claim 1 , wherein the monitoring of the first operational parameter of the first node and the second operational parameter of the second node is performed according to a schedule defined prior to initiating the monitoring.
3 . The system of claim 1 , wherein the first operational parameter comprises at least one of a first memory usage at the first node or a first processing capacity available at the first node, and wherein the second operational parameter comprises at least one of a second memory usage at the second node or a second processing capacity available at the second node.
4 . The system of claim 3 , wherein the operations further comprise populating a configuration data structure with the first operational parameter and the second operational parameter, and wherein the configuration data structure comprises:
a first identifier for the first node, wherein the first memory usage at the first node and the first processing capacity available at the first node populate a first-time entry associated with the first identifier, and wherein the first-time entry comprises a defined time at which the first memory usage at the first node and the first processing capacity available at the first node were determined; and
a second identifier for the second node, wherein the second memory usage at the second node and the second processing capacity available at the second node populate a second time entry associated with the second identifier, and wherein the second time entry is the defined time corresponding to the first-time entry of the first node.
5 . The system of claim 4 , wherein the operations further comprise:
obtaining, at a specified time, at least one of the first operational parameter or the second operational parameter; and
supplementing, at the specified time, the configuration data structure with at least one of a first supplemental memory usage at the first node, a first supplemental processing capacity available at the first node, a second supplemental memory usage at the second node, or a second supplemental processing capacity available at the second node as determined at the specified time.
6 . The system of claim 5 , wherein the combined operation is a first combined operation, wherein the configuration data structure is a configuration table, and wherein the operations further comprise:
analyzing entries of the configuration data structure to determine a pattern of use of the first node and the second node;
based on the pattern of use, predicting a time when a second combined operation applicable to the first node and the second node is going to be below a threshold; and
prior to the time,
scheduling deployment of the at least one second pod to the first node, and
re-powering up the second node.
7 . The system of claim 1 , wherein the operations further comprise:
monitoring at least one of a current memory usage at the first node or a processing capacity currently available at the first node; and
in response to determining that at least one of the current memory usage at the first node is above a first threshold pertaining to the defined efficiency metric or the processing capacity currently available at the first node is above a second threshold pertaining to the defined efficiency metric, re-powering up the second node.
8 . The system of claim 7 , wherein the operations further comprise, in further response to the determining that at least one of the current memory usage at the first node is above the first threshold or the processing capacity currently available at the first node is above the second threshold, deploying the at least one second pod on the second node.
9 . The system of claim 1 , wherein the first node and the second node are physical nodes.
10 . A method, comprising:
monitoring, by a device comprising at least one processor, an operational parameter pertaining to combined operation of a first node and a second node, wherein a first group of resources comprising at least a first pod is deployed on the first node and a second group of resources comprising at least a second pod is deployed on the second node, wherein the first node and the second node are included in a containerized application management system, and wherein the operational parameter is representative of an average of a first current operational capacity of the first group of resources at the first node and a second current operational capacity of the second group of resources at the second node;
comparing, at a first time, by the device, the operational parameter with a defined resource requirement of an application executing via at least the first pod and at least the second pod, wherein the operational parameter pertains to the combination of the first group of resources and the second group of resources available at the combination of the first node and the second node;
determining, at the first time, by the device, whether the operational parameter exceeds the resource requirement of the application executing via at least the first pod and at least the second pod;
in response to determining that the operational parameter exceeds the resource requirement of the application, redeploying, by the device, at least the first pod in the first group of resources from the first node to the second node, as a result of which no pods are operating on the first node; and
powering down, by the device, the first node.
11 . The method of claim 10 , further comprising:
determining, by the device at a second time, wherein the second time is subsequent to the first time, the resource requirement of the application exceeds the second group of resources available at the second node;
powering up, by the device, the first node; and
redeploying, by the device, at least the first pod in the first group of resources from the second node to the first node, wherein the application is serviced by the first group of resources available at the first node and the second set of resources available at the second node.
12 . The method of claim 11 , wherein the first time and the second time are determined in accordance with a predefined schedule.
13 . The method of claim 10 , further comprising:
generating, by the device, an instruction to power down the first node; and
transmitting, by the device, the instruction to the first node.
14 . The method of claim 10 , wherein the first node and the second node are physical nodes.
15 . The method of claim 10 , wherein the resource requirement comprises at least one of a processing capability to facilitate execution of the application via at least the first pod and at least the second pod or a memory available to facilitate the execution of the application via at least the first pod and at least the second pod.
16 . A non-transitory machine-readable medium, comprising executable instructions that, when executed by at least one processor, facilitate performance of operations, the operations comprising:
determining, at a first time, a first resource requirement of all application serviced via a set of pods deployed on a set of nodes, wherein the set of pods is included in a containerized application management system, wherein the set of nodes comprises a first node and a second node, wherein a first pod in the set of pods is deployed on the first node, wherein a second pod in the set of pods is deployed on the second node, wherein the first pod and second pod operate in combination to serve the application, and wherein the determining comprises comparing the first resource requirement with a first average of resource capacity available at the first node and the second node;
determining, at a second time subsequent to the first time, a second resource requirement of the application executing via the set of pods deployed on the set of nodes, wherein the determining comprises comparing the second resource requirement with a second average of resource capacity available at the first node and the second node; and
predicting, based on the first resource requirement and the second resource requirement, a third time at which:
the first pod deployed on the first node is to be redeployed to the second node, in response to that the first resource requirement or the second resource requirement will exceed the first average of resource capacity available at the first node and the second node or the second average of resource capacity available at the first node and the second node; and
in response to determining, as part of the predicting, that the first node does not have any pods deployed thereon, powering down the first node.
17 . The non-transitory machine-readable medium of claim 16 , wherein the first node has been powered down, and wherein the operations further comprise:
predicting, based on the first resource requirement and the second resource requirement, a fourth time at which to power up the first node; and in response to determining that the fourth time has occurred, powering up the first node and deploying the first pod currently deployed on the second node to the first node, wherein the fourth time is subsequent to the third time.
18 . The non-transitory machine-readable medium of claim 16 , wherein:
the first resource requirement comprises a first processing capability and a first memory availability to facilitate execution of the application via the set of pods at the first time; and
the second resource requirement comprises a second processing capability and a second memory availability to facilitate execution of the application via the set of pods at the second time.
19 . The non-transitory machine-readable medium of claim 16 , wherein the first node and the second node are physical nodes.
20 . The system of claim 1 , wherein the power controller is a baseboard management controller configured to control power applied to the first node.