K8s cheatsheet

Sat, Jan 1, 2022 One-minute read

Get not running pods:

kubectl get pods --field-selector=status.phase!=Running --all-namespaces  
kubectl get pods --field-selector=status.phase!=Running --all-namespaces|grep -v Completed

Delete not running pods:

CONTEXT="name-of-context" ; 
for ELNS in `kubectl --context $CONTEXT get ns | grep -v ^NAME | awk '{print $1;}' | xargs`;
 do 
   if [ "x`kubectl --context $CONTEXT -n $ELNS get pod 2>&1 | grep -v -e Running -e Completed -e ^NAME -e '^No resources'`" = "x" ]; 
    then echo "Nothing to clean"; 
   else echo "Cleaning $ELNS..."; 
    kubectl --context $CONTEXT -n $ELNS delete pod `kubectl --context $CONTEXT -n $ELNS get pod | grep -v -e Running -e NAME -e Completed | awk '{print $1;}' | xargs`; 
   fi; 
 done

Scale multiple deployments:

kubectl -n xxxx get deploy --no-headers -o custom-columns=":metadata.name" > /tmp/d.txt
for deploy in `cat /tmp/d.txt`
do
  kubectl -n xxxx scale deploy/$deploy --replicas=0
done

Other option:

for deploy in $(kubectl -n xxxx get deploy --no-headers -o custom-columns=":metadata.name") 
do
  kubectl -n xxxx scale deploy/$deploy --replicas=0
done