问题
加入到网格的pod会注入sidecar,当pod停止时可能会有当前pod正在处理中的请求或者当前pod调用外部的请求失败。
原因分析
Pod注入sidecar之后,istio-proxy作为代理会拦截pod的入流量(外部请求当前pod)和出流量(当前pod请求外部),在pod停止时,istio-proxy也会在一段时间内退出,如果这段时间内存量的入和出方向的请求没有处理完,则请求可能失败。
解决方案
修改sidecar代理终止等待时长
- 进入服务网格控制台,选择 sidecar管理 –> sidecar代理配置。
- 选择要配置的命名空间,根据业务需求调整sidecar代理终止等待时长。
修改sidecar生命周期管理策略
sidecar生命周期管理策略可以配置sidecar在启动后或者停止前执行的一些操作,比如可以在pod停止后基于一些信号决定什么时候停止sidecar,保障业务请求都处理完成,配置步骤:
- 进入服务网格控制台,选择 sidecar管理 –> sidecar代理配置。
- 选择要配置的命名空间,根据业务需求调整preStop和postStart配置。