Global Cache for Container Images in Clustered Hosts
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


