欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Kubernetes节点磁盘管理

时间:2023-05-18

Kubernetes集群运行一段时间后,通常会出现磁盘占用过高的问题。这里聊聊排查这类问题的方法和思路。

问题点

如果是正常的Linux服务器出现这种情况,解决方案无非是ssh到该主机查看大文件然后进行删除。Kubernetes上也是如此,但问题在于,其中的节点由Kubernetes自己管理,登录秘钥管理人员很可能不知道。

所以通常的问题点是:无法进入Kubernetes节点。就磁盘问题来说,是无法进入节点的文件系统。

进入节点

有两个进入节点的方式

使用Lens管理软件,它是一个非常厉害的Kubernetes IDE,提供直接进入节点的能力。自建pod,将节点根目录挂载在该pod的子目录。即挂载整个文件系统

本文专注第二种方式,这类deployment的Manifest如下,关键点:节点亲和性设置到想要管理的节点

apiVersion: apps/v1kind: Deploymentmetadata: labels: app: admin-entry name: admin-entry namespace: defaultspec: replicas: 1 selector: matchLabels: app: admin-entry strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: app: admin-entry spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchexpressions: - key: kubernetes.io/hostname operator: In values: - cn-shenzhen.172.18.18.192 containers: - image: 'busybox:latest' name: admin-entry resources: requests: cpu: 10m memory: 512Mi stdin: true tty: true volumeMounts: - mountPath: /host-dir name: volume-1611735574911 dnsPolicy: ClusterFirst restartPolicy: Always volumes: - hostPath: path: / type: '' name: volume-1611735574911

然后创建

# 创建kubectl apply -f xxx.yaml# 进入podkubectl exec -it admin-entry-xxx -- sh

大文件占用排查

与文件相关的有两个命令

du:统计列举文件或文件夹的大小df:列出整个文件系统的占用情况。列出的是磁盘设备的占用率

一般大文件排查用du命令。涉及到三个参数

-h:以人类可读的方式展示-d N:展示指定层级的目录-a:不只展示文件夹,文件也展示

其它参数通过du --help查看,对当前这个问题有如下:

# 进入挂载的目录/ # cd /host-dir/# 列出当前文件夹下第一层文件夹的大小/host-dir # du -h -d 10./sys4.0K./media384.0K./root4.0K./srv37.5M./etc46.0M./opt32.0K./tmp2.2G./usr4.3M./run4.0K./home131.2M./boot0./proc4.0K./mnt33.3G./var16.0K./lost+found0./dev35.7G.

可以看出主要占用在/var下。继续排查发现占用高主要问题有两个

/var/lib/docker/overlay2,docker创建的容器、镜像、其他资源占用,不能随便删除/var/log,产生的日志,这里我们可以删除不用的,能节省较多空间 总结

本文说的这种进入节点的方式,只能管理文件系统,但是无法管理pod之外的其它进程。使用lens则可以。

对于Kubernetes的磁盘占用率过高,通过上述两种清理闲置镜像 + 多余log文件的形式,可以节省出较多空间。如果能加个定期任务做这两件事,基本可以直接解决该问题。

#!/bin/shdocker image prune -a -f;rm /var/log/messages*

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。