NodeHasNoDiskPressure解决--docker修改默认存储路径

当Kubernetes节点因/var/lib/docker磁盘空间不足导致pod被Evicted时,可通过更改Docker存储路径来解决。步骤包括删除Evicted pod,停止kubelet和docker服务,移动原有存储目录到新路径,修改docker.service配置并重启服务。此外,Eviction还可能由其他资源耗尽引起,需检查描述信息确定原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

1、kubernetes突然出现了Evicted状态的pod。
2、使用命令kubectl get po -o wide发现node2上所有的pod状态都变成Evicted了,别的node上的pod还是正常的。
3、再使用命令kubectl describe po po-name查看pod的详细描述,发现报错如下NodeHasNoDiskPressure
4、查看主机磁盘空间,果然/var下磁盘空间不足使用超过80%,于是决定修改docker的默认存储路径至/data/docker。

解决

1、首先要删除Evicted状态的pod
kubectl get po |grep Evicted | awk '{print $1}'|xargs kubectl delete po
2、停止kubelet和docker

> systemctl stop docker 
> systemctl stop kubelet

3、将/var/lib/docker移动到/data路径

mv /var/lib/docker /data/docker

4、修改docker.service,在ExecStart后面指定目录,如下:

> vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --graph /data/docker

5、启动docker

> systemctl daemon-reload
> systemctl start docker
> systemctl start kubelet

6、查看是否生效

> docker info
...
Docker Root Dir: /data/docker
...
扩展

如果kubernetes出现Evicted状态的pod不一定是磁盘空间的问题,也可能是其他资源耗尽的原因,可以通过kubectl decribe 看看是否有有用信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值