-
✓ 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
The following alternatives are available for you to use Kubebox, depending on your preferences and constraints:
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
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
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.
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
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 .*
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.
Keybinding | Description |
---|---|
General |
|
l, Ctrl+l |
Login |
[⇧+]◀, ▶ |
Navigate screens |
▲, ▼ |
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 |
-
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
-
$ git clone https://github.com/astefanutti/kubebox.git
$ cd kubebox
$ npm install
$ node index.js