IP Library Granted Patent US 11,182,196
Granted Patent B2
US 11,182,196 · App. 16/681,990 · Granted Nov 23, 2021

Unified resource management for containers and virtual machines

Inventors: Sahan Gamage (San Jose, CA); Benjamin J. Corrie (Woodinville, WA); Adrian Drzewiecki (Mountain View, CA); Pranshu Jain (Sunnyvale, CA); Mark Johnson (McKinleyville, CA); Zhelong Pan (Cupertino, CA); Rajesh Venkatasubramanian (Palo Alto, CA)
Assignee: VMWARE, INC.
G06F9/45558G06F9/45545G06F9/4881G06F9/5027G06F9/5077G06F2009/45583G06F2009/45595G06F2209/504
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,182,196
App. No.
16/681,990
Granted
Nov 23, 2021
Kind
B2
Abstract

Various aspects are disclosed for unified resource management of containers and virtual machines. A podVM resource configuration for a pod virtual machine (podVM) is determined using container configurations. The podVM comprising a virtual machine (VM) that provides resource isolation for a pod based on the podVM resource configuration. A host selection for the podVM is received from a VM scheduler. The host selection identifies hardware resources for the podVM. A container scheduler is limited to bind the podVM to a node corresponding to the hardware resources of the host selection from the VM scheduler. The podVM is created in a host corresponding to the host selection. Containers are started within the podVM. The containers correspond to the container configurations.

Claims (46)

1. A system comprising:

at least one computing device comprising at least one processor;

at least one memory comprising executable instructions, wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

determine, by a container scheduler extension of a container scheduler that deploys containers and pods within a computing environment, based on at least one container configuration, a podVM resource configuration for a pod virtual machine (podVM), the podVM comprising a virtual machine (VM) that provides resource isolation for a pod based on the podVM resource configuration;

disable, by the container scheduler extension, a node selection functionality of the container scheduler to prevent conflicts between the container scheduler and a VM scheduler that deploys VMs within the computing environment;

transmit, from the container scheduler extension to a VM scheduler, a request for a host selection for the VM of the podVM based on the podVM resource configuration, wherein the host selection is received from the VM scheduler, and the host selection identifies hardware resources for the podVM;

limit, by the container scheduler extension, the container scheduler to bind the pod of the podVM to a node corresponding to the hardware resources of the host selection received from the VM scheduler;

create the podVM in a host corresponding to the host selection; and

execute at least one container within the podVM created in the host, the at least one container corresponding to the at least one container configuration.

2. The system of claim 1 , wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

identify a workload request comprising the at least one container configuration.

3. The system of claim 1 , wherein the podVM resource configuration comprises at least one of: a central processing unit (CPU) resource, and a memory resource.

4. The system of claim 3 , wherein the memory resource is determined based on the at least one container configuration and guest operating system memory padding value for a guest operating system.

5. The system of claim 3 , wherein the CPU resource is determined based on the at least one container configuration and a container agent CPU padding value for a container agent associated with the container scheduler.

6. The system of claim 3 , wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

determine the CPU resource based on a maximum between: a summation of at least one CPU request value corresponding to the at least one container configuration, and a minimum of: a summation of at least one selected CPU value corresponding to the at least one container configuration, and a predetermined maximum CPU resource, wherein a respective one of the at least one CPU request value and the at least one selected CPU value indicates a corresponding measure of CPU size.

7. The system of claim 6 , wherein the summation of at least one selected CPU value is determined based on a sum of a respective CPU value of the at least one selected CPU value for a respective one of the at least one container configuration, the respective CPU value being selected as a maximum of: a CPU request of a respective one of the at least one container configuration, a CPU limit of the respective one of the at least one container configuration, and a predetermined default CPU capacity.

8. A non-transitory computer-readable medium, comprising executable instructions, wherein the instructions, when executed by at least one processor, cause at least one computing device to at least:

determine, by a container scheduler extension of a container scheduler, based on at least one container configuration, a podVM resource configuration for a pod virtual machine (podVM), the podVM comprising a virtual machine (VM) that provides resource isolation for a pod based on the podVM resource configuration;

disable, by the container scheduler extension, a node selection functionality of the container scheduler;

receive, by the container scheduler extension, from a VM scheduler, a host selection in response to a request that specifies at least a portion of the podVM resource configuration, wherein the host selection identifies hardware resources;

limit, by the container scheduler extension, the container scheduler to bind the pod of the podVM to a node corresponding to the hardware resources of the host selection received from the VM scheduler, wherein the container scheduler extension prevents conflicts between the container scheduler and the VM scheduler by disabling the node selection functionality and limiting the container scheduler to bind the pod based on the host selection;

create the podVM in a host corresponding to the host selection; and

execute at least one container within the podVM created in the host, the at least one container corresponding to the at least one container configuration.

9. The non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

identify a workload request comprising the at least one container configuration.

10. The non-transitory computer-readable medium of claim 8 , wherein the podVM resource configuration comprises at least one of: a central processing unit (CPU) resource, and a memory resource.

11. The non-transitory computer-readable medium of claim 10 , wherein the memory resource is determined based on the at least one container configuration and guest operating system memory padding value for a guest operating system.

12. The non-transitory computer-readable medium of claim 10 , wherein the CPU resource is determined based on the at least one container configuration and a container agent CPU padding value for a container agent associated with the container scheduler.

13. The non-transitory computer-readable medium of claim 10 , wherein the instructions, when executed by the at least one processor, cause the at least one computing device to at least:

determine the CPU resource based on a maximum between: a summation of at least one CPU request value corresponding to the at least one container configuration, and a minimum of: a summation of at least one selected CPU or value corresponding to the at least one container configuration, and a predetermined maximum CPU resource, wherein a respective one of the at least one CPU request value and the at least one selected CPU value indicates a corresponding measure of CPU size.

14. The non-transitory computer-readable medium of claim 13 , wherein the summation of at least one selected CPU value is determined based on a sum of a respective CPU value of the at least one selected CPU value for a respective one of the at least one container configuration, the respective CPU value being selected as a maximum of: a CPU request of a respective one of the at least one container configuration, a CPU limit of the respective one of the at least one container configuration, and a predetermined default CPU capacity.

15. A method performed by instructions executed by at least one processor, the instructions comprising:

determining, by a container scheduler extension of a container scheduler, based on at least one container configuration, a podVM resource configuration for a pod virtual machine (podVM), the podVM comprising a virtual machine (VM) that provides resource isolation for a pod based on the podVM resource configuration;

disabling, by the container scheduler extension, a node selection functionality of the container scheduler;

receiving, by the container scheduler extension, from the VM scheduler, a host selection in response to a request that specifies at least a portion of the podVM resource configuration, wherein the host selection identifies hardware resources;

limiting, by the container scheduler extension, the container scheduler to bind the pod of the podVM to a node corresponding to the hardware resources of the host selection received from the VM scheduler a container scheduler to bind the podVM to a node corresponding to the hardware resources of the host selection from the VM scheduler;

creating the podVM in a host corresponding to the host selection; and

executing at least one container within the podVM created in the host, the at least one container corresponding to the at least one container configuration.

16. The method of claim 15 , further comprising:

identifying a workload request comprising the at least one container configuration.

17. The method of claim 15 , wherein the podVM resource configuration comprises at least one of: a central processing unit (CPU) resource, and a memory resource.

18. The method of claim 17 , wherein the memory resource is determined based on the at least one container configuration and guest operating system memory padding value for a guest operating system.

19. The method of claim 17 , wherein the CPU resource is determined based on the at least one container configuration and a container agent CPU padding value for a container agent associated with the container scheduler.

20. The method of claim 17 , further comprising

determining the CPU resource based on a maximum between: a summation of at least one CPU request value corresponding to the at least one container configuration, and a minimum of: a summation of at least one selected CPU value corresponding to the at least one container configuration, and a predetermined maximum CPU resource, wherein a respective one of the at least one CPU request value and the at least one selected CPU value indicates a corresponding measure of CPU size.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2021
From: GAMAGE, SAHAN; CORRIE, BENJAMIN J.; DRZEWIECKI, ADRIAN; JAIN, PRANSHU; JOHNSON, MARK; PAN, ZHELONG; VENKATASUBRAMANIAN, RAJESH
To: VMWARE, INC.
Reel/Frame 056408/0877 →