记一次pod伸缩时流量提前进入的解决思路

347次阅读
没有评论

共计 565 个字符,预计需要花费 2 分钟才能阅读完成。

由于业务需求,需要在网关上新增一个配置,由于不支持软加载,对 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

后期在观察下效果

正文完
 0
yx
版权声明:本站原创文章,由 yx 于2021-03-24发表,共计565字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码