由于业务需求,需要在网关上新增一个配置,由于不支持软加载,对pod进行重启。为了方便晚上业务低峰期操作进度
在9点22时进行了pod扩容,从6扩展到12个。但是9.30后,前端状态码报警出现502。
进行排查后发现。在9点22扩容时流量已经提前进入到了新的pod下,而新的pod启动时还没有就绪。
导致新的流量到达新pod时响应出错。
告警时间: 2021-03-23 21:30:21
告警域名: xxxxx
发生事件: 502状态码(10分钟)>100
归属项目: xxx
业务用途: 网关服务
告警数量: 839
排查发现就绪检测如下

readinessProbe:
tcpSocket:
port: ${Port}
initialDelaySeconds: 5
periodSeconds: 10

这个参数initialDelaySeconds:容器启动后要等待多少秒后存活和就绪探测器才被初始化

initialDelaySeconds 字段告诉 kubelet 在执行第一次探测前应该等待 5 秒

而我们的网关配置的时5s

通常一个java应用的启动时间为半分钟到2分钟左右,

所以需要调整这个就绪的探测的时间值

目前调整如下

readinessProbe:
tcpSocket:
port: ${Port}
initialDelaySeconds: 25
periodSeconds: 10

后期在观察下效果

Last modification:March 24, 2021
如果觉得我的文章对你有用,请随意赞赏