Kubernetes client tools overview

Introduction
All of us know kubectl
, but with wide adoption of Kubernetes over the last few years, several interesting client side tools have come up that can help improve your daily interaction with a Kubernetes cluster.
In this post, we'll take a high level overview of many such client side applications and see how it can help you.
k9s
k9s
offers a terminal based UI, to interact with Kubernetes clusters. The UI looks similar to other continuos running Linux commands like top
. k9s
continually watches the Kubernetes cluster for changes and allows you to interact with Kubernetes resources inline.
- Type: Standalone (uses
kubectl
in background). - Installation: Binaries for Linux, Windows and Mac are available as tarballs in the release page.
- Kubernetes version: Currently
k9s
required Kubernetes version 1.13 and above. - Community:
k9s
is pretty popular and has a great community working together to improve it further. Join the Slack community at K9ersSlack. - Interesting features: Supports Plugins which let you define your own cluster commands.

tubectl
Tubectl is a simple yet powerful wrapper around kubectl
which aims to reduce complexity of working with contexts, namespaces and intelligent matching resources. Tubectl allows switching seamlessly between contexts and namespaces, for example Instead of typing kubectl --context staging
or kubectl --context production
now you just type tubectl @st
or tubectl @prod
. Similarly, Instead of kube-system
in such command kubectl get pods -n kube-system
, you can type tubectl get pods +sys
.
- Type: Standalone (uses
kubectl
in background). - Installation: Binaries for Linux, Windows and Mac are available as tarballs in the release page.
- Kubernetes version: Currently
tubectl
required Kubernetes version 1.13 and above. - Community:
tubectl
community hangs out at slack.reconquest.io.
webkubectl
Web Kubectl helps you to manage kubernetes credentials and run kubectl command in web browser, so that you don't have to install kubectl on your local PC or some other servers, furthermore Web Kubectl can be used for a team.
- Type: Standalone (uses
kubectl
in background). - Installation: Simple installation with Docker image.
$ docker run --name="webkubectl" -p 8080:8080 -d --privileged kubeoperator/webkubectl
. - Kubernetes version: Compatible with Kubernetes clusters with support for
kubectl
. - Community:
webkubectl
discussion happens on the GitHub Repo currently. - Interesting features: Multiple session support with single
webkubectl
deployments, with complete session isolation.

kube-prompt
kube-prompt is an interactive kubernetes client featuring auto-complete. It accepts the same commands as the kubectl, except you don't need to provide the kubectl prefix. So it doesn't require the additional cost to use this cli.
- Type: Standalone (uses
kubectl
in background). - Installation: Binaries for Linux, Windows and Mac are available as tarballs in the release.
- Kubernetes version: Compatible with Kubernetes clusters with support for
kubectl
. - Community:
kube-prompt
discussion happens on the GitHub Repo currently.

kubectl-tree
This is a kubectl
plugin that allows you to explore relationships between Kubernetes object in well know tree format. The tree layout allows a nice, visual overview of various resources present on the Kubernetes cluster and their relationships.
- Type:
kubectl
plugin. - Installation: Use krew plugin manager to install
kubectl-tree
ontokubectl
. Refer doc here. - Kubernetes version: Compatible with Kubernetes clusters with support for
kubectl
. - Community:
kubectl-tree
is fairly popular with ~1.5k GitHub stars. All the discussion happens on the GitHub Repo currently.

Other interesting kubectl plugins
kubectx
kubectx
is a utility to manage and switch between kubectl contexts. Refer: https://github.com/ahmetb/kubectx
kubens
kubens
is a utility to switch between Kubernetes namespaces. Refer: https://github.com/ahmetb/kubectx/#kubens1
kubectl trace
kubectl trace is a kubectl plugin that allows you to schedule the execution of bpftrace
programs in your Kubernetes cluster. Refer: https://github.com/iovisor/kubectl-trace
ksniff
A kubectl plugin that utilize tcpdump and Wireshark to start a remote capture on any pod in your Kubernetes cluster. Refer: https://github.com/eldadru/ksniff.
kubectl-unbound-pvc
A small plugin to list Persistent Volume Claims which are not in Bound
state. Refer: https://github.com/ishantanu/kubectl-unbound-pvc