kubernetes 清理孤儿POD--转发

孤儿pod的产生

节点OOM以后或者节点异常崩溃的情况下,pod未能被正常的清理而导致的孤儿进程。

提示如下

Orphaned pod found - but volume paths are still present on disk

进入k8s的pod目录

cd /var/lib/kubelet/pods/

解决问题

过滤日志中的孤儿pod,删除pod。

#!/bin/bash
num=$(grep "errors similar to this. Turn up verbosity to see them."  /var/log/messages |tail -1 | awk '{print $12}' |sed 's/"//g')
echo $num

while [ $num ]
do
   [ -d "/var/lib/kubelet/pods/${num}" ] && rm -rf /var/lib/kubelet/pods/${num}

  sleep 2s
  num=$(grep "errors similar to this. Turn up verbosity to see them."  /var/log/messages |tail -1 | awk '{print $12}' |sed 's/"//g')
  [ -d "/var/lib/kubelet/pods/${num}" ] || num=

  echo "$num remaining"

done

但是这个方法有一定的危险性,还不确认是否有数据丢失的风险,如果可以确认,再执行。

如果已经挂载了PVC等相关存储,先执行umount再执行删除。

再去查看日志,就会发现syslog不会再刷类似的日志了。

原文地址:https://www.cnblogs.com/xiaoyaojinzhazhadehangcheng/p/11605956.html