I use alias or reverse-i-search very frequently to be productive. The downside of it, those commands fade from my memory soon. When I switch new terminal or helping others, I can only think of what operation to perform but not (how ) knowing the exact command. Here I note few frequent commands, alias and function which I use day to day.

Pod queries

To see all container and their image version.

kubectl get pod -o 'custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image'

To see pod’s cpu and memory usage

kubectl top pod

To switch namespace

kn ()
    kubectl config set-context --current --namespace=$1;
kn <namespace name>

To switch context

kc ()
    kubectl config use-context $1;
kc <context name>

Or simply change the KUBECONFIG using reverse-i-search

export KUBECONFIG=~/.kube/<name of the config which you remember and do reverse-i-search>

Labels & Annotations

Show label resources

kubectl get pod --show-labels

Filter resource with specific label

kubectl get pod -l app=my-app
kubectl logs -l app=my-app -f

Get namespaces with given label and value

kubectl get namespaces -l

Get the namespaces which are having specific ( annotation and show the value.

kubectl get namespaces -o jsonpath='{range .items[?(\.kubernetes\.io/instance)]}{}{"\t"}{\.kubernetes\.io/instance}{"\n"}{end}' | column -t -s,


alias k=kubectl
alias kge='kubectl get events -o custom-columns=FirstSeen:.firstTimestamp,LastSeen:.lastTimestamp,Count:.count,From:.source.component,Type:.type,Reason:.reason,Message:.message'
alias kg='k get --sort-by=.metadata.creationTimestamp'
alias kl='k logs --since=5m -f'

Other useful Kubernetes tips

  • Setup bash completion