IP Library Granted Patent US 11,550,513
Granted Patent B2
US 11,550,513 · App. 16/751,529 · Granted Jan 10, 2023

Global cache for container images in a clustered container host system

Inventor: Benjamin J. Corrie (Woodinville, WA)
Assignee: VMware, Inc.
G06F3/0664G06F3/0604G06F3/067G06F3/0644G06F3/0659G06F9/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 11,550,513
App. No.
16/751,529
Granted
Jan 10, 2023
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 (33)

1. A method of deploying containers in a clustered container host system comprising a plurality of hosts that share a storage device, said method comprising:

determining, from pod objects published by a master device of the clustered container host system and accessible by all hosts of the clustered container host system, that a new pod is to be created, wherein each of the hosts includes a virtualization software layer that supports execution of virtual machines (VMs) in the hosts, including pod VMs that have implemented therein an operating system and a container engine that runs on top of the operating system and supports execution of containers within the respective pod VM;

creating the new pod as a 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 said another pod VM are stored in the storage device, wherein

the images of the containers previously spun up in said another pod VM are stored in the storage device in separate virtual disks.

2. The method of claim 1 , wherein the new pod VM is running in a first host in the plurality of hosts and said another pod VM is running in a second host in the plurality of hosts.

3. The method of claim 2 , wherein the plurality of hosts is managed as a Kubernetes cluster.

4. The method of claim 3 , wherein the plurality of hosts is managed as a cluster by a virtual machine management server that manages all VMs in the hosts and provisions the virtual disks for the VMs in the storage device.

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

6. The method of claim 5 , wherein the images of containers previously spun up in said another pod VM are running in said another pod VM.

7. The method of claim 6 , wherein access to the stored images of the containers running in said another pod VM by the new pod VM and said another pod VM is managed using image disk objects that each point to one of the stored images of the containers running in said another pod VM, first image objects associated with the first namespace that each point to one of the image disk objects, and second image objects associated with the second namespace that each point to one of the image disk objects.

8. The method of claim 5 , wherein the images of containers previously spun up in said another pod VM are no longer running in said another pod VM.

9. The method of claim 8 , wherein access to the stored images of the containers running in said another pod VM by the new pod VM and said another pod VM is managed using image disk objects that each point to one of the stored images of the containers running in said another pod VM, first image objects associated with the first namespace that each point to one of the image disk objects, and second image objects associated with the second namespace that each previously pointed to one of the image disk objects and now point to none of the image disk objects.

10. A non-transitory computer readable medium comprising instructions to be executed in a computing device to cause the computing device to carry out a method of deploying containers in a clustered container host system with a shared storage device, said method comprising:

determining, from pod objects published by a master device of the clustered container host system and accessible by all hosts of the clustered container host system, that a new pod is to be created, wherein each of the hosts includes a virtualization software layer that supports execution of virtual machines (VMs) in the hosts, including pod VMs that have implemented therein an operating system and a container engine that runs on top of the operating system and supports execution of containers within the respective pod VM;

creating the new pod as a 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 said another pod VM are stored in the shared storage device, wherein

the images of the containers previously spun up in said another pod VM are stored in the shared storage device in separate virtual disks.

11. The non-transitory computer readable medium of claim 10 , wherein the new pod VM is running in a first host in the plurality of hosts and said another pod VM is running in a second host in the plurality of hosts.

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

13. The non-transitory computer readable medium of claim 12 , wherein the images of containers previously spun up in said another pod VM are running in said another pod VM.

14. The non-transitory computer readable medium of claim 13 , wherein access to the stored images of the containers running in said another pod VM by the new pod VM and said another pod VM is managed using image disk objects that each point to one of the stored images of the containers running in said another pod VM, first image objects associated with the first namespace that each point to one of the image disk objects, and second image objects associated with the second namespace that each point to one of the image disk objects.

15. The non-transitory computer readable medium of claim 12 , wherein the images of containers previously spun up in said another pod VM are no longer running in said another pod VM.

16. The non-transitory computer readable medium of claim 15 , wherein access to the stored images of the containers running in said another pod VM by the new pod VM and said another pod VM is managed using image disk objects that each point to one of the stored images of the containers running in said another pod VM, first image objects associated with the first namespace that each point to one of the image disk objects, and second image objects associated with the second namespace that each previously pointed to one of the image disk objects and now point to none of the image disk objects.

17. A clustered container host system comprising:

a storage device; 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 one or more VMs include pod VMs that have implemented therein an operating system and a container engine that runs on top of the operating system and supports execution of containers within the respective pod VM, wherein

at least one of the hosts is programmed to execute a method of deploying containers, said method comprising:

determining, from pod objects published by a master device of the clustered container host system and accessible by all hosts of the clustered container host system, that a new pod is to be created;

creating the new pod as a 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 said another pod VM are stored in the storage device, and wherein

the images of the containers previously spun up in said another pod VM are stored in the storage device in separate virtual disks.

18. The clustered container host system of claim 17 , wherein the plurality of hosts is managed as a Kubernetes cluster and as a VM host cluster by a virtual machine management server that manages all VMs in the hosts and provisions the virtual disks for the VMs in the storage device.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2020
From: CORRIE, BENJAMIN J.
To: VMWARE, INC.
Reel/Frame 052113/0405 →
Continuity (1)
Related Publication 20210232344A1 · Jul 29, 2021
Cited By (1)
US 12,242,882