我正在使用 Azure Kubernetes 服务来运行从 RabbitMQ 中提取、运行一些处理并返回它的 Go 应用程序。豆荚可扩展以处理增加的工作。相当普通的东西。
HPA 设置如下:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
production Deployment/production 79%/80% 2 10 10 4d11h
staging Deployment/staging 2%/80% 1 2 1 4d11h
随着 HPA 的扩展和缩减,总会有 2 个 pod 保持运行。我们发现,运行这么久之后,这些 Pod 上的 Go 应用程序会超时。有时是几天,有时是几周。是的,我们可能可以深入研究代码并弄清楚这一点,但对于那个团队来说,这是一种低优先级。
我想到的另一个解决方案是让 HPA 首先删除最旧的 pod。这意味着最老的 pod 永远不会超过几个小时。先进先出的模型。
但是,我没有看到任何明确的方法来做到这一点。完全有可能不是,但它似乎是可行的。
我错过了什么吗?有没有办法使这项工作?