事故现场情况
公司项目演示环境登录报错
分析问题
cnetos 7系统,项目使用 k8s集群部署
排查业务系统问题,查看集群kube-system的pod状态
`kubectl get pod -n kube-system`
发现网络组件 calico-node 的 READY 为 0/1 (有种情况是,当磁盘资源不足20%的情况 calico-node会起不来)
`du -h --max-depth=1` (发现跟系统盘超过80%,系统盘只有40G)
发现 /var/log 的磁盘空间占用达到30G左右
`du -sh * | sort -rn` (发现journal和messages每个文件基本都是5G左右)
journal日志问题解决
检查当前journal使用磁盘量
journalctl --disk-usage
清理方法可以采用按照日期清理,或者按照允许保留的容量清理,只保存2天的日志,最大500M
journalctl --vacuum-time=2d
journalctl --vacuum-size=500M
如果要手工删除日志文件,则在删除前需要先轮转一次journal日志
systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service
要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf
SystemMaxUse=16M
ForwardToSyslog=no
重启
systemctl restart systemd-journald.service
检查journal是否运行正常以及日志文件是否完整无损坏
journalctl --verify
messages日志问题解决
修改配置文件 /etc/rsyslog.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
大约配置文件的54行 ,修改为
*.none /var/log/messages
重启
systemctl restart rsyslog
清除已有的messages日志
cat /dev/null > messages-xxxxxx (指定对于的日志文件)
解决系统问题
重启kube-system的calico-node的pod以及 业务系统 的pod,系统能正常登录使用。