neighbor-peace / Zeus

Visualize your Kubernetes clusters through a GUI and query cluster data through custom command lines in your terminal.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

⚡ Zeus ⚡

osLabs

version

GitHub language count GitHub top language

GitHub forks GitHub Repo stars GitHub watchers


Supported OS

mac

linux

Windows


Features

screen-gif

screen-gif

screen-gif

screen-gif

img

img

(back to top)

Getting Started With Zeus

Prerequisites to run Zeus

  • Minikube 🧊 documentation

    • Run minikube with the following command:
    minikube start - p [name of your cluster]
    • Install kubectl Download here

    • Docker Desktop 🐋 Download here

    • Helm Charts, to set up Prometheus Operator Clone git repo here

    • Make sure your pods are running in your cluster by entering the following in your terminal:

      kubectl get pods
      

      or

      kubectl get po -A
      
    • Ensure sufficient computational resources are available to build and user clusters 🖥️

If you are new to Kubernetes, keep this in mind:

💡 In chronological order: Install minikube and kubectl ⇒ Deploy Helm ⇒ Deploy Prometheus & Grafana



(back to top)

Accessing Grafana

  1. You will need to obtain the stateful set of your clusters.

    kubectl get statefulset
    
  2. Copy the stateful set outputted from your terminal to create the yaml files. Below is an example of the syntax to create your files. You can name the files any way you want.

    kubectl describe statefulset prometheus-prometheus-kube-prometheus-prometheus > prometheus.yaml
    

    kubectl describe statefulset prometheus-prometheus-kube-operator-alertmanager > prometheus-alertmanager.yaml
    
  3. To get deployments enter the following command into your terminal:

    kubectl get deployment
    
  4. Create a deployment yaml file with the following command below. Note, you can name this file however you want. Below is an example:

    kubectl describe deployment prometheus-kube-prometheus-operator > prometheus-operator.yaml
    
  5. Create another deployment yaml file with the following command. Note that you can name this file however you want. Below is an example:

    kubectl describe deployment prometheus-kube-prometheus-operator > prometheus-secret.yaml
    
  6. Obtain the list of all services in your cluster, by entering the following command in your terminal:

    kubectl get services > services
    
  7. Look for the pod deploying to 'prometheus-grafana' followed by the ID of the pod. Below is an example:

    kubectl logs prometheus-grafana-6fdd6868b4-hgtp4 -c grafana
    
  8. Open Grafana to a port of your choosing with the command:

    kubectl port-forward deployment/prometheus-grafana [port of your choosing]:3000
    
  9. You will be prompted to login into Grafana. By default, the username and password is set to admin and prom-operator, respectively.




(back to top)

Accessing Prometheus

  1. To ensure all your pods are accessible and running, enter in the following command into your terminal:

    kubectl get po -A
    
    kubectl get pods
    
  2. Obtain the specific deployments in your cluster with the following command:

    kubectl get deployment --namespace=[name of your namespace]
    
  3. Open Prometheus to a port of your choosing with the following command:

    kubectl port-forward prometheus-prometheus-kube-prometheus-prometheus-0 9090
    
  4. Repeat for the Prometheus alert managers:

    kubectl port-forward service/prometheus-kube-prometheus-alertmanager [port #]
    


(back to top)

Running Zeus

  1. Fork and clone the dev branch onto your local branch.

    https://github.com/oslabs-beta/Zeus.git
  2. Install all the dependencies

       npm install 
  3. Create process.env file at the root directory

    root
       ├─ process.env
       ├─ electron
       └─ src
  4. Connect to NoSQL database in .env

    mongoURI = "Your NoSQL URI string"
  5. Ensure your cluster is running and then you can start the desktop application with:

    npm run electron


(back to top)

Made with


For front-end development

Webpack MUI React React Router React Hook Form


For back-end development

NodeJS Express.js MongoDB


For monitoring and data visualizations

Kubernetes Docker Grafana Prometheus



(back to top)

Contributions

For more information regarding how to contribute, please refer to the CONTRIBUTING.md guidelines from this repo.

  1. Fork and clone the dev branch onto your local branch.

    https://github.com/oslabs-beta/Zeus.git
  2. Create a new a feature branch

    [your-name]/AWESOME-FEATURES
  3. Install all the dependencies

       npm install 
  4. Create process.env file at the root directory

    root
       ├─ process.env
       ├─ electron
       └─ src
  5. Connect to NoSQL database in .env

    mongoURI = "Your NoSQL URI string"
  6. Please ensure you are following eslint conventions.

  7. Please ensure to create tests for your feature and that it passes your test suite.

  8. Please be detailed in your pull request.

    img



(back to top)

Founders


(back to top)

About

Visualize your Kubernetes clusters through a GUI and query cluster data through custom command lines in your terminal.

License:MIT License


Languages

Language:TypeScript 72.3%Language:CSS 14.5%Language:JavaScript 12.5%Language:HTML 0.7%Language:Dockerfile 0.1%