IP Library Granted Patent US 11,245,748
Granted Patent B1
US 11,245,748 · App. 17/183,632 · Granted Feb 8, 2022

Proxied nodes in a container orchestration environment for scalable resource allocation

Inventor: Harold Hannon (Lewisville, TX)
Assignee: International Business Machines Corporation
H04L67/10G06F9/5083H04L67/28
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,245,748
App. No.
17/183,632
Granted
Feb 8, 2022
Kind
B1
Abstract

Creating a multi-tenant model in a container orchestration environment where available host node resources are sharable among tenants is provided. A request to generate a plurality of pods to run a workload of a tenant in the multi-tenant model is received by a proxied node from a controller node in the container orchestration environment. In response to receiving the request to generate the plurality of pods, the plurality of pods to run the workload of the tenant is implemented by the proxied node using available resources from among multiple host nodes of a plurality of host nodes in the container orchestration environment registered to the proxied node.

Claims (66)

1. A computer-implemented method for creating a multi-tenant model in a container orchestration environment where available host node resources are sharable among tenants, the computer-implemented method comprising:

receiving, by a proxied node, a request to generate a plurality of pods to run a workload of a tenant in the multi-tenant model from a controller node in the container orchestration environment; and

responsive to receiving the request to generate the plurality of pods, implementing, by the proxied node, the plurality of pods to run the workload of the tenant using available resources from among multiple host nodes of a plurality of host nodes in the container orchestration environment registered to the proxied node.

2. The computer-implemented method of claim 1 further comprising:

receiving, by the proxied node, a registration of the plurality of host nodes corresponding to a plurality of proxied nodes of different tenants in a many-to-many relationship in the multi-tenant model, wherein the proxied node includes a defined set of application programming interfaces that interacts with the controller node in the container orchestration environment and is one of the plurality of proxied nodes;

receiving, by the proxied node, a request of the tenant in the multi-tenant model for resource availability of the plurality of host nodes from the controller node; and

responding, by the proxied node, with an aggregated resource availability across the plurality of host nodes registered to the proxied node back to the controller node.

3. The computer-implemented method of claim 1 further comprising:

requesting, by the proxied node, registration with the controller node corresponding to the plurality of host nodes in the container orchestration environment, wherein the proxied node controls scheduling and placement of pods on the plurality of host nodes to perform tenant workloads in the multi-tenant model; and

receiving, by the proxied node, confirmation of the registration from the controller node to control the scheduling and placement of pods on the plurality of host nodes to perform tenant workloads.

4. The computer-implemented method of claim 1 further comprising:

receiving, by the proxied node, a resource availability request of the tenant in the multi-tenant model from the controller node to perform the workload of the tenant;

requesting, by the proxied node, pod specifications from the controller node regarding the workload of the tenant to be performed on the plurality of host nodes; and

receiving, by the proxied node, the pod specifications from the controller node regarding the workload of the tenant to be performed on the plurality of host nodes.

5. The computer-implemented method of claim 1 further comprising:

searching, by the proxied node, the plurality of host nodes for available resources across the plurality of host nodes to perform the workload of the tenant based on pod specifications received from the controller node;

identifying, by the proxied node, the multiple host nodes in the plurality of host nodes that provides efficient utilization of the available resources to perform the workload of the tenant based on the pod specifications and a plurality of factors, wherein the plurality of factors include historic behavior of the tenant regarding resource utilization, service level agreement corresponding to the tenant, and workload type of the tenant; and

placing, by the proxied node, the plurality of pods to run the workload of the tenant across the multiple host nodes providing the efficient utilization of the available resources.

6. The computer-implemented method of claim 1 further comprising:

utilizing, by the proxied node, a communication proxy of the proxied node to communicate with the plurality of pods running the workload of the tenant across the multiple host nodes.

7. The computer-implemented method of claim 1 further comprising:

utilizing, by the proxied node, a resource availability proxy of the proxied node to monitor health of containers in each of the plurality of pods running the workload of the tenant across the multiple host nodes; and

sending, by the proxied node, the health of the containers in each of the plurality of pods running the workload of the tenant to the controller node.

8. The computer-implemented method of claim 7 , wherein the resource availability proxy utilizes remote procedure calls to cause execution of the workload of the tenant across the multiple host nodes in the plurality of host nodes.

9. The computer-implemented method of claim 1 , wherein the proxied node is an interface between the controller node and container runtimes of the plurality of host nodes.

10. A computer system for creating a multi-tenant model in a container orchestration environment where available host node resources are sharable among tenants, the computer system comprising:

a bus system;

a storage device connected to the bus system, wherein the storage device stores program instructions; and

a processor connected to the bus system, wherein the processor executes the program instructions to:

receive a request to generate a plurality of pods to run a workload of a tenant in the multi-tenant model from a controller node in the container orchestration environment; and

implement the plurality of pods to run the workload of the tenant using available resources from among multiple host nodes of a plurality of host nodes in the container orchestration environment registered to the computer system in response to receiving the request to generate the plurality of pods.

11. The computer system of claim 10 , wherein the processor further executes the program instructions to:

receive a registration of the plurality of host nodes corresponding to a plurality of proxied nodes of different tenants in a many-to-many relationship in the multi-tenant model, wherein the computer system includes a defined set of application programming interfaces that interacts with the controller node in the container orchestration environment and is one of the plurality of proxied nodes;

receive a request of the tenant in the multi-tenant model for resource availability of the plurality of host nodes from the controller node; and

respond with an aggregated resource availability across the plurality of host nodes registered to the computer system back to the controller node.

12. The computer system of claim 10 , wherein the processor further executes the program instructions to:

request registration with the controller node corresponding to the plurality of host nodes in the container orchestration environment, wherein the computer system controls scheduling and placement of pods on the plurality of host nodes to perform tenant workloads in the multi-tenant model; and

receive confirmation of the registration from the controller node to control the scheduling and placement of pods on the plurality of host nodes to perform tenant workloads.

13. The computer system of claim 10 , wherein the processor further executes the program instructions to:

receive a resource availability request of the tenant in the multi-tenant model from the controller node to perform the workload of the tenant;

request pod specifications from the controller node regarding the workload of the tenant to be performed on the plurality of host nodes; and

receive the pod specifications from the controller node regarding the workload of the tenant to be performed on the plurality of host nodes.

14. The computer system of claim 10 , wherein the processor further executes the program instructions to:

search the plurality of host nodes for available resources across the plurality of host nodes to perform the workload of the tenant based on pod specifications received from the controller node;

identify the multiple host nodes in the plurality of host nodes that provides efficient utilization of the available resources to perform the workload of the tenant based on the pod specifications and a plurality of factors, wherein the plurality of factors include historic behavior of the tenant regarding resource utilization, service level agreement corresponding to the tenant, and workload type of the tenant; and

place the plurality of pods to run the workload of the tenant across the multiple host nodes providing the efficient utilization of the available resources.

15. A computer program product for creating a multi-tenant model in a container orchestration environment where available host node resources are sharable among tenants, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform a method of:

receiving a request to generate a plurality of pods to run a workload of a tenant in the multi-tenant model from a controller node in the container orchestration environment; and

responsive to receiving the request to generate the plurality of pods, implementing the plurality of pods to run the workload of the tenant using available resources from among multiple host nodes of a plurality of host nodes in the container orchestration environment registered to the computer.

16. The computer program product of claim 15 further comprising:

receiving a registration of the plurality of host nodes corresponding to a plurality of proxied nodes of different tenants in a many-to-many relationship in the multi-tenant model, wherein the computer includes a defined set of application programming interfaces that interacts with the controller node in the container orchestration environment and is one of the plurality of proxied nodes;

receiving a request of the tenant in the multi-tenant model for resource availability of the plurality of host nodes from the controller node; and

responding with an aggregated resource availability across the plurality of host nodes registered to the computer back to the controller node.

17. The computer program product of claim 15 further comprising:

requesting registration with the controller node corresponding to the plurality of host nodes in the container orchestration environment, wherein the computer controls scheduling and placement of pods on the plurality of host nodes to perform tenant workloads in the multi-tenant model; and

receiving confirmation of the registration from the controller node to control the scheduling and placement of pods on the plurality of host nodes to perform tenant workloads.

18. The computer program product of claim 15 further comprising:

receiving a resource availability request of the tenant in the multi-tenant model from the controller node to perform the workload of the tenant;

requesting pod specifications from the controller node regarding the workload of the tenant to be performed on the plurality of host nodes; and

receiving the pod specifications from the controller node regarding the workload of the tenant to be performed on the plurality of host nodes.

19. The computer program product of claim 15 further comprising:

searching the plurality of host nodes for available resources across the plurality of host nodes to perform the workload of the tenant based on pod specifications received from the controller node;

identifying the multiple host nodes in the plurality of host nodes that provides efficient utilization of the available resources to perform the workload of the tenant based on the pod specifications and a plurality of factors, wherein the plurality of factors include historic behavior of the tenant regarding resource utilization, service level agreement corresponding to the tenant, and workload type of the tenant; and

placing the plurality of pods to run the workload of the tenant across the multiple host nodes providing the efficient utilization of the available resources.

20. The computer program product of claim 15 further comprising:

utilizing a communication proxy of the computer to communicate with the plurality of pods running the workload of the tenant across the multiple host nodes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2021
From: HANNON, HAROLD
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055388/0077 →
Cited By (8)
US 12,321,790 US 12,423,021 US 12,423,156 US 12,619,474 US 12,641,005 US 12,681,913 US 12,693,896 US 12,717,521