本文主要是介绍Shell脚本——批量清理Kubernetes集群中Evicted状态的pod,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
测试环境有一台宿主机出现了异常,大量的异常日志导致宿主机的磁盘使用率超过了85%,触发了上面的pod驱离策略,该宿主机上的的pod处于Evicted状态。在清理了磁盘之后,得手动处理掉这些Evicted状态的pod。
#!/bin/bash# 获取当前状态为Evicted的pod
# 并输出到一个临时文件内# 这是输出的文件按制表符tab键间隔
#kubectl get pods --all-namespaces | awk '/Evicted/ {print $1 "\t" $2}' > evicted_pods.txt# 这是输出的文件按空格符间隔
kubectl get pods --all-namespaces | awk '/Evicted/ {print $1 " " $2}' > evicted_pods.txt# 这是按空格示例,截取文本解析成字段:命名空间和pod名
while IFS=' ' read -r namespace pod_name; do# 这是按制表符tab键示例,截取文本解析成字段
#while IFS=$'\t' read -r namespace pod_name; do# 验证命名空间和 Pod 名称是否存在if [[ ! -z "$namespace" && ! -z "$pod_name" ]]; thenecho "kubectl delete pod $pod_name -n $namespace:"kubectl delete pod "$pod_name" -n "$namespace"fi
done < evicted_pods.txt## 可选是否清理临时文件
rm -f evicted_pods.txt
这篇关于Shell脚本——批量清理Kubernetes集群中Evicted状态的pod的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!