Visualizing Kubernetes Clusters with Navigate

Brian Kang
3 min readOct 29, 2021

--

Navigate is a free, open source Kubernetes cluster visualizer offering views of a cluster and its network policies, while displaying aggregated live logs.

So Kubernetes is this amazing orchestration tool for managing large scale containerized applications. It automates so many things: replicating pods, restarting containers, and handling traffic based on configuration files — but you already know all that. Let’s hop straight into the problems it suffers:

  1. There’s no easy way to check if your config files are what you actually want — you have to spin up the cluster first.
  2. There is little visibility into the “brain” of the cluster, the node scheduler; its logs are spread out all over in different CLI commands.
  3. Speaking of, using the kubectl CLI is extremely unfriendly. For example, just getting logs from a pod requires you to type out the individual pod name, which might be something like “mafia-ui-78849d9c9b8f-d6njh”.

Solutions? Enter: Navigate.

What is Navigate?

Our team faced these issues working in Kubernetes and decided to do something about it. Our initial solution: a Kubernetes cluster visualizer that can take in your YAML config files to see the structure of the cluster.

Once you spin up the app and add your cluster’s YAML files, the visualization kicks in. It starts with an overall Cluster view, which hides away individual pods but shows the connections between services, stateful sets, and deployments in each cluster namespace.

However, you can click on individual deployments to zoom into a Node view, seeing each deployment’s pods and connections.

Early on we realized that visualizing a k8s cluster was always going to be messy. There’s just way too many objects and connections, so we tried to clean up the user experience by separating out connections of individual pods from the larger k8s objects.

Aggregated Logs

Getting past node scheduler decisions is a pain, as we’ve mentioned. Those logs are spread out all over the cluster, and it’s hard to know exactly what decisions the scheduler has made. Have no fear, the Navigate Cluster View actually starts with those when your cluster is running:

For other live logs, clicking on a deployment node in the Cluster view will send you to the Node View. Here the left panel will display live deployment logs, and further clicking on a Pod within the Node View will in turn give you its logs.

Network Policies

A little bit into development, we were showing Navigate around and a user asked us to implement a network policy visualizer so he could more easily see what was going on. He got it:

Visualize all your network policies and how traffic will flow

Parting Thoughts

Development on Navigate is ongoing, and the team is happy to have conversations about Kubernetes or improving the product.

Feel free to reach out to us on LinkedIn or contribute to our Github repo!

--

--

Brian Kang

software engineer and game developer focusing on great UX