今年双十一阿里云玩high了,不仅自己服务挂了,我们这些租用阿里云的企业也手动波及。周末收到一大堆集群报警信息,打开k8s一看,superise,几千个pod显示Evicted状态。虽然服务都自动拉起了,但是这些异常信息留着不会自动清理,非常恶心。不管从页面删,还是写命令一条一条删都非常费力。因此百度了一下,利用管道命令批量删除pod,统一清理干净。
- Evicted可使用kubectl中的强制删除命令
# 打印指定命名空间下的所有Evicted 的 pod
kubectl get pods -n namespace | grep Evicted | awk '{print $1}'
## 发现有很多 “Evicted” 状态的pod
## 问题原因:这是由于node节点的资源不够(CPU、磁盘、内存被占用),将现有的pod进行了驱逐。
# 批量删掉pod
kubectl get pods -n namespace | grep Evicted | awk '{print $1}' | xargs kubectl delete pods -n namespace
批量删除所有“Evicted”状态的pod即可
# 执行完成后,检查是否删除所有Evicted状态的pod
kubectl get pods -n namespace
- OutOfCpu可使用kubectl中的强制删除命令
# 打印指定命名空间下所有OutOfCpu 的 pod
kubectl get pods -n namespace | grep OutOfcpu | awk '{print $1}'
# 批量删掉pod
kubectl get pods -n namespace | grep OutOfcpu | awk '{print $1}' | xargs kubectl delete pod -n namespace
批量删除所有“OutOfcpu ”状态的pod即可
# 执行完成后,检查是否删除所有OutOfcpu 状态的pod
kubectl get pods -n namespace
- Terminating可使用kubectl中的强制删除命令
# 删除POD
kubectl delete pod PODNAME -n namespace --force --grace-period=0
# 删除NAMESPACE
kubectl delete namespace NAMESPACENAME --force --grace-period=0
本文使用 文章同步助手 同步