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