-
-
Save svx/a2310feb53fb71ad232bd7f66fada5bc to your computer and use it in GitHub Desktop.
#!/bin/sh | |
# based on https://gist.github.com/ipedrazas/9c622404fb41f2343a0db85b3821275d | |
# delete all evicted pods from all namespaces | |
kubectl get pods --all-namespaces | grep Evicted | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod | |
# delete all containers in ImagePullBackOff state from all namespaces | |
kubectl get pods --all-namespaces | grep 'ImagePullBackOff' | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod | |
# delete all containers in ImagePullBackOff or ErrImagePull or Evicted state from all namespaces | |
kubectl get pods --all-namespaces | grep -E 'ImagePullBackOff|ErrImagePull|Evicted' | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod |
kubectl get po --all-namespaces | awk '{if ($4 != "Evicted") system ("kubectl -n " $1 " delete pods " $2 " --grace-period=0 " " --force ")}'
($4 != "Evicted") will delete all pods that have not been Evicted, which is the direct opposite of what you want usually.
kubectl get pods --all-namespaces --show-all | grep Evicted | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod
To delete evicted pods from all the namespaces, I use:
kubectl get pods --all-namespaces | grep Evicted | awk '{print $2 " --namespace=" $1}' | xargs -n 2 -d '\n' bash -c 'kubectl delete pod $0 $1'
This will split the parameters correctly for xargs when using the namespace option. Without those options, xargs was joining the output sending something like: kubectl delete pod pod-a --namespace 1 pode-b --namespace 2
.
kubectl get po --all-namespaces | awk '{if ($4 != "Evicted") system ("kubectl -n " $1 " delete pods " $2 " --grace-period=0 " " --force ")}'
hey this is very wrong
do not use kubectl get po --all-namespaces | awk '{if ($4 != "Evicted") system ("kubectl -n " $1 " delete pods " $2 " --grace-period=0 " " --force ")}' this will delete all evited satus pods
kubectl get pods --all-namespaces | grep Evicted | awk '{print "kubectl delete pods -n " $1 " " $2 " --grace-period=0 --force"}' | sh
Show all Failed/Evicted Pods
kubectl get pod --all-namespaces --field-selector=status.phase==Failed
Delete all Failed/Evicted Pods
kubectl delete pod --all-namespaces --field-selector=status.phase==Failed
kubectl get po --all-namespaces | awk '{if ($4 != "Evicted") system ("kubectl -n " $1 " delete pods " $2 " --grace-period=0 " " --force ")}'