IP Library Granted Patent US 12671672
Granted Patent B2
US 12671672 · App. 18/364,959 · Granted Jun 30, 2026

Assigning network addresses from a subnet of network addresses to pods in a host node

Inventors: David Anthony Herr (Cary, NC); Michael Gerard Fitzpatrick (Raleigh, NC); Grant S. Mericle (Durham, NC); Navya Ramanjulu (Apex, NC)
Assignee: International Business Machines Corporation
H04L61/5007H04L2101/668
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 12671672
App. No.
18/364,959
Granted
Jun 30, 2026
Kind
B2
Abstract

Provided are a computer program product, system, and method for assigning network addresses from a subnet of network addresses to pods in a host node. For each host node of a plurality of host nodes, a network address and a subnet of network addresses are provided for the host node. Each of the host nodes includes a different subnet of network addresses to assign to pods executing in the host node. The pods comprise units of computing deployed at the host nodes. Containers in the pods in different host nodes communicate using network addresses from the subnets of network addresses assigned to the different host nodes. A network address is assigned to a new pod at a host node from the subnet of network addresses unique to the host node including the new pod.

Claims (62)

1 . A computer program product for managing network addresses in host nodes, the computer program product comprising a computer readable storage medium having computer readable program code embodied therein that when executed performs operations, the operations comprising:

providing for each host node of a plurality of host nodes in a cluster, a network address for the host node and a subnet of network addresses for the host node, wherein each of the host nodes includes a unique subnet of network addresses, different from subnets of network addresses assigned to other of the host nodes, to assign to pods executing in the host node, wherein the pods comprise units of computing deployed at the host nodes, wherein containers in the pods in different host nodes communicate using network addresses from the subnets of network addresses assigned to the different host nodes, and wherein addresses assigned to the pods are unique in the cluster; and

assigning, to a new pod at a host node, a network address from the subnet of network addresses unique to the host node including the new pod and unique in the cluster, wherein containers in pods other than the new pod communicate with containers in the new pod using a network address assigned to the new pod, and wherein the host nodes broadcast the network addresses assigned to the pods in the host nodes throughout the cluster to allow the host nodes throughout the cluster to communicate with the pods directly.

2 . The computer program product of claim 1 , wherein pods are assigned network address from a subnet for a host node, wherein each of the host nodes includes a different subnet mask of network addresses to assign to the pods in the host nodes.

3 . The computer program product of claim 1 , wherein a network proxy service in each host node of the host nodes manages a host name space including the subnet of network addresses, for the host node, to assign to pods created in the host node.

4 . The computer program product of claim 1 , wherein the operations further comprise:

assigning port numbers to applications and containers instantiated in a target pod in one of the host nodes to allow processes within any of the host nodes to communicate directly with the applications and containers in the target pod using a network address from the subnet assigned to the target pod and the port numbers assigned to the containers and applications in the target pod.

5 . The computer program product of claim 1 , wherein the operations further comprise:

assigning containers and applications, in different pods in the host nodes, same port numbers, wherein the containers or applications in the pods are uniquely identified throughout the host nodes by a combination of the network addresses assigned to the pods including the containers or applications and port numbers assigned to the containers or applications within the pods.

6 . The computer program product of claim 1 , wherein containers and applications in a pod in a given host node of the host nodes and native applications in the given host node, assigned a network address in a namespace of the given host node, are capable of being assigned port numbers assigned in other host nodes, wherein the containers and applications in a given pod of the given host node are uniquely identified throughout the host nodes by a combination of the network address assigned to the given pod including the containers and applications and the port numbers assigned to the containers and applications, and wherein the native applications in the given host node are uniquely identified throughout the host nodes by a combination of the network address of a host node assigned to the native applications and the port numbers assigned to the native applications.

7 . The computer program product of claim 1 , wherein the operations further comprise:

associating network addresses assigned to the pods with unique pod identifiers of the pods to which the network addresses are assigned;

receiving a request from a requesting pod with respect to a provided network address;

determining whether the provided network address is associated with a unique pod identifier of the requesting pod;

blocking the request in response to determining that the provided network address is not associated with a unique pod identifier of the requesting pod; and

allowing the request in response to determining that the provided network address is associated with the unique pod identifier of the requesting pod.

8 . The computer program product of claim 7 , wherein the operations further comprise:

determining whether the request includes the provided network address; and

including a network address, associated with the unique pod identifier of the requesting pod, in the request, in response to determining that the request does not include the provided network address, wherein the network address included in the request comprises the provided network address, and wherein the blocking and the allowing are performed in response to determining that the request includes the provided network address.

9 . The computer program product of claim 7 , wherein the request comprises a listening request and the provided network address comprises a network address on which to listen for requests, wherein the listening request causes communications to the provided network address to be forwarded to an application or container in the pod which submitted the listening request.

10 . The computer program product of claim 1 , wherein the operations further comprise:

associating network addresses assigned to the pods with unique pod identifiers of the pods to which the network addresses are assigned;

receiving a communication from a sending pod in a sending host node to transmit to a receiving pod in the sending host node or in a remote host node;

determining whether the communication provides a sending network address for the sending pod;

determining whether the sending network address is associated with the unique pod identifier of the sending pod;

failing the communication in response to determining that the sending network address is not associated with the unique pod identifier of the sending pod; and

sending the communication in response to determining that the sending network address is associated with the unique pod identifier of the sending pod.

11 . The computer program product of claim 10 , wherein the operations further comprise:

including a network address, associated with a unique pod identifier of the sending pod, for the sending pod in the communication as the sending network address in response to determining that the communication does not provide a network address for the sending pod.

12 . A system for managing network addresses in host nodes, comprising:

at least one processor; and

a computer readable storage medium having computer readable program code embodied therein that when executed by the at least one processor performs operations, the operations comprising:

providing for each host node of a plurality of host nodes in a cluster, a network address for the host node and a subnet of network addresses for the host node, wherein each of the host nodes includes a unique subnet of network addresses, different from subnets of network addresses assigned to other of the host nodes, to assign to pods executing in the host node, wherein the pods comprise units of computing deployed at the host nodes, wherein containers in the pods in different host nodes communicate using network addresses from the subnets of network addresses assigned to the different host nodes, and wherein addresses assigned to the pods are unique in the cluster; and

assigning, to a new pod at a host node, a network address from the subnet of network addresses unique to the host node including the new pod and unique in the cluster, wherein containers in pods other than the new pod communicate with containers in the new pod using a network address assigned to the new pod, and wherein the host nodes broadcast the network addresses assigned to the pods in the host nodes throughout the cluster to allow the host nodes throughout the cluster to communicate with the pods directly.

13 . The system of claim 12 , wherein pods are assigned network address from a subnet for a host node, wherein each of the host nodes includes a different subnet mask of network addresses to assign to the pods in the host nodes.

14 . The system of claim 12 , wherein the operations further comprise:

assigning containers and applications, in different pods in the host nodes, same port numbers, wherein the containers or applications in the pods are uniquely identified throughout the host nodes by a combination of the network addresses assigned to the pods including the containers or applications and port numbers assigned to the containers or applications within the pods.

15 . The system of claim 12 , wherein the operations further comprise:

associating network addresses assigned to the pods with unique pod identifiers of the pods to which the network addresses are assigned;

receiving a request from a requesting pod with respect to a provided network address;

determining whether the provided network address is associated with a unique pod identifier of the requesting pod;

blocking the request in response to determining that the provided network address is not associated with a unique pod identifier of the requesting pod; and

allowing the request in response to determining that the provided network address is associated with the unique pod identifier of the requesting pod.

16 . The system of claim 12 , wherein the operations further comprise:

associating network addresses assigned to the pods with unique pod identifiers of the pods to which the network addresses are assigned;

receiving a communication from a sending pod in a sending host node to transmit to a receiving pod in the sending host node or in a remote host node;

determining whether the communication provides a sending network address for the sending pod;

determining whether the sending network address is associated with the unique pod identifier of the sending pod;

failing the communication in response to determining that the sending network address is not associated with the unique pod identifier of the sending pod; and

sending the communication in response to determining that the sending network address is associated with the unique pod identifier of the sending pod.

17 . A method for managing network addresses in host nodes, comprising:

providing for each host node of a plurality of host nodes in a cluster, a network address for the host node and a subnet of network addresses for the host node, wherein each of the host nodes includes a unique subnet of network addresses, different from subnets of network addresses assigned to other of the host nodes, to assign to pods executing in the host node, wherein the pods comprise units of computing deployed at the host nodes, wherein containers in the pods in different host nodes communicate using network addresses from the subnets of network addresses assigned to the different host nodes, and wherein addresses assigned to the pods are unique in the cluster; and

assigning, to a new pod at a host node, a network address from the subnet of network addresses unique to the host node including the new pod and unique in the cluster, wherein containers in pods other than the new pod communicate with containers in the new pod using a network address assigned to the new pod, and wherein the host nodes broadcast the network addresses assigned to the pods in the host nodes throughout the cluster to allow the host nodes throughout the cluster to communicate with the pods directly.

18 . The method of claim 17 , wherein pods are assigned network address from a subnet for a host node, wherein each of the host nodes includes a different subnet mask of network addresses to assign to the pods in the host nodes.

19 . The method of claim 17 , further comprising:

assigning containers and applications, in different pods in the host nodes, same port numbers, wherein the containers or applications in the pods are uniquely identified throughout the host nodes by a combination of the network addresses assigned to the pods including the containers or applications and port numbers assigned to the containers or applications within the pods.

20 . The method of claim 17 , further comprising:

associating network addresses assigned to the pods with unique pod identifiers of the pods to which the network addresses are assigned;

receiving a request from a requesting pod with respect to a provided network address;

determining whether the provided network address is associated with a unique pod identifier of the requesting pod;

blocking the request in response to determining that the provided network address is not associated with a unique pod identifier of the requesting pod; and

allowing the request in response to determining that the provided network address is associated with the unique pod identifier of the requesting pod.