我在集群中设置了一个kubernetes HPA,它可以按预期的方式随着cpu /内存的增加和减少来扩展和减少pod的实例。
唯一的事情是我的pod处理Web请求,因此偶尔会缩小正在处理Web请求的pod。 Web服务器永远不会从按比例缩小的pod中获得响应,因此Web api的调用者会返回错误。
从理论上讲,这一切都是合理的。我的问题是,有人知道处理此问题的最佳做法吗?有什么方法可以等到所有请求都处理完再缩小?还是采用其他方法来确保请求在HPA缩小pod之前完成?
我能想到一些解决方案,我都不喜欢:
- 将重试机制添加到调用方,并保持群集不变。
- 请勿将HPA用于Web请求窗格(似乎无法达到目的)。
- 尝试创建某种自定义指标,看看是否可以将该指标导入Kubernetes(例如https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-custom-metrics)
任何建议将不胜感激。预先感谢!