IP Library Granted Patent US 12,118,386
Granted Patent B2
US 12,118,386 · App. 18/227,849 · Granted Oct 15, 2024

Techniques for container scheduling in a virtual environment

Inventors: Thaleia Dimitra Doudali (Atlanta, GA); Zhelong Pan (Cupertino, CA); Pranshu Jain (Sunnyvale, CA)
Assignee: VMware LLC
G06F9/4881G06F9/455G06F9/45533G06F9/45558G06F9/48G06F9/4843G06F9/485G06F9/50G06F9/5005G06F9/5011G06F9/5061G06F9/5077G06F9/5083G06F2009/45562G06F2009/4557
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 12,118,386
App. No.
18/227,849
Granted
Oct 15, 2024
Kind
B2
Abstract

The present disclosure relates generally to virtualization, and more particularly to techniques for deploying containers in a virtual environment. The container scheduling can be based on information determined by a virtual machine scheduler. For example, a container scheduler can receive a request to deploy a container. The container scheduler can send container information to the virtual machine scheduler. The virtual machine scheduler can use the container information along with resource utilization of one or more virtual machines to determine an optimal virtual machine for the container. The virtual machine scheduler can send an identification of the optimal virtual machine back to the container scheduler so that the container scheduler can deploy the container on the optimal virtual machine.

Claims (32)

1. A method, comprising:

transmitting, to a first scheduling process from a second scheduling process, first information identifying a plurality of first virtual machines executing on a plurality of physical hosts, wherein the first scheduling process has access to resource utilization data for only virtual machines that are executing at least one container;

receiving, from the first scheduling process by the second scheduling process, second information identifying one or more second virtual machines as one or more virtual machine candidates on which to deploy a first container, the second virtual machines executing on the plurality of physical hosts; and

deploying the first container on a virtual machine of the one or more second virtual machines, wherein the second scheduling process has access to the resource utilization data for each physical host of the plurality of physical hosts.

2. The method of claim 1 , wherein the second scheduling process is a virtual machine scheduling process, and wherein the first scheduling process is a container scheduling process.

3. The method of claim 1 , wherein the first information includes a resource requirement of a container to be deployed.

4. The method of claim 1 , wherein the first information includes a policy associated with the first scheduling process, and wherein the policy relates to identifying a virtual machine to be used to deploy a container.

5. The method of claim 1 , wherein the first information includes a ranking of the plurality of first virtual machines.

6. The method of claim 5 , wherein the ranking is determined by the first scheduling process.

7. The method of claim 1 , wherein at least one of the second virtual machines is a virtual machine different from the virtual machines of the plurality of first virtual machines.

8. The method of claim 1 , wherein the second information includes a ranking of the one or more second virtual machines.

9. The method of claim 1 , wherein the plurality of first virtual machines is identified by the first scheduling process.

10. The method of claim 1 , wherein the second scheduling process is executing on a virtual machine separate from the plurality of first virtual machines.

11. The method of claim 10 , wherein the virtual machine executing the second scheduling process is executing on a physical host separate from the plurality of physical hosts.

12. The method of claim 1 , wherein the second scheduling process is executing on a virtual machine of the plurality of first virtual machines.

13. The method of claim 1 , wherein each virtual machine of the plurality of first virtual machines is configured to execute one or more containers.

14. A non-transitory computer readable medium storing one or more programs, the one or more programs comprising instructions, which when executed by a system, cause the system to:

transmit, to a first scheduling process from a second scheduling process, first information identifying a plurality of first virtual machines executing on a plurality of physical hosts, wherein the first scheduling process has access to resource utilization data for only virtual machines that are executing at least one container;

receive, from the first scheduling process by the second scheduling process, second information identifying one or more second virtual machines as one or more virtual machine candidates on which to deploy a first container, the second virtual machines executing on the plurality of physical hosts; and

deploy the first container on a virtual machine of the one or more second virtual machines, wherein the second scheduling process has access to the resource utilization data for each physical host of the plurality of physical hosts.

15. The non-transitory computer readable medium of claim 14 , wherein the second scheduling process is a virtual machine scheduling process, and wherein the first scheduling process is a container scheduling process.

16. The non-transitory computer readable medium of claim 14 , wherein at least one of the second virtual machines is a virtual machine different from the virtual machines of the plurality of first virtual machines.

17. The non-transitory computer readable medium of claim 14 , wherein the first information includes a policy associated with the first scheduling process, and wherein the policy relates to identifying a virtual machine to be used to deploy a container.

18. A system comprising:

one or more processors;

memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

transmitting, to a first scheduling process from a second scheduling process, first information identifying a plurality of first virtual machines executing on a plurality of physical hosts, wherein the first scheduling process has access to resource utilization data for only virtual machines that are executing at least one container;

receiving, from the first scheduling process by the second scheduling process, second information identifying one or more second virtual machines as one or more virtual machine candidates on which to deploy a first container, the second virtual machines executing on the plurality of physical hosts; and

deploying the first container on a virtual machine of the one or more second virtual machines, wherein the second scheduling process has access to the resource utilization data for each physical host of the plurality of physical hosts.

19. The system of claim 18 , wherein the second scheduling process is a virtual machine scheduling process, and wherein the first scheduling process is a container scheduling process.

20. The system of claim 18 , wherein at least one of the second virtual machines is a virtual machine different from the virtual machines of the plurality of first virtual machines.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2024
From: JAIN, PRANSHU; DOUDALI, THALEIA DIMITRA; PAN, ZHELONG
To: VMWARE, INC.
Reel/Frame 068601/0551 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →