自动化处理异常容器导致的K8s节点频繁notready

项目场景:

现象,紧跟我上一篇文章:

kubectl get pod 发现pod长时间处于containercreating状态/或者kubectl get node时node节点长时间处于notready状态/或者kubectl get node时node节点状态一会儿ready一会儿notready状态之间相互转换/pod长时间不更新状态
我上一篇文章:
K8s节点频繁处于notready状态的解决办法


问题描述

由上一篇文章确定原因后,现在希望自动化处理此类异常


解决方案:

使用定时任务3分钟检测一次:

1.编写检测处理脚本.

# vim /opt/rm_exceptional_docker.sh

脚本内容如下:

#!/bin/bash
except_id=`docker ps -a |grep -vi up |grep -i Created |awk 'NR>1 {print $1}'`
if [[ -n "$except_id" ]];then
 echo 异常的容器id为: $except_id
 except_pid_1=`ps -ef |grep $except_id |grep format|awk '{print $2}'`
 except_pid_2=`ps -ef |grep $except_id |grep format|awk '{print $3}'`
 echo 异常进程号为: $except_pid_1 ,$except_pid_2
 echo 开始kill 异常进程号
 kill -9 $except_pid_1
 kill -9 $except_pid_2
 sleep 5
else
 echo 无异常容器
fi

2.给脚本加上执行权限.

# chmod +x rm_exceptional_docker.sh

3.编写定时任务.

# crontab -e

具体内容如下:

# */3 * * * * /bin/bash /opt/rm_exceptional_docker.sh >/dev/null &

查看定时任务:

# crontab -l
*/3 * * * * /bin/bash /opt/rm_exceptional_docker.sh >/dev/null &
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

day-day-up2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值