记一次k8s节点上出现node.kubernetes.io/disk-pressure污点的问题

目录

问题描述 

原因分析:

解决方案:

其他问题 


问题描述 

k8s部署时pod一直属于Pending状态,也就是说pod未调度到k8s节点上


原因分析:

通过以下命令查看下pod

kubectl get pod

以上命令可以看到各个pod的状态,接下来使用以下命令查看下pod的详细信息:

kubectl describe pod <pod-name>

假如你的pod名是pod-c999b475b-sm65k,那么命令就是:

kubectl describe pod pod-c999b475b-sm65k

通过这个命令可以查看到最底下的Events,我这里忘记截图了,我查看到的提示大概是说这个pod的污点零容忍度什么的。已经提到了污点了,我当时想的是原先这个k8s节点是可以正常部署的,怎么会突然就出现污点没法部署了呢?接着我就用以下命令查看了节点的污点:

kubectl describe node <node-name> | grep Taints

 在输入该命令后我看到node.kubernetes.io/disk-pressure的污点信息,这个是当节点上空间不足的时候才会出现。

如果不知道自己的节点名,可以使用以下命令先查看下pod是部署在哪个节点上的:

kubectl describe pod <pod-name> | grep Node:

从上面的一步步排查下来可以确定是因为存储空间不足导致的,接下来我们就需要去对应的节点看下是因为什么导致存储空间不足的,因为这个节点上给了80G,也没有部署别的应用,就只有docker和k8s的服务,我很疑惑。。。就这两玩意能占用80G? 

 接下来我在节点上使用以下命令查看了磁盘的使用情况:

df -h

从图中可以看到docker的overlay占用很大,知道原因后就好办了。


解决方案:

我的解决方案是删除所有没有使用的docker资源(容器、镜像、网络、数据卷等等):

# 如果你只想清除未使用的容器、网络、卷以及悬空和未引用的镜像请使用这个命令
sudo docker system prune -f

# 如果你需要深度清理请使用这个命令(它会把所有为使用的镜像都删掉,生产环境请谨慎使用)
sudo docker system prune -a -f

 效果:

执行命令后可以看出已经有足够的空间了,接下来pod也正常在该节点上部署了。 

其他问题 

如果你遇到和我一样的问题,跟我做了同样的操作还是无效的话请分别执行以下命令:

systemctl stop docker

systemctl start docker

不要直接restart !!!


👍点赞,你的认可是我创作的动力 !
🌟收藏,你的青睐是我努力的方向!
✏️评论,你的意见是我进步的财富!  

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦境游子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值