PCI Engine Scheduling for Kubernetes External Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current containerized software environments, such as Kubernetes, struggle to efficiently integrate and utilize external resources like GPUs and specialized hardware due to a lack of insight into PCI slot availability, leading to suboptimal scheduling decisions, resource contention, and inefficiencies.

Innovation Solution

A PCI engine is deployed within the containerized software environment to monitor and manage PCI slots, determining usage and allocability counts for worker nodes, and publishes this information to the scheduler, ensuring accurate resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If standard Kubernetes schedulers are used to manage containerized applications, then automated deployment and scaling capabilities are provided, but the schedulers cannot effectively integrate and utilize external resources such as GPUs and specialized hardware due to lack of insight into PCI slot availability

Engineering Contradiction:
Improveability to integrate external resourcesVSAvoidPCI slot availability information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

A PCI engine is introduced as an intermediary component between the Kubernetes scheduler and the external hardware resources. The PCI engine monitors PCI slot availability, maintains a mapping between worker nodes and their PCI slot status, and provides this information to the scheduler through node status updates. This intermediary resolves the information asymmetry problem by bridging the gap between the scheduler's decision-making process and the actual hardware availability state.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If external resources are integrated into the containerized environment, then resource utilization improves, but scheduling complexity increases due to dynamic nature of these resources

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidscheduling process complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The PCI engine implements self-service by autonomously monitoring PCI slot availability on worker nodes, automatically updating node status information, and dynamically adjusting scheduling decisions based on real-time hardware state. The system uses collector services deployed on each worker node to self-report PCI usage, eliminating the need for manual intervention or complex external orchestration while maintaining efficient resource utilization.

Inventive Principle:
Principle #25Self-service

3Reliability

If manual intervention is used to integrate external resources, then compatibility and security can be maintained, but the process becomes convoluted and requires substantial manual effort

Engineering Contradiction:
Improvecompatibility and securityVSAvoidintegration process simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The PCI engine performs preliminary actions by pre-establishing the PCI slot availability map before scheduling decisions are made. It proactively monitors and updates the state of external resources, so when the scheduler needs to make placement decisions, the information is already prepared and available. This eliminates the need for manual resource integration steps while maintaining security and compatibility through structured, pre-validated resource descriptions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20260037470A1Peripheral component interface engine(s) for external resource scheduling within a cloud-based environment
Publication Date: 2026.02.05 ORACLE INT CORP
  • US20260037470A1 patent drawing
  • US20260037470A1 patent drawing
  • US20260037470A1 patent drawing

AI summary

Various embodiments of the present technology generally relate to a peripheral component interface (PCI) engine and its related functions. In an example, a method is provided for managing availability of external resources utilized by worker nodes within a containerized software environment. The external resources may be provided to respective worker nodes through PCI slots on a device driver. The method may include determining, by a PCI engine, a usage count for each worker node, where the usage count includes a number of PCI slots for a respective worker node consumed by the external resources. The method may also include determining, by the PCI engine, an allocability count for a first worker node based on the usage count and publishing, by the PCI engine, a PCI availability of the first worker node to a scheduler associated with the containerized software environment based on the allocability count.