Global Cache for Container Images in Clustered Hosts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In Kubernetes systems, the lack of transparency in image caching across nodes leads to non-deterministic deployment times and network saturation due to duplication of images, making scheduling decisions difficult and wasteful in terms of disk space.

Innovation Solution

Implementing a global cache for container images using a shared storage device, where container images are stored in virtual disks and managed through a metadata cache, allowing for efficient sharing and retrieval across nodes without duplication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If container images are cached locally on each node, then pod deployment speed is improved, but disk space is wasted due to duplication across N nodes

Engineering Contradiction:
Improvepod deployment speedVSAvoiddisk space
Core Design Contradiction:
SpeedVSLoss of substance

Solution Approach 1:

The patent merges the image caching functionality from multiple distributed node caches into a single centralized cache. Instead of each node maintaining its own copy of container images, all nodes share a common cache resource, eliminating redundant storage while maintaining fast access capabilities through the unified cache interface.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The centralized cache serves as a universal resource that can be accessed by any node in the cluster. This multi-functional cache replaces multiple specialized node-level caches, providing image storage and retrieval services to the entire system through a single shared infrastructure.

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

2Loss of energy

If images are pre-seeded in each node's image cache, then network saturation is reduced, but deployment time becomes non-deterministic due to opaque caching status

Engineering Contradiction:
Improvenetwork bandwidthVSAvoiddeployment time predictability
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent introduces a metadata service as an intermediary that maintains visibility into the centralized cache state. This metadata service tracks which images are cached and provides this information to the scheduling system, enabling deterministic deployment time estimation without requiring each node to independently cache images.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where the metadata service continuously monitors and reports cache status to the scheduling system. This feedback loop enables the scheduler to make informed decisions about pod placement based on current cache states, ensuring predictable deployment times while optimizing network usage.

Inventive Principle:
Principle #23Feedback

3Productivity

If local image caches are maintained on each node, then pod deployment is accelerated, but scheduling decisions become difficult due to lack of visibility into cache status

Engineering Contradiction:
Improvepod deployment efficiencyVSAvoidscheduling system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The metadata service acts as an intermediary that simplifies the scheduling system's view of cache status. Instead of the scheduler needing to directly query or track cache states across multiple nodes, the metadata service provides a unified, simplified interface that reports aggregate cache information, reducing scheduling complexity while maintaining deployment efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11645100B2Global cache for container images in a clustered container host system
Publication Date: 2023.05.09 VMWARE INC
  • US11645100B2 patent drawing
  • US11645100B2 patent drawing
  • US11645100B2 patent drawing

AI summary

Container images are managed in a clustered container host system with a shared storage device. Hosts of the system include a virtualization software layer that supports execution of virtual machines (VMs) in the hosts, and one or more VMs have implemented therein a container engine that supports execution of containers within the respective VMs. Deploying a container in a first VM includes creating a virtual disk in the storage device, storing a container image in the virtual disk, mounting the virtual disk to the first VM, and updating a metadata cache to associate the container image to the virtual disk. Deploying the container in a second VM executed in a host different from a host in which the first VM is executed, includes checking the metadata cache to determine that the container image is stored in the virtual disk, and mounting the virtual disk to the second VM.