In-Process Kubernetes API Extensions with On-Demand CRD Controllers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing container orchestration engines like Kubernetes face inefficiencies due to the need for separate pods for each custom resource definition (CRD) controller, leading to amplified resource consumption, especially when these pods are idle for long periods.

Innovation Solution

Compile CRD controllers into isolation modules at runtime and host them in a single service, using a runtime environment like WebAssembly or Go plugins, allowing dynamic execution only when needed, thus reducing resource overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If separate pods are created for each CRD controller, then controller functionality is provided, but resource consumption is amplified

Engineering Contradiction:
Improvecontroller functionalityVSAvoidresource consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

Multiple CRD controllers are merged into a single shared pod instead of running separate pods for each controller. The patent consolidates multiple controllers into one pod, sharing common infrastructure resources such as the runtime environment, isolation mechanisms, and support services, thereby reducing overall resource consumption while maintaining the functionality of each individual controller

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared pod is designed to host multiple different CRD controllers simultaneously, making it a universal container that can perform multiple controller functions. This multi-functional pod structure allows a single pod to replace what would traditionally require multiple specialized pods, optimizing resource utilization

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If pods are maintained for high availability, then reliability is improved, but resource overhead increases during idle periods

Engineering Contradiction:
Improvehigh availabilityVSAvoidresource overhead
Core Design Contradiction:
ReliabilityVSUse of energy by stationary object

Solution Approach 1:

The system transitions from static pod allocation to dynamic controller instantiation. Controllers are loaded and activated on-demand within the shared pod based on actual workload requirements, allowing the system to maintain reliability by having controllers ready when needed while reducing resource overhead by not maintaining idle controller instances during low-demand periods

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Controllers are instantiated and deactivated periodically based on workload demands rather than running continuously. The shared pod can dynamically load controllers when API events require them and deactivate them when not in use, creating a periodic activation pattern that balances availability with resource efficiency

Inventive Principle:
Principle #19Periodic action

3Productivity

If controllers are statically compiled, then build time efficiency is improved, but runtime adaptability is reduced

Engineering Contradiction:
Improvebuild time efficiencyVSAvoidruntime extension
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

Controllers are pre-compiled into isolation modules (such as WebAssembly modules) during the build process, preparing them in advance for efficient runtime execution. This preliminary compilation creates portable, optimized binaries that can be quickly loaded and executed in the shared pod without requiring extensive build-time resources during deployment

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system changes the state of controllers from source code to compiled isolation modules, transforming them into a portable intermediate format that maintains adaptability while enabling efficient runtime loading. This parameter change in the controller representation allows dynamic instantiation without sacrificing the efficiency gains from compilation

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3944082B1Extending the kubernetes API in-process
Publication Date: 2025.10.08 RED HAT INC
  • EP3944082B1 patent drawingFigure 1
  • EP3944082B1 patent drawingFigure 2A
  • EP3944082B1 patent drawingFigure 2B

AI summary

Systems and methods for extending a container orchestration engine API in-process are disclosed. A processing device may compile each of one or more custom resource definition (CRD) controllers that are created in a cluster at run-time into a respective isolation module to generate one or more isolation modules, wherein the one or more isolation modules are all hosted in a service. The processing device may monitor for application program interface (API) events serviced by each of the one or more CRD controllers and in response to detecting an API event serviced by a CRD controller of the one or more CRD controllers, executing a respective isolation module of the CRD controller.