A few weeks ago I decided to go on a journey of learning Kubernetes. Initially because it sounded really cool, useful to learn, and also because it sounded like the solution to every DevOps question out there. Is there a reliable container management tool? Kubernetes. Is there a way to automate deployment? Kubernetes. Is there anything that can stop the stock market from sliding further (so I can stop losing my gains for the year)? Kubernetes. Is there a way we can stop the E. coli outbreak in romaine lettuce? Kubernetes. Just feels like the right answer for everything.

All kidding aside, those that have started out learning about the Kubernetes ecosystem may understand the growing pains, the complexity involved and the difficulty in deploying a real application. Even more taxing is to look through the Kubernetes documentation, where you can get lost inside of it for hours and feel quite overwhelmed.

It didn’t feel tangible so I decided to draw it out. And then after that I decided it would be awesome to create a visualization tool. Thus, SPEKT8 came to fruition; to help users spekt8 a Kubernetes cluster (see what I did there?? 😅)

Essentially, the visualization tool will automatically build logical topologies of your application and infrastructure, which enables you to intuitively understand, monitor, and control your containerized, microservices based application.

Topology Mapping

SPEKT8 builds logical topologies of your application and infrastructure. A topology is a collection of nodes and edges, where nodes represent objects like processes, container or hosts. Edges indicate TCP connections between nodes. Different node types can be filtered on and inspected more deeply. Nodes are presented in a particular order with the clients above servers. As a general rule, you can read our graph view by going from top to bottom.

Objects in Scope

When your app is running in Kubernetes, it displays Pods, Services, and Ingresses that allow you to drill down on Kubernetes clusters.

We display Pods, Ingress, and Services (Nodeport, Load Balancer, Cluster-IP, Persistent Volume Claims, Persistent Volumes).

While the current app does not directly visualize any controllers (such as Deployments, Daemon Sets, Replication Controllers), we are continuously building more support for additional Kubernetes objects.

Graph/Table View

In addition to these views, nodes can be presented either in graphical or in table mode. The graphical mode is practical for obtaining a quick visual overview of your app, its infrastructure and connections between all of the nodes. And when you switch to table mode, nodes are presented in a convenient list that displays the resources being consumed by processes, containers, and hosts.

Zero config needed

Zero configuration or integration required — just launch and go. SPEKT8 automatically detects processes, containers, hosts. No kernel modules, no agents, no special libraries, no coding. Seamless integration with Docker and Kubernetes.

Setup/installation steps

A deployment file is provided so that you can apply it directly to your Kubernetes cluster using the command line.

kubectl apply -f spekt8-deployment.yaml

kubectl port-forward deployment/spekt8 3000:3000

Then, open your web browser to http://localhost:3000.

In addition, in order to allow reading resources of the API, you must configure a set of permissions. We have set up a YAML file using RBAC authorization which you can apply directly to your Kubernetes cluster using the command line:

kubectl apply -f fabric8-rbac.yaml

Whether you are new to working with Kubernetes or are an experienced DevOps engineer, we hope this can be a useful tool to understand the state of your Kubernetes cluster better.

If you are looking for resources on getting started on Kubernetes, I highly recommend the article, Kubernetes 101: Pods, Nodes, Containers, and Clusters by Daniel Sanche. Solid read.