With the adoption of Kubernetes grows the number of specialists that interact with K8s clusters on daily basis. Some of those engineers introduce their own customized tools designed to simplify and automate their daily operations with the clusters.
Most of these tools are CLI utilities, with some working as kubectl wrappers or plugins to extend the functionality of kubectl. For example, kubectx and kubens allow for quick switching between kubectl contexts and namespaces within a cluster, while kube-ps1 indicates the actual context and namespace.
Kubectl-aliases provides nearly 800 programmatically generated kubectl aliases to avoid excessive verbosity in command strings. The kube-prompt client features convenient interactive autocomplete using prompts built in Go. The list could go on; more information could be found here.
Among Kubernetes CLI utilities there are also tools with more advanced functionality. For example, K9s, a terminal based UI, allows real-time tracking of cluster resources and activities, which makes it an alternative of a K8s dashboard. Stern provides for the advanced log analysis, as it enables tailing of multiple pods and containers at once. Each result is color coded for quicker debugging.
In the table below we have gathered the most popular CLI utilities and plugins with a brief stats showing the project health on GitHub.
Kubernetes CLI utilities
API/CLI adaptor | Functionality | Stars | Contributors | Commits (last 6 months) |
References |
kubectx | A tool for switching between clusters on kubectl | 6.9k | 36 | 10 | ahmet.im |
kubens | A tool for switching between namespaces on kubectl | 6.9k | 36 | 10 | blogs.oracle.com |
K9s | A terminal based UI to interact with K8s clusters | 6.2k | 58 | 302 | k9scli.io |
Stern | Multi pod and container log tailing for K8s | 3.6k | 22 | _ | kubernetes.io/blog |
kube-ps1 | K8s prompt helper for bash and zsh | 1.6k | 12 | 1 | formulae.brew.sh |
kube-shell | Integrated shell for working with the K8s CLI | 1.6k | 4 | _ | pythonawesome.com |
kubectl-tree | kubectl plugin to browse K8s object hierarchies as a tree | 1.4k | 6 | 38 | ahmet.im |
kubectl-aliases | Aliases for kubectl | 1.3k | 7 | 3 | ahmet.im |
kube-prompt | Interactive K8s client featuring auto-complete using prompts built in Go | 1.3k | 10 | 16 | |
Kui | Hybrid CLI/GUI for cloud-native development, alternative to kubectl | 1.2k | 13 | 550 | awesomeopensource.com |
Click | A CLI focused REPL for quickly interacting with K8s objects | 1.1k | 7 | 50 | databricks.com/blog |
kubectl-trace | A kubectl plugin for scheduling bpftrace programs on your K8s cluster | 880 | 18 | 8 | |
webkubectl | A web based tool to run kubectl commands in web browser | 248 | 6 | 49 | |
kubectl-plugins | A collection of plugins for kubectl integration | 232 | 4 | 10 | |
KubeFuse | K8s as a FUSE filesystem | 228 | 4 | _ | opencredo.com |
kube-tmux | K8s tmux plugin to display the current context and namespace | 200 | 4 | _ | brunoluiz.net |
Vikube | K8s operations from Vim, in Vim | 186 | 4 | 2 | |
tubectl | Wrapper around kubectl, kubectl alternative with quick context switching | 171 | 4 | 1 | |
awesome-kubectl-plugins | Extending kubectl with custom commands | 148 | 4 | 13 | awesomeopensource.com |
KSQL | Tool for interactive database queries on K8s resources | 119 | 3 | _ | confluent.io |
kubeplay | A new way to interact with K8s API from your terminal | 81 | 1 | _ | discuss.kubernetes.io |
kubensx | A tool for Cluster/User/Namespace switching for K8s | 37 | 2 | _ | libs.garden |
kubectld | A microservice to expose kubectl create/apply/get logic | 12 | 9 | _ | |
kubesh | An interactive shell around kubectl | 5 | 1 | _ |
As Kubernetes itself, these client tools are open-source and could be installed from their Git repositories. Hope you will find something useful here!