Proactively perform placement operations to provide resizing recommendations for worker nodes
Abstract
Some embodiments provide a novel method for deploying containerized applications. The method of some embodiments deploys a data collecting agent on a machine that operates on a host computer and executes a set of one or more workload applications. From this agent, the method receives data regarding consumption of a set of resources allocated to the machine by the set of workload applications. The method assesses excess capacity of the set of resources for use to execute a set of one or more containers, and then deploys the set of one or more containers on the machine to execute one or more containerized applications. In some embodiments, the set of workload applications are legacy workloads deployed on the machine before the installation of the data collecting agent. By deploying one or more containers on the machine, the method of some embodiments maximizes the usages of the machine, which was previously deployed to execute legacy non-containerized workloads.
Claims
exact text as granted — not AI-modified1 . A method of managing a set of one or more clusters of worker nodes deployed in a set of one or more virtual private clouds (VPC), wherein the plurality of Pods run on the worker nodes, the method comprising:
collecting, through a common interface, event data regarding various worker nodes deployed in the set of VPCs; passing the collected event data through a mapping layer that maps all the data to a common set of data structures for processing to present a unified view of the worker nodes deployed across the set of VPCs; receiving, through a scheduler, a schedule for adjusting a number of worker nodes in a set of worker nodes and dynamically move the Pods among operating worker nodes in order to optimize the deployment of the Pods on the worker nodes as the number of worker nodes increases or decreases; using the schedule to direct, through the common interface, a set of controllers associated with the set of worker nodes to adjust a number of worker nodes and to dynamically move the Pods among the operating worker nodes.
2 . The method of claim 1 , wherein the schedule specifies a first time period for reducing the number of worker nodes in the set due to an expected drop in traffic to the Pods deployed on the worker nodes.
3 . The method of claim 2 , wherein the schedule specifies a second time period for increasing the number of worker nodes in the set due to an expected rise in traffic to the Pods deployed on the worker nodes.
4 . The method of claim 3 , wherein the first and second time periods are one of different times within one day and different days in the week.
5 . The method of claim 1 , wherein said collecting, passing, receiving, and directing are performed by a global controller cluster that operates outside of the VPCs.
6 . The method of claim 5 , wherein said directing comprises:
at a first time before a first time period during which the schedule specifies that the number of worker nodes should be reduces, executing a placement process, at the global controller cluster, to identify new worker-node assignments for at least a subset of the Pods operating on existing worker nodes in order to reduce the number of worker nodes that are operating during the first time period; after the placement process identifies new worker-node assignments, communicating through the interface with any VPC controller cluster that has to shutdown an existing worker node, to add a new worker node or to move a Pod to a new worker node, to direct the VPC controller cluster to perform the required actions.
7 . The method of claim 6 , wherein said directing further comprises terminating a subset of Pods that are performing redundant operations that are forecast to be adequately performed during the first period by another subset of Pods that will remain operation during the first period.
8 . The method of claim 6 , wherein said directing comprises:
at a second time during the first time period, executing a placement process, at the global controller cluster, to identify new worker-node assignments for a set of new Pods to deploy, a set of new worker nodes to deploy, or a set of new Pods and new worker nodes to deploy in order to increase the number of Pods, worker nodes or Pods and worker nodes that are operating during the second time period and to spread existing or new Pods among any set of new worker nodes that are deployed; after the placement process identifies new worker-node assignments, communicating through the interface with any VPC controller cluster that has to deploy any new worker node or new Pod, to add a new worker node or new Pod, or to move a Pod to a new worker node, to direct the VPC controller cluster to perform the required actions.
9 . The method of claim 5 , wherein said directing comprises:
at a first time before a first time period during which the schedule specifies that the number of worker nodes should be increased, executing a placement process, at the global controller cluster, to identify new worker-node assignments for a set of new Pods to deploy, a set of new worker nodes to deploy, or a set of new Pods and new worker nodes to deploy in order to increase the number of worker nodes that are operating during the first time period and to spread the Pods to the new worker nodes; after the placement process identifies new worker-node assignments, communicating through the interface with any VPC controller cluster that has to deploy any new worker node or new Pod, to add a new worker node or new Pod, or to move a Pod to a new worker node, to direct the VPC controller cluster to perform the required actions.
10 . The method of claim 1 , wherein the schedule is received from an administrator.
11 . The method of claim 1 further comprising
analyzing historical usage data from a set of VPCs to identify one or more periods during which worker nodes were under utilized;
based on the analysis, producing the schedule.
12 . The method of claim 11 further comprising
providing the schedule as a recommendation to an administrator,
receiving input from the administrator accepting, rejecting or modifying the schedule;
modifying the schedule when the input modifies the schedule.
13 . A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for managing a set of one or more clusters of worker nodes deployed in a set of one or more virtual private clouds (VPC), wherein the plurality of Pods run on the worker nodes, the program comprising sets of instructions for:
collecting, through a common interface, event data regarding various worker nodes deployed in the set of VPCs; passing the collected event data through a mapping layer that maps all the data to a common set of data structures for processing to present a unified view of the worker nodes deployed across the set of VPCs; receiving, through a scheduler, a schedule for adjusting a number of worker nodes in a set of worker nodes and dynamically move the Pods among operating worker nodes in order to optimize the deployment of the Pods on the worker nodes as the number of worker nodes increases or decreases; using the schedule to direct, through the common interface, a set of controllers associated with the set of worker nodes to adjust a number of worker nodes and to dynamically move the Pods among the operating worker nodes.
14 . The non-transitory machine readable medium of claim 13 , wherein the schedule specifies a first time period for reducing the number of worker nodes in the set due to an expected drop in traffic to the Pods deployed on the worker nodes.
15 . The non-transitory machine readable medium of claim 14 , wherein the schedule specifies a second time period for increasing the number of worker nodes in the set due to an expected rise in traffic to the Pods deployed on the worker nodes.
16 . The non-transitory machine readable medium of claim 15 , wherein the first and second time periods are one of different times within one day and different days in the week.
17 . The non-transitory machine readable medium of claim 13 , wherein the sets of instructions for said collecting, passing, receiving, and directing are performed by a global controller cluster that operates outside of the VPCs.
18 . The non-transitory machine readable medium of claim 17 , wherein the set of instructions for said directing comprises sets of instructions for:
at a first time before a first time period during which the schedule specifies that the number of worker nodes should be reduces, executing a placement process, at the global controller cluster, to identify new worker-node assignments for at least a subset of the Pods operating on existing worker nodes in order to reduce the number of worker nodes that are operating during the first time period; after the placement process identifies new worker-node assignments, communicating through the interface with any VPC controller cluster that has to shutdown an existing worker node, to add a new worker node or to move a Pod to a new worker node, to direct the VPC controller cluster to perform the required actions.
19 . The non-transitory machine readable medium of claim 18 , wherein the set of instructions for said directing further comprises a set of instructions for terminating a subset of Pods that are performing redundant operations that are forecast to be adequately performed during the first period by another subset of Pods that will remain operation during the first period.
20 . The non-transitory machine readable medium of claim 18 , wherein the set of instructions for said directing comprises sets of instructions for:
at a second time during the first time period, executing a placement process, at the global controller cluster, to identify new worker-node assignments for a set of new Pods to deploy, a set of new worker nodes to deploy, or a set of new Pods and new worker nodes to deploy in order to increase the number of Pods, worker nodes or Pods and worker nodes that are operating during the second time period and to spread existing or new Pods among any set of new worker nodes that are deployed; after the placement process identifies new worker-node assignments, communicating through the interface with any VPC controller cluster that has to deploy any new worker node or new Pod, to add a new worker node or new Pod, or to move a Pod to a new worker node, to direct the VPC controller cluster to perform the required actions.Join the waitlist — get patent alerts
Track US2024118919A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.