Vertical Pod Autoscaler IOPS Monitoring for Stateful Apps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Container orchestration platforms face challenges in dynamically scaling resources for stateful applications due to the lack of native support for custom objects, leading to overprovisioning and sub-optimal resource utilization, especially when managing applications with varying I/O operations per second (IOPS) and throughput demands.

Innovation Solution

Modifying the traditional vertical pod autoscaler to interpret and monitor custom resource definitions, such as those defined through Custom Resource Definitions (CRDs), and extending the Kubernetes scheduler with a custom filter to consider historic IOPS and throughput when scheduling pods, enabling efficient resource allocation and scaling based on actual usage patterns.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional vertical pod autoscaler is used without custom object support, then device complexity is reduced and ease of operation is maintained, but resource utilization efficiency deteriorates and overprovisioning occurs

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a custom resource definition (CRD) as an intermediary layer between the vertical pod autoscaler and stateful applications. This CRD enables the autoscaler to monitor and manage IOPS and throughput metrics for custom objects without requiring fundamental changes to the Kubernetes core architecture, thus improving resource utilization while maintaining acceptable system complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent extends the vertical pod autoscaler to monitor additional parameters (IOPS and throughput) beyond the traditional CPU and memory metrics. By incorporating these storage-related parameters into the autoscaling decision-making process, the system can dynamically adjust resource allocation based on actual storage workload demands, eliminating overprovisioning while maintaining productivity

Inventive Principle:
Principle #35Parameter changes

2Productivity

If resources are statically allocated without monitoring, then device complexity is minimized, but resource efficiency deteriorates and waste increases

Engineering Contradiction:
Improveresource efficiencyVSAvoidmonitoring system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a feedback mechanism where the vertical pod autoscaler continuously monitors IOPS and throughput metrics of stateful applications and uses this information to dynamically adjust resource allocation. This closed-loop feedback system ensures resources are allocated efficiently based on actual usage patterns, improving resource efficiency while maintaining manageable monitoring complexity through integration with existing Kubernetes components

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If custom resource definitions are supported, then adaptability improves and optimal allocation is achieved, but device complexity increases

Engineering Contradiction:
Improvecustom object supportVSAvoidscheduler complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the scheduling and resource allocation functionality by introducing a custom filter that works alongside the existing Kubernetes scheduler. This custom filter specifically handles IOPS and throughput considerations for stateful applications, while the core scheduler continues to manage general pod placement. This segmentation allows the system to gain adaptability for custom objects without substantially increasing overall scheduler complexity

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20240419346A1Input/output operations per second (IOPS) and throughput monitoring for dynamic and optimal resource allocation
Publication Date: 2024.12.19 NETAPP INC
  • US20240419346A1 patent drawing
  • US20240419346A1 patent drawing
  • US20240419346A1 patent drawing

AI summary

Techniques are provided for input/output operations per second (IOPS) and throughput monitoring for dynamic and/or optimal resource allocation. These techniques provide automated monitoring of resources, such as memory and processor utilization by a container accessing a volume. The automated monitoring is performed in order to generate and execute intelligent recommendations for improved resource utilization. Resource allocations can be scaled up to meet I/O load demand and satisfy service level agreements (SLAs). Resource allocations can be scaled down or adjusted to conserve resources, such as by consolidating containers or pods hosted in multiple virtual machines into a single virtual machine and decommissioning virtual machines no longer hosting containers or pods.