记一次K8smaster 节点一次排错实战
【摘要】 记一次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)