State Manager for Proactive Resource Allocation in Kubernetes Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In clustered computing environments, managing and allocating computing resources efficiently is challenging, especially when nodes approach capacity, leading to increased CPU usage and the need for additional resources, which can result in downtime due to the time-consuming process of creating new nodes.

Innovation Solution

A state manager is introduced within the cluster to facilitate automatic vertical scaling by monitoring resource usage and allocating resources between nodes and pods, creating new nodes as needed to ensure efficient resource distribution and reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If new nodes are created to accommodate increased CPU usage, then computing resources are increased, but downtime occurs due to the time-consuming node creation process

Engineering Contradiction:
Improvecomputing resourcesVSAvoiddowntime
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The state manager proactively monitors CPU usage metrics and triggers node creation operations before resources are completely exhausted. By detecting trends in resource consumption and anticipating capacity requirements, the system initiates node provisioning in advance, thereby avoiding service interruptions when capacity limits are reached.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements continuous monitoring of CPU usage metrics and uses this feedback to dynamically adjust resource allocation decisions. The state manager receives real-time performance data, analyzes resource consumption patterns, and automatically triggers node creation or resource redistribution based on the feedback loop, enabling responsive resource management that prevents downtime.

Inventive Principle:
Principle #23Feedback

2Productivity

If resources are reallocated from one containerized application to another, then resource utilization is improved, but application reliability may be compromised

Engineering Contradiction:
Improveresource utilizationVSAvoidapplication reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The state manager dynamically adjusts resource allocation parameters based on real-time monitoring of application performance metrics. It modifies CPU and memory allocation levels for containerized applications according to their actual needs, using controlled parameter changes to optimize resource utilization while maintaining reliability thresholds through continuous monitoring and incremental adjustments.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system implements resource allocation with buffer capacities and threshold-based triggers. Instead of completely reallocating resources, it uses partial reallocation strategies that maintain minimum guaranteed resources for each application while allowing excess resources to be dynamically assigned to high-priority workloads, thereby balancing utilization with reliability.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11102281B2Tool for managing and allocating resources in a clustered computing environment
Publication Date: 2021.08.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11102281B2 patent drawing
  • US11102281B2 patent drawing
  • US11102281B2 patent drawing

AI summary

This present invention is directed towards a container orchestration system such as Kubernetes in which pods monitor themselves to determine if they are likely to require additional resources or vertical scaling within a given timeframe. If the pod determines that it will need additional processing power it notifies the state manager to begin allocating these resources on the same node or a different virtual or physical node before the CPU usage reaches 99%+. The state manager receives this request and allocates the necessary resources ahead of time. When the pod's CPU usage reaches 99%+, the state manager will remove the pod from the existing node and moves the application to the new pod on a different node in which sufficient resources are allocated. This invention brings about efficient utilization of nodes.