测试环境有一台宿主机出现了异常,大量的异常日志导致宿主机的磁盘使用率超过了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