oslabs-beta / kubik

K8s Visualization Tool

Home Page:https://kubik-group.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Logo

JavaScript React Node Express OAUTH passport Bcrypt Vite Docker Kubernetes Prometheus Grafana Helm MongoDB MaterialUI HTML CSS Jest

kubik

Welcome to kubik!

kubik is an open-source Kubernetes visualization dashboard designed to give you an intuitive and efficient way to visualize the health and structure of your local Kubernetes clusters. kubik transforms the complex Kubernetes environment into an easy-to-navigate and understand interface, reducing the learning curve for new users. It displays the information you need at a glance, allowing you to focus on key metrics and potential issues.

Features

Google OAuth 2.0

Google OAuth 2.0

Secure your Kubernetes cluster health monitoring with the power of Google Authentication and log in seamlessly using your Google credentials. This standardized approach to user access provides a robust layer of security for your project and cluster data.

Adding Clusters

Cluster Visualization

Expand your monitoring capabilities by connecting and adding Kubernetes clusters to your centralized health tracking system. Streamline the process of integrating clusters, allowing you to keep an eye on multiple environments from a single platform.

Metrics Dashboard

Cluster Visualization

Experience comprehensive insights into the health and performance of your Kubernetes cluster through a responsive dashboard. Monitor key metrics such as CPU utilization, RAM usage, disk space, memory, and network performance in real-time.

Cluster Visualization

Cluster Visualization

Gain a deeper understanding of your Kubernetes ecosystem with an interactive cluster graph representation. Explore the intricate relationships and complex interdependencies among nodes, pods, services, and deployments in a visually engaging manner.

Cluster Setup

  1. Set up minikube, a local Kubernetes to get started with testing kubik by following the minikube documentation.

  2. Install and configure Docker by following the Docker documentation.

  3. Create an example yaml file named "webapp-deploymment.yaml" to use a simple Nginx web server for the webapp with the following content:

webapp-deploymment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webapp-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: webapp
  template:
    metadata:
      labels:
        app: webapp
    spec:
      containers:
        - name: webapp-container
          image: nginx:latest
          ports:
            - containerPort: 80
  1. Run the following terminal command to deploy the web server.
kubectl apply -f webapp-deployment.yaml
  1. Create an example yaml file named "webapp-service.yaml" to create a service to expose the deployment with the following content:

webapp-service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: webapp-service
spec:
  selector:
    app: webapp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort
  1. Run the following terminal command to expose the web application's service.
kubectl apply -f webapp-service.yaml
  1. Update the "webapp-service.yaml" file to include Prommetheus annotations. This allows your application to be discovered and scraped for metrics.

webapp-service.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: webapp-deployment
  annotations:
    prometheus.io/scrape: 'true'
    prometheus.io/port: '80'
spec:
  replicas: 2
  selector:
    matchLabels:
      app: webapp
  template:
    metadata:
      labels:
        app: webapp
    spec:
      containers:
        - name: webapp-container
          image: nginx:latest
          ports:
            - containerPort: 80
  1. Run the following terminal command to apply the changes.
kubectl apply -f webapp-deployment.yaml
  1. Install helm by following the Helm documentation.

Prometheus/Grafana Setup

  1. Deploy the Prometheus monitoring and alerting toolkit by running the following terminal command:
helm install prometheus prometheus-community/prometheus
  1. Forward the Prometheus service from the 'default' namespace within your Kubernetes cluster to port 9090 on your local machine by executing the following terminal command:
kubectl port-forward svc/prometheus-server 9090:80 -n default
  1. Install and log into Grafana by following the Grafana documentation.

  2. Configure your grafana.ini by following the Grafana documentation.

  3. Under the [security] section, change "allow_embedding" from "false" to "true". Restart Grafana.

App Launch

  1. Clone the repo.

  2. Set up the .env file by using the .template.env file.

  3. Install the dependencies by running the following command:

npm install
  1. Run the application by running the following commands:
npm run start
  1. Visit http://localhost:[PORT] in your browser.

Contribution

Any contributions are always welcomed and appreciated!

  • Fork the project.
  • Create your feature branch.
  • Create a pull request detailing the changes you would like to introduce.
  • Create a new issue on GitHub.

Our Team

About

K8s Visualization Tool

https://kubik-group.com/


Languages

Language:JavaScript 96.2%Language:CSS 3.5%Language:HTML 0.4%