Giter Club home page Giter Club logo

kubebox's Introduction

Kubebox ⎈❏

Terminal and Web console for Kubernetes

Features

  • ✓ Configuration from kubeconfig files (KUBECONFIG environment variable or $HOME/.kube)

  • ✓ Switch contexts interactively

  • Authentication support (token, username / password, private key / cert, OpenID Connect, Amazon EKS, Google Kubernetes Engine, Digital Ocean)

  • ✓ Namespace selection and pods list watching

  • ✓ Container log scrolling / watching

  • ✓ Container resources usage (memory, CPU, network charts) [1]

  • ✓ Container remote exec terminal

  • ❏ Object configuration editor and CRUD operations

  • ❏ Cluster and nodes views / monitoring

  • ❏ Port proxying and interactive HTTP client

Follow %40kubebox 00ACEE for some updates.

Run

The following alternatives are available for you to use Kubebox, depending on your preferences and constraints:

Executable

Download the Kubebox standalone executable for your OS:

# Linux
$ curl -Lo kubebox https://github.com/astefanutti/kubebox/releases/download/v0.6.1/kubebox-linux && chmod +x kubebox
# OSX
$ curl -Lo kubebox https://github.com/astefanutti/kubebox/releases/download/v0.6.1/kubebox-macos && chmod +x kubebox
# Windows
$ curl -Lo kubebox.exe https://github.com/astefanutti/kubebox/releases/download/v0.6.1/kubebox-windows.exe

Then run:

$ ./kubebox

Server

Kubebox can be served from a service hosted in your Kubernetes cluster. Terminal emulation is provided by Xterm.js and the communication with the Kubernetes master API is proxied by the server.

To deploy the server in your Kubernetes cluster, run:

# Make sure to replace the following fields:
# - The ingress host
# - The subject service account namespace
$ kubectl create -f https://raw.github.com/astefanutti/kubebox/master/kubernetes.yaml

For the Ingress resource to work, the cluster must have an Ingress controller running. See Ingress controllers for more information.

Alternatively, to deploy the server in your OpenShift cluster, run:

$ oc new-app -f https://raw.github.com/astefanutti/kubebox/master/openshift.yaml

Kubectl

You can run Kubebox as an in-cluster client with kubectl, e.g.:

$ kubectl run kubebox -it --rm --env="TERM=xterm" --image=astefanutti/kubebox --restart=Never

If RBAC is enabled, you’ll have to use the --serviceaccount option and reference a service account with sufficient permissions.

Docker

You can run Kubebox using Docker, e.g.:

$ docker run -it --rm astefanutti/kubebox

You may want to mount your home directory so that Kubebox can rely on the ~/.kube/config file, e.g.:

$ docker run -it --rm -v ~/.kube/:/home/node/.kube/:ro astefanutti/kubebox

Online

Kubebox is available online at https://astefanutti.github.com/kubebox. Note that this requires this address to match the allowed origins for CORS by the API server. This can be achived with the Kubernetes API server CLI, e.g.:

$ kube-apiserver --cors-allowed-origins .*

Authentication

We try to support the various authentication strategies supported by kubectl, in order to provide seamless integration with your local setup. Here are the different authentication strategies we support, depending on how you’re using Kubebox:

Executable Docker Online

OpenID Connect

✔️

✔️

✔️[2]

Amazon EKS

✔️

Digital Ocean

✔️

Google Kubernetes Engine

✔️

If the mode you’re using isn’t supported, you can refresh the authentication token/certs manually and update your kubeconfig file accordingly.

Hotkeys

Keybinding Description

General

l, Ctrl+l

Login

[+],
[Alt+]1, …​, 9

Navigate screens
(use or Alt inside exec terminal)

,

Navigate list / form / log

Enter

Select item / submit form

Esc

Close modal window / cancel form / rewind focus

q, Ctrl+q

Exit [3]

Login

,

Navigate Kube configurations

Namespace

n

Change current namespace

r

Remote shell into container

m

Memory usage

c

CPU usage

t

Network usage

Log

g, +g

Move to top / bottom

Ctrl+u, Ctrl+d

Move one page up / down

FAQ

  • Resources usage metrics are unavailable!

    • You may face issue #56297 that still affects Kubernetes versions from 1.8.0 to 1.11.x

    • The metrics are retrieved from the embedded cAdvisor /stats endpoints, that are accessed by creating a proxy on the node Kubelets, and which requires proper RBAC permission, e.g.:

      $ kubectl auth can-i get nodes/proxy
      yes

Development

$ git clone https://github.com/astefanutti/kubebox.git
$ cd kubebox
$ npm install
$ node index.js

Terminal 🚀


1. Currently requires priviledged access / role.
2. Custom IDP certificate authority files are not supported in Web versions.
3. Not available in Web versions.

kubebox's People

Contributors

593769290 avatar astefanutti avatar codertao avatar gheinrich avatar johnpoth avatar robholland avatar

Watchers

 avatar  avatar

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.