Intelligent Software Containers Management Framework
We developed a platform based on the proposed many-objective formulation that enables users to monitor resource consumption for each node in the cluster (CPU, memory, and network I/O) and automatically reschedule containers using our many-objective approach. The platform was recently deployed by our partner, the Ford Motor Company.
Figure 1 displays a screenshot of our dashboard, which depicts the cluster's current live state, the number of active nodes/ECUs, the total number of nodes, and the distribution of the containers among the cluster's active nodes. Figure 2 shows the detailed list of containers provided by our dashboard and their distribution among the cluster's nodes. Figure 3 shows the resource consumption in real-time, as well as the received and sent network for each node. If necessary, the user may manually rearrange the containers; otherwise, rescheduling is automated and based on ongoing resource use metrics monitoring. Our tool collects all of the necessary data on a regular basis in order to calculate the objective functions established by our technique and identify the best solution. Following the rescheduling, the user may see variations in resource use and network transmission after using our new approach. In addition, if needed, the user can choose to revert to the Docker default scheduler.
Figure 1: Cluster information
Figure 2: Real-time resource consumption per node/ECU
Figure 3: Real-time resource consumption per node/Ecu
The schematic diagram that connects the various components of our approach is depicted in Figure 4. We used Node-exporter to extract metrics including the number of containers per node, the CPU and memory consumption, the network I/O per node and many other metrics from the nodes and Cadvisor to monitor the performance of each container in the experiment including CPU, memory usage. This real-time data is scraped by Prometheus and plotted in our monitoring interfaces via http. The user can use the dashboard to change containers placements or properties that will be updated in the docker cluster before running the scheduler using our API. When CPU and memory utilization surpass 80%, the tool issues a warning.
Figure 4: Schematic Diagram of our Approach