/KubeVX

Designed with users in mind, KubeVX offers an engaging and intuitive interface to effortlessly understand and monitor Kubernetes clusters. Our standout features include a dynamic dashboard for key metrics, customizable visualizations, real-time alerts, and an AI-assisted cluster diagram for in-depth insights.

Primary LanguageJavaScript

Logo

JavaScript NodeJS Express.js React CSS3 HTML5 Docker Kubernetes Prometheus Grafana ChartJS Helm GKE AKS EKS MongoDB MaterialUI Redux JWT ReactTable OAUTH Bcrypt Webpack Babel GitHub


Website Medium LinkedIn



KUBEVX

Welcome to KubeVX, an open-source solution crafted to enhance Kubernetes development with intuitive and efficient data presentation. Equipped with a user-friendly interface and powerful features, KubeVX simplifies Kubernetes complexities, allowing developers to focus sharply on optimizing application performance.

Features

  1. You will first see a login page. Go ahead and create an account.

  2. Next, input data on your clusters so KubeVX can access it

add cluster


  1. You should be able to see metrics graphs under Dashboard

dashboard


  1. Cluster View features an AI chatbot powered by the OpenAI API. You will have to purchase an Open AI API key to use this feature. After purchasing, input your API key in this format "OPENAI_API_KEY={insert api Key}" in a .env file in your root folder. The logic to access this key is already built out at the top of AIController.js . The chatbot is programmed to only answer K8s related questions.

clusterview AI


  1. This is the learn kubernetes page. Click around and see definitions of each term.

learn k8s


  1. You can use the custom metrics if you want to access specific information about your cluster that’s not displayed on the dashboard

custom metrics


  1. The logs provide information of your cluster’s status while running

logs


  1. Alert page displays anomalies in your clusters so you can see what needs fixing

alert

Setup

Make sure you have the requirements installed: MacOS, Homebrew, Helm, Docker, Minikube, Grafana, Prometheus.

Keep Docker running in the background.

First, clone our repo

Prometheus

  1. If you haven’t installed Helm, use homebrew:
brew install helm
  1. Run these commands to install prometheus and helm-charts:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/prometheus
  1. This following command routes the port for Prometheus:
kubectl port-forward svc/prometheus-server 9090:80 -n default

Grafana

  1. Run these two commands:
brew install grafana
brew services start grafana
  1. Open your web browser and navigate to http://localhost:3000/.

Log in with the default credentials:
Username: admin
Password: admin

Prometheus must be running on localhost:9090.

  1. Search import dashboard -> input 1860 -> chose Prometheus -> import
    Repeat this step for 7249 and 8588.

Set Allow Embedding

  1. Run this command in your terminal:
sudo pico /opt/homebrew/etc/grafana/grafana.ini

If you have a Mac with the Intel chip, use this command instead:

sudo pico /usr/homebrew/etc/grafana/grafana.ini
  1. Scroll through the terminal with arrow keys to find the security section.

Set “allow_embedding = true” and make sure it is not commented out with a #.

Control + O to write out, press return/enter key to confirm and control + X to exit.

  1. Run this command for changes to take effect:
brew services restart grafana
  1. Go to http://localhost:3000/admin/settings on your browser to confirm.

Set up YAML files

Run “minikube start” in your terminal to initialize minikube. It may take a while if this is a first-time setup.

Now you need to apply the yaml files at the root directory of kubeVX:

Run the following commands in your terminal:

kubectl apply -f webapp-deployment.yaml
kubectl apply -f webapp-service.yaml
minikube service webapp-service

Start Application

npm install
npm run build
npm run dev

Once you complete setting up, you can navigate to localhost:7070 in your browser to see the result.

Contributing

Contributions play a vital role in the open-source community. Any contributions are greatly appreciated!

  • Fork the project.
  • Create and work off of your feature branch.
  • Create a pull request with a detailed description of your changes from your feature branch to dev branch.
  • Please let us know when PR submission is done. Once the changes are reviewed and approved, we will merge your code into the main repository.

Our Team