One of the most valuable features of the
kubectl utility is its plugins.
So, in this post, we will install Krew –
kubectl‘s plugins manager, and will take a look at the list of the plugins, that are used by me during work.
Krew – plugins manager for the
kubectl got its own plugins manager,
It has a plugins repository used to install and upgrade plugins.
On the Arch Linux
krew can be installed from AUR:
Update its packages list:
Look for a plugin, for example,
kubectl – useful plugins list
At the end of this post I’ll add a couple of links with a similar plugins list, and here below let’s take a look at the best, as for me, plugins that I’m using during work.
Let’s start from the
kubectl-topology plugin that allows to display all cluster’s WorkerNodes, their regions, and pods located on each node:
kubectl-resources plugin can display extended information about limits and resources used by pods on WorkerNodes.
Install with Go:
kubectl-free plugin is similar to the
free utility in Linux – it will display information about used and available resources on WorkerNodes.
Install it by downloading an archive from the release page, unzip, and copy to the
And run it:
kubecolor is very useful to make
kubectl‘s output more readable by colonizing it.
Install with Go:
Add an alias to the
An improved variant of the
kubectl --watch. The project’s page is here>>>.
An advanced logs viewer. Similar to the
kubectl logs -f, but can tail logs from all pods in a namespace. More details here>>>.
And check logs from the istio-system namespace:
kubectl-who-can is used to display RBAC permissions and accesses.
Install with Krew:
And check who is able to delete pods in the default namespace:
kubectl-rolesum is also used to work with the Kubernetes RBAC to check permissions.
And check permissions for the kiali-service-account ServiceAccount in the istio-system namespace:
ketall will display indeed all resources including Secrets, ServiceAccount, Roles, Binding and so on, and not only Pods, Services, Daemonsets, Deployments, and ReplicaSets, as it is when using the
kubectl get all.
An example of the
kubectl get all command’s output:
And with the
kubectl-status can display extended information about pods’ statuses, nodes, deployments, services, and so on.
And check Kubernetes WorkerNodes status with the
role: data-workers label set:
Pod-Dive will display information about a Kubernetes Pod – its WorkerNode, a namespace, containers in that pod, and other pods, that are running on the same WorkerNode.
And check a Pod:
kubectl-janitor – a “cleaner” for a Kubernetes cluster. Can find problematic resources, such as unscheduled pods, failed jobs, volumes, etc.
And find all pods that are not scheduled to a WorkerNode:
And the last plugin for today –
Actually, there are a lot of plugins to simply work with
kubectl‘s contexts, but I’m using dedicated files for clusters instead of dedicated contexts:
For a faster switch between them, we can use the
kubectl-cf plugin, that will work via creating symlinks to the
Pay attention, that all files must have the
Install it – clone its repository, build, and copy to the
- awesome-kubectl-plugins – a curated list of awesome
- Top 179 Kubectl Plugins Open Source Projects on Github
Also published on Medium.