为什么要编写该脚本?
k8s集群中如果资源不足,经常会有pod出现Evicted的状态,手动清理比较麻烦;
k8s集群中如果有pod出现非running状态,而没有配置健康检查探针,不会自动重启,这时需要手动重启。
#!/bin/bash
#定时清理或者重启问题pod,状态非running
namespace_arry=(test kube-system)
for i in ${namespace_arry[@]}
do
echo "正在清理或重启空间 ${i} 非running的pod"
/opt/kube/bin/kubectl get pod -n ${i} | grep -vi running |awk '{if(NR>1){print $1}}'
/opt/kube/bin/kubectl get pod -n ${i} | grep -vi running |awk '{if(NR>1){print $1}}' | xargs -i /opt/kube/bin/kubectl -n ${i} delete pod {}
done
# 定时任务
0 0 */2 * * sh /opt/clean_pod.sh >/dev/null &