IP Library Granted Patent US 12693809
Granted Patent B2
US 12693809 · App. 18/757,311 · Granted Jul 28, 2026

Global cache for container images in a clustered container host system

Inventor: Benjamin J. Corrie (Woodinville, WA)
Assignee: VMware LLC
G06F3/0664G06F3/0604G06F3/0644G06F3/0659G06F3/067G06F9/45558G06F11/301G06F2009/45562G06F2009/45595
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12693809
App. No.
18/757,311
Granted
Jul 28, 2026
Kind
B2
Abstract

Container images are managed in a clustered container host system with a shared storage device. Hosts of the system each include a virtualization software layer that supports execution of virtual machines (VMs), one or more of which are pod VMs that have implemented therein a container engine that supports execution of containers within the respective pod VM. A method of deploying containers includes determining, from pod objects published by a master device of the system and accessible by all hosts of the system, that a new pod VM is to be created, creating the new pod VM, and spinning up one or more containers in the new pod VM using images of containers previously spun up in another pod VM, wherein the images of the containers previously spun up in the other pod VM are stored in the storage device.

Claims (60)

1 . A method of deploying containers in a clustered container host system that comprises a plurality of hosts sharing a storage device, the storage device storing images of containers for the hosts, wherein each of the hosts includes a virtualization software layer that supports execution of virtual machines (VMs), said method comprising:

polling, by the virtualization software layer in each of the hosts, a master device of the clustered container host system that schedules container groups across the hosts, to determine whether a new VM for running containers of a container group is to be created;

determining from said polling that the new VM is to be created, and then creating the new VM by the virtualization software layer in one of the hosts, the new VM having implemented therein an operating system and a container engine that runs on top of the operating system and that supports execution of containers in the new VM;

determining, by the virtualization software layer in the one of the hosts, whether or not images of the containers of the container group are stored in the storage device, by transmitting one or more requests to the storage device to access the images of the containers of the container group;

if the images of the containers of the container group are stored in the storage device, receiving, by the virtualization software layer in the one of the hosts from the storage device, references to virtual disks in response to the transmitting, and then

retrieving, by the virtualization software layer in the one of the hosts by using the references to the virtual disks, the images of the containers of the container group from the storage device;

if the images of the containers of the container group are not stored in the storage device, retrieving the images of the containers of the container group from an image registry that manages a plurality of container repositories, and then storing the images of the containers of the container group in the storage device; and

deploying the containers of the container group by:

providing, by the virtualization software layer in the one of the hosts to the new VM, the images of the containers of the container group; and

spinning up, by the container engine in the new VM, the containers of the container group in the new VM using the provided images of the containers of the container group.

2 . The method of claim 1 , further comprising:

provisioning, by a virtual machine management server of the clustered container host system, the virtual disks in an image cache in the storage device to be accessible by the hosts; and

storing, in the image cache by one or more VMs of the hosts, images of containers that have been previously spun up in the hosts, including the images of the containers of the container group that are spun up in the new VM.

3 . The method of claim 1 , further comprising:

retrieving, by the virtualization software layer in another of the hosts, the images of the containers of the container group from the storage device;

providing, by the virtualization software layer in said another of the hosts, the images of the containers of the container group to another VM running in said another of the hosts; and

spinning up, by a container engine in said another VM, the containers of the container group.

4 . The method of claim 3 , wherein the new VM is in a first namespace associated with a first user and said another VM is in a second namespace associated with a second user.

5 . The method of claim 3 , wherein the containers of the container group spun up in said another VM are running in said another VM concurrently with the containers of the container group spun up in the new VM.

6 . The method of claim 3 , wherein the containers of the container group spun up in said another VM are no longer running in said another VM when the containers of the container group are running in the new VM.

7 . The method of claim 1 , further comprising:

managing, by a virtual machine management server of the clustered container host system that manages all VMs of the hosts, the hosts as nodes of the clustered container host system and also as a cluster of the clustered container host system.

8 . A non-transitory computer readable medium comprising instructions to be executed in one of a plurality of hosts of a clustered container host system, the hosts sharing that has a storage device, and the storage device storing including an image cache that stores images of containers for the hosts, wherein each of the hosts includes a virtualization software layer that supports execution of virtual machines (VMs), and the instructions when executed in the one of the hosts cause the one of the hosts to carry out a method of deploying containers in the clustered container host system, said method comprising:

polling, by the virtualization software layer in the one of the hosts, a master device of the clustered container host system that schedules container groups across the hosts, to determine whether a new VM for running containers of a container group is to be created;

determining from said polling that the new VM is to be created, and then creating the new VM by the virtualization software layer in the one of the hosts, the new VM having implemented therein an operating system and a container engine that runs on top of the operating system and that supports execution of containers in the new VM;

determining, by the virtualization software layer in the one of the hosts, whether or not images of the containers of the container group are stored in the storage device image cache, by transmitting one or more requests to the storage device to access the images of the containers of the container group, the virtualization software layer in the one of the nodes receiving from the storage device, references to virtual disks in response to the transmitting;

if upon determining that the images of the containers of the container group are stored in the storage device, receiving, by the virtualization software layer in the one of the hosts from the storage device, references to virtual disks in response to the transmitting, and then image cache, deploying the containers of the container group by: retrieving, by the virtualization software layer in the one of the hosts by using the references to the virtual disks, the images of the containers of the container group from the storage device image cache;

if the images of the containers of the container group are not stored in the storage device, retrieving the images of the containers of the container group from an image registry that manages a plurality of container repositories, and then storing the images of the containers of the container group in the storage device; and

deploying the containers of the container group by:

providing, by the virtualization software layer in the one of the hosts to the new VM, the images of the containers of the container group to the new VM; and

spinning up, by the container engine in the new VM, the containers of the container group in the new VM using the provided images of the containers of the container group.

9 . The non-transitory computer readable medium of claim 8 , wherein the virtual disks are provisioned in an image cache in the storage device to be accessible by the hosts, by a virtual machine management server of the clustered container host system, the storage device including the image cache being shared by the nodes.

10 . The non-transitory computer readable medium of claim 8 , wherein

the images of the containers of the container group are also retrieved by the virtualization software layer in another of the hosts that is different from the one of the hosts in which the new VM is running,

the images of the containers of the container group are also provided by the virtualization software layer in said another of the hosts, to another VM running in said another of the hosts, and

the containers of the container group are also spun up in said another VM by a container engine in said another VM.

11 . The non-transitory computer readable medium of claim 10 , wherein the new VM is in a first namespace associated with a first user and said another VM is in a second namespace associated with a second user.

12 . The non-transitory computer readable medium of claim 10 , wherein the containers of the container group spun up in said another VM are running in said another VM concurrently with the containers of the container group spun up in the new VM.

13 . The non-transitory computer readable medium of claim 10 , wherein the containers of the container group spun up in said another VM are no longer running in said another VM when the containers of the container group are running in the new VM.

14 . The non-transitory computer readable medium of claim 8 , wherein the hosts are managed as a cluster by a virtual machine management server of the clustered container host system that manages all VMs of the hosts.

15 . A clustered container host system comprising:

a storage device that stores images of containers; and

a plurality of hosts that share the storage device, wherein the hosts each include a virtualization software layer that supports execution of virtual machines (VMs) therein, and wherein at least one of the hosts is programmed to carry out execute a method of deploying containers in the clustered container host system, said method comprising:

polling, by at least one virtualization software layer in the at least one of the hosts, a master device of the clustered container host system that schedules container groups across the hosts, to determine whether a new VM for running containers of a container group is to be created;

determining from said polling that the new VM is to be created, and then creating the new VM by the virtualization software layer in one of the hosts, the new VM having implemented therein an operating system and a container engine that runs on top of the operating system and that supports execution of containers in the new VM;

determining, by the virtualization software layer in the one of the hosts, whether or not images of the containers of the container group are stored in the storage device, by transmitting one or more requests to the storage device to access the images of the containers of the container group;

if the images of the containers of the container group are stored in the storage device, receiving, by the virtualization software layer in the one of the hosts from the storage device, references to virtual disks in response to the transmitting, and then retrieving, by the virtualization software layer in the one of the hosts by using the references to the virtual disks, the images of the containers of the container group from the storage device;

if the images of the containers of the container group are not stored in the storage device, retrieving the images of the containers of the container group from an image registry that manages a plurality of container repositories, and then storing the images of the containers of the container group in the storage device; and

deploying the containers of the container group by:

providing, by the virtualization software layer in the one of the hosts to the new VM, the images of the containers of the container group; and

spinning up, by the container engine in the new VM, the containers of the container group in the new VM using the provided images of the containers of the container group.

16 . The clustered container host system of claim 15 , wherein said method further comprises:

provisioning, by a virtual machine management server of the clustered container host system, the virtual disks in an image cache in the storage device to be accessible by the hosts; and

storing, in the image cache by one or more VMs of the hosts, images of containers that have been previously spun up in the hosts, including the images of the containers of the container group that are spun up in the new VM.

17 . The clustered container host system of claim 15 , wherein said method further comprises:

retrieving, by the virtualization software layer in another of the hosts, the images of the containers of the container group from the storage device;

providing, by the virtualization software layer in said another of the hosts, the images of the containers of the container group to another VM running in said another of the hosts; and

spinning up, by a container engine in said another VM, the containers of the container group.

18 . The clustered container host system of claim 15 , wherein said method further comprises:

managing, by a virtual machine management server of the clustered container host system that manages all VMs of the hosts, the hosts as nodes of the clustered container host system and also as a cluster of the clustered container host system.