目录

一、告警问题 

二、问题分析

三、问题处理

四、结果验证


一、告警问题 

        监控在华为云CCE节点磁盘空间不足告警,节点磁盘使用率100%,看到告警有两种可能:

1、CCE节点磁盘空间不足

2、CCE节点上运行的某个应用POD空间不足,导致告警该节点磁盘不足

二、问题分析

        登录到该对应节点使用常用的磁盘使用空间命令查看(df -h),发现该节点磁盘空间充足,但是有一个POD的存储使用率为100%,可以得知, 该节点磁盘不足告警的原因是pod存储(pvc)溢出导致。并且 使用该pvc的应用是promethus,在我们商城生产环境中,CCE运行的promethus应用对业务没有很大的影响,仅仅是存储一些告警信息,以及POD实例弹性伸缩需要调用,重启或者处理promethus应用不会对业务造成影响。

## 以ssh 的方式登录到告警的节点

df -h

        查看promethus日志发现也是存在存储不足报错( no space left on device),导致promethus无法正常运行。

        在我们的环境中,promethus使用有状态的方式(StatefulSet),应用名字为promethus,并且该应用所在的命名空间为monitoring,所以查看promethus应用的日志命令为:

kubectl  -n monitoring logs promethus-0  

三、问题处理

        通过分析发下是由于promethus的pvc存储空间不足,在CCE中通过插件安装的promethus使用的pvc是由云硬盘提供的,并且是无法直接修改pvc的大小的,当你云硬盘足够大的使用,pvc会自动扩展,所有解决的办法是将云硬盘扩容,由之前的10G扩展到20G。   

        扩展云硬盘后可以看到promethus使用的pv和pvc由10G变成了20G,查看pv和pvc的命令为:

### 查看k8s pv的命令

kubectl -n monitoring get pv |grep pvc-prometheus

### 查看k8s pvc的命令

kubectl -n monitoring get pvc |grep pvc-prometheus

    由于前面说到我们商城环境对promethus的依赖不大,所以优化磁盘的方法还可以缩短promethus数据保留时间,由15天缩短至7天。

## 修改 promethus应用的数据保留时间,使用的命令

kubectl -n monitoring edit sts  promethus

四、结果验证

        由于使用kubectl  edit  命令修改应用参数,应用自动重启,所有我们就没有必要手动重启应用,扩展云硬盘和修改应用数据保留时间后,需要查看promethus应用是否运行正常,并且日志是否正常即可。使用的命令:

## 查看 promethus 应用运行状态

kubectl -n monitoring get po |grep prometheus

## 查看 promethus 异常处理后的日志

kubectl  -n monitoring logs promethus-0  

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐