GithubHelp home page GithubHelp logo

oslabs-beta / allok8 Goto Github PK

View Code? Open in Web Editor NEW
274.0 12.0 9.0 11.25 MB

⚡️A pretty swell Kubernetes visualization tool

License: MIT License

JavaScript 97.89% HTML 0.25% CSS 1.49% Dockerfile 0.36%
kubernetes k8s kubernetes-visualization clusters kubectl navigation

allok8's Introduction

Allok8

image ⚓️⚡️🔦

Allok8 is a dynamic, conventional, and uncomplicated Kubernetes visualization tool. Current tooling only enables resource portraits at the pod level. When the application adds layers of complexity, it is advantageous to visualize when pods have multiple containers. This enables users to manage resource levels, navigate clusters, and display all relevant information down to the container level.

The standard practice of one container per pod works most of the time because it lends to better portability, but when containers are interdependent, keeping track of the resource utilization is sparse. Allok8 wishes to showcase that hidden data in hopes of empowering users to further synthesize their K8s implementation.

Further data within containers that is provided (but not limited to):

  • CPU
  • Memory
  • Capacity
  • Addresses

Screenshots

image image

Getting Started

🏗⚙️🛠

In order to access the dashboard, the user must input the K8s cluster API and token which is typically provided by the system administrator. If you need more information to obtain this, we've provided additional instructions on our landing page.

To check the location and credentials that kubectl knows about, use the following command:

kubectl config view

Alternatively, you can refer to the offical K8s documents for more information.

To access a cluster, you would need the location of the cluster and have credentials to access it. Once aquired, simply type in the credentials in the input fields provided, hit fetch, and enjoy! ~

How To Use

🗺📙📊

Minikube Installation

Minikube Start

  • start minikube

minikube start --driver=hyperkit

Minikube Start for test with applications that use ingress-nginx

minikube start

minikube addons enable ingress

minikube start --driver=hyperkit minikube addons enable ingress Note for Minikube Users and the Docker Driver

Recent versions of Minikube will use the docker driver by default when you run minikube start. On Windows or macOS, the docker driver is not compatible with an ingress, which we will be using throughout the course.

https://minikube.sigs.k8s.io/docs/drivers/docker/#known-issues

kubernetes/minikube#7332

To avoid this issue, you can pass the --driver flag with a specific driver or --vm=true

macOS

minikube start --vm=true

or

minikube start --driver=hyperkit

or

minikube start --driver=virtualbox

Windows:

minikube start --vm=true

or

minikube start --driver=hyperv

or

minikube start --driver=virtualbox

  • if using virtual box there is a known installation error

kubernetes/minikube#7332

  • here is a workaround virtualbox workaroud

Enable Addons

  • enable metrics-server addon

minikube addons enable metrics-server

Deployment

  • In Allok8 directory, deploy metrics-server-yaml

kubectl apply -f metrics-server-yaml/

  • Deploy Allok8 with postgres database

kubectl apply -f deploy.yaml

  • If using for testing of other application, deploy yaml files for that application

kubectl apply -f yourApplicationsYamls.yaml

  • verify running pods and services

kubectl get pods -A

kubectl get svc -A

Usage

  • In Allok8 directory,

npm install

  • build

npm run build

  • start

npm start

  • navigate to localhost in browser

http://localhost:3000

  • alternatively Allok8 can be run in dev mode and webpack-dev-server will open a browser

npm run dev

  • Click on GET API/ TOKEN

  • Copy and paste approriate string into terminal concatenating 'echo' on beginning of command

echo $(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')

api-command

echo $(kubectl get secret $(kubectl get serviceaccount default -o jsonpath='{.secrets[0].name}') -o jsonpath='{.data.token}' | base64 --decode )

  • Enter API and TOKEN into Allok8

  • Allow for time as server will aggregate data

  • Refresh page enter API and TOKEN into Allok8 again

  • Enjoy your data!

Contributing

🕊💫👋

We love feedback! We are always looking to improve. For major changes, please open an issue first to discuss what you would like to change, pull requests are welcome.

Built With

🧰🚢🐳

Authors

✏️👩‍💻👨‍💻📓

Previous Authors:

License

🔖⛴

allok8's People

Contributors

alec-irl avatar bjbagher avatar jgillespie0715 avatar jsonseidler avatar nataliavc08 avatar rbargues avatar rexosariemen avatar rllzrc avatar tdmeyerson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

allok8's Issues

Error: connect ECONNREFUSED

  • on start up, if you receive:
Error: connect ECONNREFUSED 192.168.64.7:3xxxxx
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1137:16) {
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '192.168.64.7',
  port: 3xxxx
}

  • in new terminal window get listing of services

kubectl get svc

postgres NodePort 10.107.195.95 <none> 5432:31500/TCP 9m57s

  • take the result of running:

minikube ip

  • and the port postgres is running on, to form a
    new connection string:

postgres://postgres:[email protected]:31500

  • amend database model file:

server/models/dbmodel.js

-this is a known issue

Some printscreens would be great

The github repo does not show any screenshots of your UI. It’s always interesting to see different perspectives on visualizing Kubernetes clusters, but without showing a preview directly in your readme.md one is not inclined to look deeper.

How do I use this?

There doesn't seem to be clear way to use this... Should I just be running npm install and npm run from the root of the repo?

EDIT: It looks npm run-script dev works 🙂
EDIT 2: npm run-scrip both seems to be the way to actually run this repo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.