记一次K8smaster 节点一次排错实战

举报
kaliarch 发表于 2022/05/14 11:15:09 2022/05/14
【摘要】 记一次K8smaster 节点一次排错实战 一 背景 1.1 监控报警master01/master03有告警 1.2 登陆查看api-server pod状态 二 操作 2.1 查看pod信息查看pod状态查看日志[root@master01 ssl]# kubectl logs -f -n kube-system kube-apiserver-master01查看监控信息 2.2 检测...

记一次K8smaster 节点一次排错实战

一 背景

1.1 监控报警master01/master03有告警

1.2 登陆查看api-server pod状态

二 操作

2.1 查看pod信息

  • 查看pod状态

  • 查看日志
[root@master01 ssl]# kubectl logs -f -n kube-system kube-apiserver-master01

  • 查看监控信息

2.2 检测证书

不知道证书在哪里,可以查看apiserver服务使用的证书进行验证。

curl --cacert /etc/kubernetes/ssl/ca.crt --cert =/etc/kubernetes/ssl/apiserver-kubelet-client.crt --key /etc/kubernetes/ssl/apiserver-kubelet-client.key https://127.0.0.1:6443/healthz

三 master内存太小

3.1 编写脚本

#!/bin/bash

#内存使用超过阀值
WARN_LINE=20
# 日志记录文件
LOG_DIR=/var/log/memfree/
[ ! -d ${LOG_DIR} ] && mkdir -p ${LOG_DIR}
LOG_FILE=$(date +%F)-memefree.log
LOG_TOTLE=${LOG_DIR}${LOG_FILE}

# 内存总量
MEM_TOTLE=$(free  -m | awk 'NR==2{print $2}')

# 内存使用量
#MEM_USE=$(free  -m | awk 'NR==2{print $3}')

# 内存空闲
MEM_FREE=$(free  -m | awk 'NR==2{print $4}')
# 已使用百分比
#USE_PERCENT=$(printf "%5f" `echo "scale=5;${MEM_USE}/${MEM_TOTLE}"|bc`)
USE_PERCENT=$(awk -v use=${MEM_FREE} -v totle=${MEM_TOTLE} 'BEGIN{printf "%0.0f",use/totle*100}')

echo ${USE_PERCENT}
if [[ ${USE_PERCENT} -le ${WARN_LINE} ]];then
        echo "---------$(date +%F" "%T) mem free begin---------" >> ${LOG_TOTLE}
        echo "内存释放前,使用情况如下:" >> ${LOG_TOTLE}
        free -m &>>${LOG_TOTLE}
        sync
        echo 1 > /proc/sys/vm/drop_caches
        echo 2 > /proc/sys/vm/drop_caches
        echo 3 > /proc/sys/vm/drop_caches
        echo "内存释放结束后,使用情况如下:" >> ${LOG_TOTLE}
        free -m &>>${LOG_TOTLE}
        echo "---------$(date +%F" "%T) mem free end---------" >> ${LOG_TOTLE}
fi

3.2 制作定时任务

  • 查看执行后结果

四 反思

之后集群再也不会出现类似内存不足的情况。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。