假期中的服务重启

公司配置了服务重启的钉钉报警,假期中偶然发现自己负责的商业网盘工程,竟然连续三天深夜重启了。

第一想到的是定时任务,定时任务一般设置在夜里,业务访问量很少的情况,自信查看了三天的重启时间,发现是随机的,而且工程也没有oom 报警,只是单纯的重新启动。

疫情中的排查

因为团队处于创业阶段,身兼数职,第一天在排查一个bug 的同时,开始思考工程重启的原因,

先看了监控,发现确实深夜中异常重启,重启的时间发现了异常的网络流量,开始怀疑是不是其他项目的定时任务调用了我的工程,转念意向,我的工程服务处于上层,同级服务也没有深夜中跑的逻辑,接下再分析,发现 生产环境两个服务节点,只有固定一个节点发生了重启,这里开始想到 docker的宿主机的资源不足导致。

同时产生两个疑问,资源不足不是更可能发生在白天么,为什么晚上资源不足。

宿主机节点资源不足时不应该随机选择一个服务重启么,为啥三天都是我的应用中奖。

联系公司运维

虽然是创业公司,创业团队,但好歹老板也是技术起家,运维团队还是比较给力的

运维获悉问题之后发来一张图
在这里插入图片描述

宿主机节点,从凌晨2点开始内存使用量逐步接近100%,导致服务被重启。

运维同事排查,不仅仅是我负责的项目,其他项目也被重启了,只是监控信息没有暴露,这里是监控不完善,导致一开始判断信息不完整。

那么宿主机为啥选择我的服务呢

这里应该和驱逐策略有关系,
k8s 根据驱逐策略选择一个pod 停止,然后再根据重启策略重启这个服务。

参考资料:https://www.orchome.com/kubernetes/index
https://blog.csdn.net/weixin_36162235/article/details/113085461

参考:https://www.fancv.com/article/1649264227

Logo

开源、云原生的融合云平台

更多推荐