Opportunistic Container Image Sharing via Shared Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In Kubernetes systems, network saturation and non-deterministic deployment times occur due to opaque image caches, leading to inefficient image duplication across nodes, which complicates scheduling and wastes disk space.
Innovation Solution
A clustered container host system with a shared storage device and virtualization layer that opportunistically shares container images by creating virtual disks and updating metadata caches to associate images, allowing for efficient fetching and mounting of images across virtual machines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If container images are pre-seeded in the image cache of each node, then network saturation is alleviated and deployment speed is improved, but disk space is wasted due to duplication of images across N nodes
Solution Approach 1:
The patent merges the image caching functionality across multiple nodes by introducing a centralized image cache service. Instead of each node maintaining separate image caches, the system consolidates image storage in a shared location that all nodes can access, eliminating redundant storage while maintaining fast deployment capabilities.
Solution Approach 2:
The centralized image cache service provides universal access to container images for all nodes in the Kubernetes cluster. This single image cache serves multiple functions: storing images, managing image lifecycle, and providing fast access to all nodes, replacing the need for individual node-specific caches.
2Ease of operation
If image caches are maintained on each node, then local image access is enabled, but the deployment time becomes non-deterministic because some nodes may have images cached and some may not
Solution Approach 1:
The system implements feedback mechanisms where the centralized image cache service tracks which images are cached and provides this information to the scheduler. This feedback loop enables deterministic scheduling decisions by providing visibility into image availability across the cluster, eliminating the non-deterministic deployment times caused by opaque node-level caches.
Solution Approach 2:
The centralized image cache service acts as an intermediary between the Kubernetes scheduler and the actual image storage. It provides a unified interface that abstracts away the complexity of distributed image caching, allowing the scheduler to make informed decisions without directly querying each node's cache status.
3Productivity
If each node maintains its own image cache, then image fetching can be done locally, but the image cache is opaque to the user and scheduling decisions become difficult
Solution Approach 1:
The centralized image cache service serves as an intermediary that provides users and the scheduler with visibility into image cache status. It maintains the local fetching capability while adding a layer of transparency that allows users to query which images are cached and where, solving the opacity problem of distributed node-level caches.
Data Source
AI summary
Container images are fetched in a clustered container host system with a shared storage device. Fetching a first container image in a first virtual machine includes creating a first virtual disk in the shared storage device, storing an image of the first container in the first virtual disk, mounting the first virtual disk to the first virtual machine, and updating a metadata cache to associate the image of the first container to the first virtual disk. Fetching a second container image in a second virtual machine includes checking the metadata cache to determine that a portion of the image of the second container is stored in the first virtual disk, creating a second virtual disk in the shared storage device, adding a reference to the first virtual disk in a metadata of the second virtual disk, and mounting the second virtual disk to the second virtual machine.


