Node-Specific Application Manifest Distribution in Kubernetes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Managing complex computing tasks that require multiple application instances to cooperate effectively is challenging, especially in distributed storage and computation systems, as existing tools like Kubernetes struggle with dynamic resource allocation and fault tolerance.

Innovation Solution

The proposed solution involves an orchestrator that works in conjunction with a Kubernetes master to deploy and manage multi-role applications by defining roles, relationships, and dynamic resource provisioning, using a bundled application approach that includes manifest files, provisioning, configuration parameters, and action hooks, ensuring efficient resource allocation and fault tolerance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Kubernetes is used to manage multi-role applications, then application instances can be instantiated and scaled, but the installation and management becomes complex

Engineering Contradiction:
Improveapplication deployment efficiencyVSAvoidinstallation and management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the application manifest into node-specific portions, where each node receives only the configuration data relevant to it. This division reduces the complexity of managing multi-role applications by distributing configuration management across individual nodes rather than requiring centralized management of all application details.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of having each node report its capabilities and waiting for centralized assignment, the patent inverts the approach by having the orchestrator distribute node-specific manifest portions proactively. Each node then independently processes its received configuration, reversing the traditional centralized-control model to reduce management overhead.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If multiple application instances are deployed to cooperate on complex tasks, then computational capability increases, but resource allocation and fault tolerance become challenging

Engineering Contradiction:
Improvecomputational capabilityVSAvoidresource allocation and fault tolerance management
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements preliminary action by having the orchestrator distribute node-specific manifest portions to nodes before application instances are deployed. This pre-configuration enables nodes to independently understand their roles and requirements, facilitating automatic resource allocation and fault tolerance without requiring complex runtime management interventions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each node independently processes its received node-specific manifest portion and autonomously manages its application instances. This self-service approach enables automatic resource allocation and fault tolerance, as nodes can independently handle their own configuration, deployment, and recovery without requiring complex centralized coordination.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11226847B2Implementing an application manifest in a node-specific manner using an intent-based orchestrator
Publication Date: 2022.01.18 RAKUTEN SYMPHONY INC
  • US11226847B2 patent drawing
  • US11226847B2 patent drawing
  • US11226847B2 patent drawing

AI summary

An orchestrator generated pod specifications for role instances of a bundled application and submits these pod specifications to a KUBERNETES master. The pod specification specifies a node on which to implement a container executing the role instance, the node being selected according to an application manifest that may include affinity and anti-affinity constraints. The pod specification may be implemented by a KUBELET executing on the node, which may invoke interfaces to the orchestrator in order to obtain a network address for the container. A storage volume to be used by the container may have been mounted to the node previously by the orchestrator and be ready for use by the container. Upon failure of the node, the orchestrator generates a new pod specification according to the application manifest that instructs the master to create a new container having a same identity and state as the former container.