/kube-aliases

Kubernetes Aliases and Bash Functions

Primary LanguageShellMIT LicenseMIT

kube-aliases

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.

Usage

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.

Aliases

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. kdp for kubectl delete pods
kds<r>      # kubectl describe <resource>, e.g. kdsp for kubectl describe pod
ke<r>       # kubectl edit <resource>, e.g. kep 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.

Installation

Oh-My-Zsh

git clone https://github.com/Dbz/kube-aliases.git ~/.oh-my-zsh/custom/plugins/kube-aliases
echo "plugins+=(kube-aliases)" >> ~/.zshrc

You can also manually place kube-aliases 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.

Antigen

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

Zgen

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

Zinit

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

Bash

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

Aliases for Kubernetes Extensions

kubectx

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

Autocomplete

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.