• Introduction • Prerequisites • Getting started • Installation • Considerations • Open Source • Creators •
KuView is an open-source tool for simplified Kubernetes metric visualization. It offers a customizable, interactive dashboard to track and monitor local Kubernetes clusters with real-time metrics in a user-friendly UI.
This application requires you to have Docker, Minikube, and Kubectl installed in order to view your local kubernetes cluster. Please download based on your operating system from the official website or Github releases.
- Docker Desktop: https://www.docker.com/products/docker-desktop/
- Minikube: https://minikube.sigs.k8s.io/docs/start/
- Kubectl: https://kubernetes.io/docs/tasks/tools/
After these are installed, start Minikube with Docker:
- Open a terminal or command prompt and run
minikube start --driver=docker
. This will start the local Minikube cluster using Docker as the driver. - To verify the status of your Minikube cluster, run
minikube status
. - To interact with your minikube cluster, use the kubectl command line interface tools
- To stop and delete your Minikube cluster, you can run the commands
minikube stop
andminikube delete
.
To get started with opening the web application, first clone this repo onto your machine. In order to have the application work, you will need to create an .env file to store your mongo-URI and a port for the express server to run on. Within your .env file please type the following:
MONGO_URI = '<mongodb URI>';
PORT = 4000;
Once that file is created, open the terminal and install all the packages with
npm install
then type in
npm run dev
On your browser, localhost:8080 should appear, and you are now running our application!
If this is your first time using the application, you will need to register an account. If you have already have an account, proceed with logging in.
Once you type in your username, password, and email, the application will direct you to login.
After typing in your credentials and logging in, our application will automatically handle the installation of Prometheus and Grafana on your Kubernetes cluster through helm and apply our custom .yaml files.
We would highly recommend installing HomeBrew manually before using KuView to avoid possible installation issues.
The dashboard will be saved onto your account and be displayed afterwards.
You can now view your cluster metrics in real-time, and the dashboard will update automatically. Feel free to personalize the dashboard and rearrange the layout to your preference!
As KuView is still early in it's development stage, there are a few things to keep in mind when using this application.
KuView requires a number of defult ports to operate. Please avoid using the ports listed below.
For more information, execute the following command in your terminal kubectl get services
after login for the first time.
Port | Application |
---|---|
8080 | Kuview Dashboard |
4000 | Express |
9090 | Prometheus |
3000 | Grafana |
-
If a new account is created, any old account will have an issue loading the dashboard. This is due to a conflict in Grafana. Upon a new user login, KuView creates/overrides the existing Grafana dashboard and assigns it a new ID. for a smooth experience, please only use one account or the newest account created.
-
We currently have an issue relaunching the Node server due to a persistent cookie after shutting down the app. This is because the Login page redirects to the dashboard without port forwarding. For a smooth experience, please either logout before killing the Node server or delete the cookie if you do encounter this issue.
If you would like to contribute and make KuView a better Open Source Project, we welcome you with open arms.
Below lists a table of features we currently have and future plans.
Feature | Status |
---|---|
Automate installation | 🎉 |
Grafana yaml config | 🎉 |
Custom dashboard | 🎉 |
Password ecryption | 🎉 |
Jest Front-end Testing | 🎉 |
Jest Back-end Testing | ⏳ |
Typescript conversion | ⏳ |
Alert System | 🙌 |
Node health Visualizer | 🙌 |
Cluster Visualizer | 🙌 |
- 🎉 = Completed!
- ⏳ = In Development!
- 🙌 = Open for Contribution!
Creators | GitHub | |
---|---|---|
Cameron Kirksey | ||
Eric Esposito | ||
Eric Rennie | ||
Jason Yeung | ||
Richard Dao |