IP Library › Granted Patent US 11,558,426
Granted Patent B2
US 11,558,426 · App. 17/006,846 · Granted Jan 17, 2023

Connection tracking for container cluster

Inventors: Jianjun Shen (Redwood City, CA); Wenying Dong (Beijing, CN); Quan Tian (Beijing, CN); Antonin Bas (Palo Alto, CA); Srikar Tati (Mountain View, CA)
Assignee: VMWARE, INC.
H04L63/20G06F9/5077H04L43/045H04L43/10G06F2209/505
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,558,426
App. No.
17/006,846
Granted
Jan 17, 2023
Kind
B2
Abstract

Some embodiments provide a method for a module executing on a Kubernetes node in a cluster. The method retrieves data regarding ongoing connections processed by a forwarding element executing on the node. The method maps the retrieved data to Kubernetes concepts implemented in the cluster. The method exports the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of nodes in the cluster.

Claims (59)

1. A method performed by a module executing on a Kubernetes node in a cluster, the method comprising:

retrieving data regarding ongoing connections processed by a forwarding element executing on the node;

mapping the retrieved data to Kubernetes concepts implemented in the cluster; and

exporting the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of Kubernetes nodes in the cluster,

wherein the module is a connection exporter module that executes within a DaemonSet executing on the node and a container network interface agent also executes within the DaemonSet.

2. The method of claim 1 , wherein the container network interface agent stores data used by the connection exporter module to map the retrieved data to the Kubernetes concepts.

3. The method of claim 1 , wherein:

the node executes the forwarding element as well as a connection tracking module that tracks the ongoing connections; and

retrieving the data regarding ongoing connections comprises polling the connection tracking module for connection data stored by the connection tracking module.

4. The method of claim 3 , wherein the connection data stored by the connection tracking module comprises source and destination network addresses, source and destination port numbers, transport layer protocol, and amounts of data sent for each connection.

5. The method of claim 4 , wherein the connection data stored by the connection tracking module is bidirectional.

6. A method performed by a module executing on a Kubernetes node in a cluster, the method comprising:

retrieving data regarding ongoing connections processed by a forwarding element executing on the node;

mapping the retrieved data to Kubernetes concepts implemented in the cluster; and

exporting the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of Kubernetes nodes in the cluster;

wherein the aggregator operates as a Kubernetes service,

wherein exporting the retrieved data along with the Kubernetes concepts comprises transmitting the retrieved data along with the Kubernetes concepts to one of a plurality of pods implementing the aggregator.

7. The method of claim 1 , wherein the aggregator aggregates the data from the plurality of nodes in the cluster and provides the aggregated data to a visualization engine that generates visualizations of the cluster and the communications between different nodes of the cluster.

8. A method performed by a module executing on a Kubernetes node in a cluster, the method comprising:

retrieving data regarding ongoing connections processed by a forwarding element executing on the node;

mapping the retrieved data to Kubernetes concepts implemented in the cluster; and

exporting the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of Kubernetes nodes in the cluster,

wherein the retrieved data for a particular ongoing connection comprises a source network address and a destination network address,

wherein mapping the retrieved data to Kubernetes concepts comprises (i) mapping the source network address to a first pod executing on the node and (ii) mapping the destination network address to a second pod executing on a different node.

9. A method performed by a module executing on a Kubernetes node in a cluster, the method comprising:

retrieving data regarding ongoing connections processed by a forwarding element executing on the node;

mapping the retrieved data to Kubernetes concepts implemented in the cluster; and

exporting the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of Kubernetes nodes in the cluster,

wherein the retrieved data for a particular ongoing connection comprises a source network address and a destination network address,

wherein mapping the retrieved data to Kubernetes concepts comprises (i) mapping the source network address to a particular pod executing on the node and (ii) mapping the destination network address to a service of the cluster.

10. The method of claim 1 , wherein mapping the retrieved data to Kubernetes concepts comprises, for a particular connection, identifying one or more Kubernetes network policies to which the particular connection is subject.

11. The method of claim 10 , wherein mapping the retrieved data to Kubernetes concepts further comprises identifying specific network policy rules that are applied to data messages of the particular connection.

12. The method of claim 10 , wherein the network policies are identified based on metadata included in the retrieved data regarding the particular connection.

13. The method of claim 12 , wherein exporting the retrieved data comprises exporting the retrieved data in IPFIX format with the Kubernetes concepts appended as IPFIX information elements.

14. A non-transitory machine-readable medium storing a module for execution on a Kubernetes node in a cluster, the module for execution by at least one processing unit, the module comprising sets of instructions for:

retrieving data regarding ongoing connections processed by a forwarding element executing on the node;

mapping the retrieved data to Kubernetes concepts implemented in the cluster; and

exporting the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of Kubernetes nodes in the cluster,

wherein the module is a connection exporter module that executes within a DaemonSet executing on the node and

a container network interface agent also executes within the DaemonSet and stores data used by the connection exporter module to map the retrieved data to the Kubernetes concepts.

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

the node executes the forwarding element as well as a connection tracking module that tracks the ongoing connections; and

the set of instructions for retrieving the data regarding ongoing connections comprises a set of instructions for polling the connection tracking module for connection data stored by the connection tracking module.

16. A non-transitory machine-readable medium storing a module for execution on a Kubernetes node in a cluster, the module for execution by at least one processing unit, the module comprising sets of instructions for:

retrieving data regarding ongoing connections processed by a forwarding element executing on the node;

mapping the retrieved data to Kubernetes concepts implemented in the cluster; and

exporting the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of Kubernetes nodes in the cluster;

wherein the aggregator operates as a Kubernetes service,

wherein the set of instructions for exporting the retrieved data along with the Kubernetes concepts comprises a set of instructions for transmitting the retrieved data along with the Kubernetes concepts to one of a plurality of pods implementing the aggregator.

17. The non-transitory machine-readable medium of claim 14 , wherein the aggregator aggregates the data from the plurality of nodes in the cluster and provides the aggregated data to a visualization engine that generates visualizations of the cluster and the communications between different nodes of the cluster.

18. A non-transitory machine-readable medium storing a module for execution on a Kubernetes node in a cluster, the module for execution by at least one processing unit, the module comprising sets of instructions for:

retrieving data regarding ongoing connections processed by a forwarding element executing on the node;

mapping the retrieved data to Kubernetes concepts implemented in the cluster; and

exporting the retrieved data along with the Kubernetes concepts to an aggregator that receives data regarding ongoing connections from a plurality of Kubernetes nodes in the cluster

wherein the retrieved data for a particular ongoing connection comprises a source network address and a destination network address,

wherein the set of instructions for mapping the retrieved data to Kubernetes concepts comprises sets of instructions for:

mapping the source network address to a first pod executing on the node; and

mapping the destination network address to one of a second pod executing on a different node and a service of the cluster.

19. The non-transitory machine-readable medium of claim 14 , wherein the set of instructions for mapping the retrieved data to Kubernetes concepts comprises a set of instructions for identifying, for a particular connection, one or more Kubernetes network policies to which the particular connection is subject.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2020
From: SHEN, JIANJUN; DONG, WENYING; TIAN, QUAN; BAS, ANTONIN; TATI, SRIKAR
To: VMWARE, INC.
Reel/Frame 053637/0663 →
Priority Claims (1)
WO PCT/CN2020/105528 · Jul 29, 2020 · international
Continuity (1)
Related Publication 20220038501A1 · Feb 3, 2022
Cited By (3)
US 12,255,792 US 12,292,842 US 12,323,323