Awesome Open Source
Awesome Open Source


This is an oh-my-zsh plugin (or source kube-aliases.plugin.zsh for bash) to make working with kubernetes easier. It provides a bunch of bash aliases and zsh functions. Docs can be found here, which clarifies all aliases.


There are a few main features of this plugin. First, there are lots of aliases to make working with Kubernetes easier. Second, there are bash functions to help with varies tasks such as switching contexts to use different clusters.


To see a full list of aliases, use

khelp usage

In general and when it makes sense, aliases follow the following conventions.

k           # kubectl
kd<r>       # kubectl delete <resource>, e.g. kgp for kubectl delete pods
kds<r>      # kubectl describe <resource>, e.g. kdsp for kubectl describe pod
ke<r>       # kubectl edit <resource>, e.g. kgp for kubectl edit pods
kg<r>       # kubectl get <resource>, e.g. kgp for kubectl get pods
kga<r>      # kubectl get --all-namespaces -o wide <resource>, e.g. kgap for kubectl --all-namespaces -o wide get pods
kl          # kubectl logs <podname>
klf         # kubectl logs -f <podname>: i.e. watch logs live

There is also some other useful commands such as the following:

kcon       # create configuration files
kdap       # delete all pods within a namespace
kdrain     # drain a node
kexec      # execute a command in a specified pod,
           # default drops user into a shell
kfind      # use a regular expression to find items across everything except
           # custom resources
kgpns      # Get just pod names in a namespace
kpfind     # Search through pods with regular expressions
krd        # restart a deployment
kstatus    # search across namespaces to find pods statuses

For a more detailed list of aliases, view the docs.

Not everything is currently implemented, but more and more is being added to the list. If something is missing that is desired, feel free to submit a pull request.



git clone [email protected]:Dbz/kube-aliases.git ~/.oh-my-zsh/custom/plugins/kube-aliases
echo "plugins+=(kube-aliases)" >> ~/.zshrc

You can also manually place zsh-kuberenetes inside of plugins=(...)

If you have set the ZSH_CUSTOM environment variable in your zshrc, then you should modify the git clone directory to be $ZSH_CUSTOM/plugins/kube-aliases.


Add antigen bundle dbz/kube-aliases to your antigen bundles in your .zshrc


Add zgen load dbz/kube-aliases to your zgen plugins in your .zshrc


Add zinit load Dbz/kube-aliases to your zinit plugins in your .zshrc


Source kube-aliases.plugin.zsh in your .bashrc.

Aliases for Kubernetes Extensions


For easy context and namespace switching there is kubectx. kubectx allows users context switching, and the linked github comes with kubens which allows for simple namespace switching. You can use the following aliases:

alias kctx='kubectx'
alias kns='kubens'

Kubernetes Metrics Server

To get some metrics from nodes or pods, you can use Kubernetes Metrics Server. There are the aliases

alias kt='kubectl top'
alias ktn='kubectl top nodes'
alias ktp='kubectl top pods'

Trouble Shooting


If there is problems with autocomplete, it may be that kubectl is not on the path when the plugin is loaded. To fix, load plugins after adding kubectl to path.

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
shell (10,397
kubernetes (1,766
bash (628
devops (581
metrics (346
zsh (318
command-line-tool (296
k8s (234
cluster (194
autocomplete (180
kubectl (83
oh-my-zsh (34
zsh-plugin (27
namespace (23