此文主要内容为新建一个盘,创建软链接,查找大文件,批量删除驱逐状态的pod
查看demo环境发现跑在master上的pods都是Evicted 被驱逐的状态-如图
deacribe被驱逐的pod,发现是硬盘资源不足导致。The node had condition: [DiskPressure].
查看硬盘资源,发现根目录下资源已经使用97%。
准备了一块新盘,但是没有使用,于是来新建一块盘。
可以使用disk -l 查看所有的盘。这里因为记录已经过掉了,故无截图。
增加一个硬盘
#新建一个分区
fdisk -l #查看硬盘
fdisk /dev/sdc # .dev/sdb为挂载需要的硬盘
m #查看帮助信息
n # 添加一个新的分区
p #输出分区表
1 #这里的数字要看情况,一般使用默认的就好
enter #默认就好
enter #默认就好
w #将刚做的配置写入内核
#格式化硬盘
mkfs.ext4 /dev/sdc1 #格式化 1 是上面步骤的
mkdir /data
mount /dev/sdc1 /data #将硬盘挂载到data目录下
#永久挂载
vi /etc/fstab 永久挂载 按照文本的写法
/dev/sdc1 /data ext4 defaults 0 0
挂载好文件后,查看是否挂载成功
[root@demo-master ~]# mount | grep /dev/sdc
/dev/sdc1 on /data type ext4 (rw,relatime,data=ordered)
df -h
查看很多的文件都是docker的,于是想着将docker的东西存到data目录下,如果要修改docker文件的额默认地址,会比较麻烦,可以使用软链接连过去。
创建软链接
cp -a /var/lib/dokcer /tmp/ #备份
cp -a docker /data/ #注意此处需要-a
ln -s /data/docker/ ./ #创建软链接
软链接创建完成,可以尝试往/var/lib/docker里面写入文件,你会在/data/docker目录下看到这个文件。
将文件移除后,发现磁盘占用还是大于80%,再继续查看有哪些文件是占了很大空间的。
后来觉得日志文件也比较大,于是把日志文件也移到/data目录下了,这样根目录下的磁盘空间不回持续增加
查找大文件
find . -type f -size +500M -print0 | xargs -0 du -h | sort -nr
查找大于500M的文件,然后按数值大小排倒序
最后删除一些东西之后,根目录磁盘占比为75,将处于驱逐状态的pod删除,然后运行成功。
kubectl get pod -o wide --all-namespaces | awk '{if($4=="Evicted"){cmd="kubectl -n "$1" delete pod "$2; system(cmd)}}'