跳过正文
  1. 博客文章/

快速删除 Rancher 中失败的 Pod 资源

·218 字·2 分钟·
Kubernetes Fix Rancher Kubernetes Pod
Zayn
作者
Zayn
专注 Kubernetes、CI/CD、可观测性等云原生技术栈,记录生产环境中的实战经验与踩坑复盘。
目录

问题描述
#

在 Rancher 管理的 Kubernetes 集群中,有时会出现副本集中的 Pod 部署失败的情况。如下图所示,失败的 Pod 数量可能达到上千个,手动逐一删除非常耗时。

image-20210527085545254

解决方案
#

批量删除失败的 Pod
#

使用 kubectl 命令批量删除状态为 MatchNodeSelector 的失败 Pod:

IFS='
'

for i in `kubectl get po --all-namespaces | grep -i 'MatchNodeSelector'`; do
    kubectl delete po `echo $i | awk '{print $2}'` -n `echo $i | awk '{print $1}'`
done

命令说明

  • kubectl get po --all-namespaces:获取所有命名空间中的 Pod
  • grep -i 'MatchNodeSelector':筛选出状态为 MatchNodeSelector 的 Pod
  • awk '{print $2}':提取 Pod 名称
  • awk '{print $1}':提取命名空间名称
  • kubectl delete po:删除指定的 Pod

执行结果
#

image-20210527085807930

其他常见失败状态
#

除了 MatchNodeSelector 外,还可以根据需要删除其他状态的失败 Pod:

删除 ImagePullBackOff 状态的 Pod
#

for i in `kubectl get po --all-namespaces | grep -i 'ImagePullBackOff'`; do
    kubectl delete po `echo $i | awk '{print $2}'` -n `echo $i | awk '{print $1}'`
done

删除 CrashLoopBackOff 状态的 Pod
#

for i in `kubectl get po --all-namespaces | grep -i 'CrashLoopBackOff'`; do
    kubectl delete po `echo $i | awk '{print $2}'` -n `echo $i | awk '{print $1}'`
done

删除 Pending 状态的 Pod
#

for i in `kubectl get po --all-namespaces | grep -i 'Pending'`; do
    kubectl delete po `echo $i | awk '{print $2}'` -n `echo $i | awk '{print $1}'`
done

注意事项
#

  1. 谨慎操作:删除 Pod 前请确认这些 Pod 确实是失败的且可以安全删除
  2. 备份重要数据:如果 Pod 中包含重要数据,请先进行备份
  3. 检查依赖关系:确保删除这些 Pod 不会影响其他服务的正常运行
  4. 分批处理:如果失败 Pod 数量过多,建议分批删除以避免对集群造成过大压力

预防措施
#

为了减少失败 Pod 的产生,建议:

  1. 资源配置:合理配置 Pod 的资源请求和限制
  2. 节点标签:正确配置节点标签和 Pod 的节点选择器
  3. 镜像管理:确保容器镜像可用且版本正确
  4. 监控告警:设置监控告警及时发现和处理 Pod 异常

相关文章

修复 Rancher 单机部署升级后 Docker 无法启动问题
·257 字·2 分钟
Kubernetes Fix Docker Rancher
Rancher 开启监控后的,阈值告警配置说明 (三)
·273 字·2 分钟
DevOps Kubernetes Prometheus Alertmanage Rancher Prometheus Operator K8s Kubekey Exporter
Rancher 开启监控后,exporter/metrics 的添加说明 (二)
·1283 字·7 分钟
DevOps Kubernetes Prometheus Rancher Prometheus Operator K8s Kubekey Exporter Metrics