Skydive uncovers microservices networking — the basics
This post demonstrates the Skydive network’s exploration capabilities for IBM Cloud Private over a reference cloud-native microservices application
- IBM Cloud Private 126.96.36.199
- IBM reference architecture cloud-native microservices application
- IBM Skydive Helm Chart
- Basic knowledge of microservices, Kubernetes, and Linux networking is useful for this recipe.
Step 1. Install IBM Cloud Private 188.8.131.52
First, install IBM Cloud Private 184.108.40.206 as detailed here.
– For more information on IBM Cloud Private refer to IBM Cloud Private — Get the speed of public with the control of private
Step 2. Deploy the IBM reference architecture cloud-native microservices application
Next, deploy the cloud-native microservices application on IBM Cloud Private. Detailed instructions are here.
– The reference implementation Cloud Native Microservices Application is also available on Github. Use this link for access.
Step 3. Deploy Skydive
Now, Deploy Skydive on IBM Cloud Private using Helm Chart. Detailed instructions are here.
Make sure you have access to the Skydive UI and proceed to the next step.
- Skydive is also available on GitHub. Use this link for access.
Step 4. Focus the Skydive view on a single Docker container
Now that we have both Skydive and the cloud-native microservices reference application are deployed on IBM Cloud Private we are ready for our first microservices networking exploration.We start our journey by reducing the amount of data in the UI to focus only on the context of the reference application.
In Skydive, select the small menu icon with three horizontal lines on the upper left side of the screen (red box in the image below).
A menu will appear, this menu allows you to filter the visual content in Skydive.
Skydive uses Gremlin to express subgraph filters. Type G.V().Has(“Docker.Labels.app”, “bluecompute”) into the filter box and press Enter. This will focus the view to show only Docker containers labeled bluecompute. Those are the bluecompute application containers controlled by Kubernetes:
To further focus our context, we will highlight frontend tier containers. Type G.V().Has(“Docker.Labels.tier”, “frontend”) in the Highlight box and press Enter.
The yellow highlighted node is the front-end container of the reference architecture cloud-native microservices application. Selecting this container to display the metadata properties of the container in the panel on the right side of the screen.
Now that we are focused on a single object (Docker container under Kubernetes control), we can explore the properties of the object. The information in the panel includes data from various infrastructure layers, Kubernetes, Docker, and Linux.
To get more details on the Skydive Gremlin implementation, use this link.
Step 5. Explore the network interface
We’ll now expand the context view to the Kubernetes pod that holds the container of-interest and find the relevant pod network interface. Type in the Filter box G.V().Has(“Docker.Labels.tier”, “frontend”).Both().OutE().BothV() and press Enter:
The above Gremlin expression represents the node in the graph that has the Docker.Labels.tier set to frontend including all nodes that are single-edge away from that center node.
The collapsed view of the Kubernetes pod is displayed on the screen. To further expand the view and see the ingredients of the pod, you can either double-click the pod, or select the pod and click the expand button (+ and two arrows) on the lower left hand-side of the screen.
Press the X button to to close the filter box.
Now, we will further explore eth0, the network interface of this pod. Using the mouse, drag the eth0 node to the center of the screen. Next, use the mouse scroll or zoom-in button on the lower left side of the screen (+ magnify glass) to zoom in on the node. To see the node’s metadata and explore network traffic statistics, scroll down the panel on the right side of the screen.
In the Interface metrics panel of the screenshot, you can see statistical information on the discovered network interface. This includes the number of bytes sent and received, and the number of packets sent and received. Click the small cogwheel icon on the panel to reveal more statistical information for the selected interface, including network errors and dropped packets.
Step 6. Conclusion
In this recipe we used IBM Cloud Private deployed with both Skydive and a reference cloud-native microservices application to demonstrate some basic features of the Skydive network exploration.
More information on Skydive and a description of additional capabilities can be found in the Skydive documentation at this link.
Originally published at developer.ibm.com.