IP Library Granted Patent US 11,902,245
Granted Patent B2
US 11,902,245 · App. 17/684,169 · Granted Feb 13, 2024

Per-namespace IP address management method for container networks

Inventors: Qiang Tang (Beijing, CN); Zhaoqian Xiao (Beijing, CN)
Assignee: VMware LLC
H04L61/5061G06F9/45558H04L12/4633H04L12/4641H04L12/66H04L49/70H04L61/2592H04L67/133G06F2009/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,902,245
App. No.
17/684,169
Granted
Feb 13, 2024
Kind
B2
Abstract

Some embodiments of the invention provide a method of sending data in a network that includes at least one worker node executing one or more sets of containers and a virtual switch, the virtual switch including a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the one or more sets of containers. The method configures the gateway interface of the worker node to associate the gateway interface with multiple subnets that are each associated with a namespace. The worker node executes at least (1) first and second sets of containers of a first namespace, and (2) a third set of containers of a second namespace. The method sends data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers. The method sends data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers.

Claims (66)

1. A method of sending data in a network comprising a worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the method comprising:

configuring the gateway interface of the worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers;

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers, wherein the worker node executes on a host computer; and

sending data between the first set of containers and a compute worker node external to the host computer through (i) the first virtual Ethernet interface associated with the first set of containers, (ii) the gateway interface, and (iii) a NIC (network interface card) of the host computer.

2. The method of claim 1 , wherein:

the worker node is a first worker node;

the host computer further executes a software switch and at least a second worker node; and

the software switch comprises a set of ports for forwarding data (i) between interfaces of the first worker node and interfaces of the second worker node, and (ii) between interfaces of the first and second worker nodes and the NIC of the host computer.

3. The method of claim 1 further comprising assigning a static IP address to the first set of containers by storing the static IP address in a configuration file of the first set of containers.

4. The method of claim 1 , wherein each namespace is assigned a set of IP addresses.

5. The method of claim 4 , wherein:

the first namespace is assigned a first set of IP addresses;

the second namespace is assigned a second set of IP addresses; and

the first set of IP addresses has a different number of IP addresses than the second set of IP addresses.

6. The method of claim 1 , wherein the first namespace is isolated from the second namespace.

7. The method of claim 1 , wherein the network is an Antrea Kubernetes network.

8. A method of sending data in a network comprising s worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the method comprising:

configuring the gateway interface of the worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers;

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers;

assigning a static IP address to the first set of containers by storing the static IP address in a configuration file of the first set of containers; and

migrating the first set of containers from the first worker node to a second worker node while maintaining the static IP address of the first set of containers.

9. A method of sending data in a network comprising a worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the method comprising:

configuring the gateway interface of a worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers; and

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers,

wherein the first set of containers execute within a first pod of the first namespace on the worker node, the second set of containers execute within a second pod of the second namespace on the worker node, and the third set of containers execute within a third pod of the second namespace on the worker node.

10. A method of sending data in a network comprising a worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the method comprising:

configuring the gateway interface of the worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers;

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers, wherein each namespace is assigned a set of IP addresses, and a fourth set of containers of the first namespace is instantiated on the worker node,

sending, from a network interface of the worker node, a remote procedure call (RPC) request to a server of the container network; and

in response to the RPC, receiving an IP address for the fourth set of containers from the set of IP addresses of the first namespace.

11. The method of claim 10 , wherein the received IP address is assigned to the fourth set of containers by an IP address management interface of the first worker node.

12. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for sending data in a network comprising a worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the program comprising sets of instructions for:

configuring the gateway interface of the worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers;

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers, wherein the worker node executes on a host computer; and

sending data between the first set of containers and a compute worker node external to the host computer through (i) the first virtual Ethernet interface associated with the first set of containers, (ii) the gateway interface, and (iii) a NIC (network interface card) of the host computer.

13. The non-transitory machine readable medium of claim 12 , wherein:

the worker node is a first worker node;

the host computer further executes a software switch and at least a second worker node; and

the software switch comprises a set of ports for forwarding data (i) between interfaces of the first worker node and interfaces of the second worker node, and (ii) between interfaces of the first and second worker nodes and the NIC of the host computer.

14. The non-transitory machine readable medium of claim 12 , wherein:

each namespace is assigned a set of IP addresses the first namespace is assigned a first set of IP addresses;

the second namespace is assigned a second set of IP addresses; and

the first set of IP addresses has a different number of IP addresses than the second set of IP addresses.

15. The non-transitory machine readable medium of claim 12 , wherein the network comprises an Antrea Kubernetes network.

16. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for sending data in a network comprising a worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the program comprising sets of instructions for:

configuring the gateway interface of the worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers;

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers;

assigning a static IP address to the first set of containers by storing the static IP address in a configuration file of the first set of containers; and

migrating the first set of containers from the first worker node to a second worker node while maintaining the static IP address of the first set of containers.

17. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for sending data in a network comprising a worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the program comprising sets of instructions for:

configuring the gateway interface of the worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers; and

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers,

wherein the first set of containers execute within a first pod of the first namespace on the worker node, the second set of containers execute within a second pod of the second namespace on the worker node, and the third set of containers execute within a third pod of the second namespace on the worker node.

18. A non-transitory machine readable medium storing a program for execution by a set of processing units, the program for sending data in a network comprising a worker node, the worker node executing one or more sets of containers and a virtual switch, the virtual switch comprising a gateway interface, a virtual local area network (VLAN) tunnel interface, and a set of virtual Ethernet interfaces associated with the set of one or more sets of containers, the program comprising sets of instructions for:

configuring the gateway interface of the worker node to associate the gateway interface with a plurality of subnets, wherein each subnet is associated with a namespace, and the worker node executes at least (i) first and second sets of containers of a first namespace, and (ii) a third set of containers of a second namespace;

sending data between the first and second sets of containers through a first virtual Ethernet interface associated with the first set of containers and a second virtual Ethernet interface associated with the second set of containers;

sending data between the first set of containers and the third set of containers through the first virtual Ethernet interface associated with the first set of containers, the gateway interface, and a third virtual Ethernet interface associated with the third set of containers, wherein each namespace is assigned a set of IP addresses, the first namespace is assigned a first set of IP addresses, the second namespace is assigned a second set of IP addresses, the first set of IP addresses has a different number of IP addresses than the second set of IP addresses, a fourth set of containers of the first namespace is instantiated on the worker node;

sending, from a network interface of the worker node, a remote procedure call (RPC) request to a server of the container network; and

in response to the RPC, receiving an IP address for the fourth set of containers from the set of IP addresses of the first namespace.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2022
From: TANG, QIANG; XIAO, ZHAOQIAN
To: VMWARE, INC.
Reel/Frame 059138/0693 →