Klusterview: K8s Metrics Made Easy

KlusterView
5 min readJun 22, 2023

We are excited to introduce KlusterView, a streamlined and flexible tool designed to simplify Kubernetes metrics visualization. Although Kubernetes environments can be complex and overwhelming, KlusterView provides a user-friendly interface that distills the essential metrics and offers a clear view of cluster health. Whether you are an individual developer or part of a small team without extensive DevOps resources, KlusterView empowers you to monitor your Kubernetes cluster with ease.

Background: Containers and Kubernetes

Before we dive in, let us briefly touch upon the fundamentals of containers and Kubernetes. Containers have transformed the software development landscape by allowing applications to run reliably across different computing environments. They offer a standardized environment that encapsulates the application code, runtime, system tools, and libraries required for its execution. This portability enables developers to build applications that can run reliably across different computing environments, from development laptops to production servers.

Kubernetes is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications. It provides a robust infrastructure for running distributed systems, offering features such as container scheduling, service discovery, load balancing, and self-healing capabilities.

However, effectively monitoring the health and performance of a Kubernetes cluster can be challenging. The Prometheus/Grafana/Kube State Metrics (PGK) stack, often considered the gold standard for performance monitoring in Kubernetes, requires extensive configuration and can overwhelm users with its vast array of metrics and visualization options.

Introducing: KlusterView

This is where KlusterView comes in. It is a universally compatible plug-and-play visualization tool that distills the best of what the PGK stack has to offer into a streamlined interface. KlusterView enables users to access critical performance information quickly, without the need for platform-specific setup or specialized configuration.

Streamlined Monitoring for Kubernetes Clusters

With KlusterView v1.0, you gain access to an embedded dashboard that provides moment-by-moment resource usage metrics (CPU, memory, disk), pod and node health status, and trends in these metrics over a variable time window. This immediate visibility allows you to identify and address concerns promptly.

Additionally, KlusterView offers a schematic representation of cluster nodes and their constituent pods, providing top-line pod-level performance metrics at a glance. This visual representation simplifies the identification of container-specific issues and helps you maintain a comprehensive overview of your cluster’s health.

A Single Point of Access

KlusterView eliminates the need to expose additional in-cluster tools to the local network by providing a single point of access. Simply point your browser to Port 31001 on any Node in your cluster, and you can instantly view the state of your cluster.

Integration and Customization

For those looking to integrate KlusterView with existing monitoring tools, the platform offers a prebuilt, development-ready application image with hot reloading. It also provides a robust front- and back-end testing suite, along with accessible installation scripts and YAML configuration files for easy modification.

Installation and Usage

Prerequisites:

Before installing KlusterView, please ensure that the following dependencies are installed:

  • Kubernetes 1.16+ (with access to the kubectl utility)
  • Helm 3+ (for Helm installation method)

Choose Your Installation Method:

KlusterView offers two installation methods: Helm Chart and Manual Installation. Choose the method that suits your preferences and existing infrastructure.

Helm Chart

To install KlusterView using the Helm Chart method, please:

  1. Add the KlusterView chart repository to Helm
helm repo add klusterview https://oslabs-beta.github.io/KlusterView/
helm repo update

2. Install the KlusterView chart

helm install [Release name of your choice] klusterview/klusterview

Manual Installation

To install KlusterView manually, please:

  1. Clone the KlusterView GitHub Repository
git clone https://github.com/oslabs-beta/KlusterView

2. Navigate to the project’s scripts directory and execute the setup script with root user permissions. This script will create the Kubernetes objects defined in the project’s deployment/_manual_install/ directory.

cd klusterview/scripts
./setup.sh

Accessing the Application

Once KlusterView is installed, you can access the application using one of the following methods, depending on the structure and location of your Kubernetes cluster:

  • If your cluster nodes are accessible on the local network, point your web browser to Port 31001 on any Node in your cluster.
  • Use a built-in tunnel service (e.g., Minikube’s minikube service command) to access Port 31001 on any Node through your local network
  • Use port forwarding (e.g., via the kubectl port-forward command) to access Port 31001 on your local network.

Configuration (Optional)

KlusterView comes with sensible default configurations. However, if you wish to customize certain aspects of how KlusterView and related services operate, you can modify the YAML configuration files located in the KlusterView deployment directory. You may also edit the Grafana dashboards displayed in the application directly: the JSON files defining these dashboards are located in the deployment/_dashboards/ directory.

Development Roadmap

Our development roadmap for KlusterView encompasses a range of current features and exciting plans for the future. Currently, KlusterView offers cluster- and node-level resource usage and pod status monitoring, detailed pod-level resource usage and status monitoring, and cluster- and node-level structural information via the intuitive node graph feature. We have also implemented KlusterView in TypeScript, ensuring a reliable and maintainable codebase.

Looking ahead, we have some exciting developments in progress. We are actively working on providing full support for Grafana Live features, which will make the monitoring experience more responsive and immediate. Additionally, we are working on in-window support for dashboard customization, allowing users to personalize their monitoring views within the KlusterView interface.

To enhance security and access control, we are seeking contributors to help integrate KlusterView with Grafana’s Role-Based Access Control (RBAC) system. This integration will provide fine-grained access control for users, ensuring the right level of permissions within the monitoring environment.

In the future, we plan to introduce live monitoring of pod-level error and information logs, enabling real-time analysis and troubleshooting of issues within your Kubernetes cluster. Additionally, we aim to integrate KlusterView with Grafana’s Alerts Management system, empowering users to set up proactive monitoring and receive alerts based on resource usage and status thresholds.

Contributing to KlusterView

KlusterView is an open-source project developed under the tech accelerator Open Source Labs. We welcome anyone interested in this product to contribute to its development. You can find the source code on the KlusterView GitHub repository. Your contributions and feedback will help us enhance the tool and build a stronger community.

In Sum

With KlusterView, monitoring the health and performance of your Kubernetes cluster becomes a breeze. Its user-friendly interface, simplified setup process, and comprehensive visualization capabilities make it an indispensable tool for developers and small to midsize enterprises. Install KlusterView today and gain valuable insights into your Kubernetes environment without the complexity and specialized knowledge required by traditional monitoring solutions.

--

--

KlusterView

Get instant insights on your Kubernetes clusters with our lightweight, plug-and-play performance monitoring tool