YAKC – Kubernetes Dashboard


Reactive dashboard for Kubernetes built with Quarkus and React

In the new era of cloud-native applications and Kubernetes, you’ll find new alternatives for dashboards and CLI tools every day. This is yet another Dashboard tool.

YAKC – Kubernetes Dashboard is a full-fledged reactive Kubernetes web UI, and is the base project to demonstrate what you can achieve with YAKC Kubernetes Java Client.

The project is still in a PoC phase and I highly advise against using this in any production environment. However, the project is perfectly suitable for local clusters such as Minikube and the perfect aid for cloud-native developers.

Features

Following is the list of features currently covered, you can read more about each of them in their specific section.

  • 100% Open Source
  • Supersonic and Subatomic, built with Quarkus and compiled into an ultra-fast native-image
  • 100% Reactive. Server-Sent Events, Redux, and ReactJS combo pack
  • Search across all observed resources
  • Support for OpenShift specific resources
  • Responsive, mobile-first, clean, modern user interface
  • Integrated YAML editor
  • Support for Custom Resources
  • Container Log Viewer for your Pods
  • Remote Terminal for Pod Containers
  • Security TBD

Supersonic, Subatomic Kubernetes Dashboard

I implemented the Dashboard’s back-end with Quarkus and the YAKC Quarkus extension. This enables the build of a native binary and container image with subatomic memory foot-print and supersonic performance.

An image of YAKC Kubernetes Dashboard logs showing start time in 0.037 seconds

In the previous screenshots you can see that, once running, the Pod container uses < 50 MiB and starts up in less than 0.04 seconds.

100% Reactive

The back-end uses the Server-Sent Events web standard to send a real-time stream of Kubernetes resource updates to the front-end. The front-end web application maintains a local state of the Kubernetes resources in a Redux store which enables the user-interface to update upon any change streamed by the back-end.

An animation showing YAKC Kubernetes Dashboard reactive updates

Search across all observed resources in real-time

Since the cluster state is mirrored in the local Redux state, you can search and query real-time for any of the managed cluster resources in the combined search panel.

Support for OpenShift specific resources

The dashboard detects the underlying cluster technology and presents any additional resources compatible with YAKC.

Additional resources for OpenShift clusters include Deployment Configs and Routes (as of now).

Responsive, mobile-first user interface

I wanted the user interface to be as modern and clear as possible and also to be mobile-first. I designed most interfaces to be properly rendered on mobile devices and leverage screen real-estate for devices with wider screens.

An image of YAKC Dashboard Node details page with cool dials

Security

TO BE DECIDED. This project is still in the PoC phase. I’m still deciding what the best approach to security would be.

How can I try it?

If you made it through here, it’s probably because you’re interested in trying out the project 🎉.

The easiest way to try it is to deploy the provided YAML configurations in your cluster. You can find out more in the specific section of the GitHub repository. Please make sure to read the YAML files and change anything you need before applying them to your cluster (you should never trust any Internet source).

Please share your experience, I’d really like to hear what you think of the project and how I can improve it.

Annex 1: List of supported resources

Leave a comment

Your email address will not be published. Required fields are marked *