Distributed packet capture
AssigneeMicrosoft Technology Licensing, LLC
InventorsNitish Malhotra, Sarath Chandra Reddy Sanamreddy Venkata
Life of this patent
Estimating the term…
Abstract
Techniques are disclosed for capturing network traffic in a distributed computing environment comprising a plurality of computing devices executing a plurality of Kubernetes pods. A customer resource definition defines one or more capture filters. Based on the capture filters, a configuration map object specifying data packets to be captured is generated. Capture sidecars are injected at the Kubernetes pods. At each Kubernetes pod the configuration map object is read and a capture of the specified data packets is initiated.
Claims20
A method for adding a native utility for capturing network traffic across a plurality of interfaces in a cloud computing environment, the cloud computing environment comprising a plurality of computing devices executing a plurality of Kubernetes pods comprising one or more containers, the network traffic associated with a target application or service provided by the Kubernetes pods, the method comprising:
- receiving, by a packet capture service executing in the cloud computing environment, a Kubernetes custom resource definition defining an application programming interface (API) endpoint indicative of one or more packet capture filters, wherein the packet capture filters define network traffic to be captured by the packet capture service;
- based on the packet capture filters, generating, by the packet capture service, a configmap object that indicates to the Kubernetes pods which data packets are to be captured at the plurality of Kubernetes pods, wherein the configmap object is an API object configured to store data in key-value pairs, and wherein the configmap object is usable by the Kubernetes pods as an environment variable, command-line argument, or configuration file;
- causing, by the packet capture service, execution of data capture containers executing at the Kubernetes pods that are configured to detect the configmap object;
- and
- reading, at each Kubernetes pod via the data capture containers, the configmap object and initiating a capture of the indicated data packets specified by the configmap object.
A method for providing a centralized service for capturing network traffic associated with a microservice in a 5G network implementing a plurality of network interfaces, the 5G network hosting a plurality of container clusters executing the microservice, the method comprising:
- receiving, by a packet capture service executing in the 5G network, a packet capture filter defining network traffic to be captured by the packet capture service, the network traffic associated with a microservice in the 5G network;
- based on the packet capture filter, generating, by the packet capture service, a configmap object that indicates which data packets are to be captured, wherein the configmap object is an API object configured to store data in key-value pairs, and wherein the configmap object is usable as an environment variable, command-line argument, or configuration file;
- causing, by the packet capture service, execution of data capture containers executing at the container clusters that are configured to detect the configmap object;
- and
- reading, at each container cluster via the data capture containers, the configmap object and initiating a capture of the indicated data packets specified by the configmap object.
A computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by one or more processors of a computing device, cause the computing device to perform operations rising:
- receiving a customer resource definition defining one or more capture filters for capturing network traffic in a distributed computing environment comprising a plurality of computing devices executing a plurality of Kubernetes pods;
- based on the capture filters, generating a configmap object specifying data packets to be captured, wherein the configmap object is an API object configured to store data in key-value pairs, and wherein the configmap object is usable by the Kubernetes pods as an environment variable, command-line argument, or configuration file;
- and
- causing injection of capture sidecars at the Kubernetes pods, the capture sidecars configured to detect the configmap object and initiate a capture of the specified data packets.
Dependencies are inferred from the claim text.