4

我将 Knative 服务与 KPA 一起使用。基于并发和 RPS 的自动缩放在 Knative 中可用。但是我们需要根据队列长度来扩展不同的服务,因为有长时间运行的异步进程。我们有什么方法可以在 Knative 中实现这一点?我不能使用 Knative HPA,因为我们需要 Knative 的归零功能。提前致谢!

4

1 回答 1

0

如果您有异步(后台或计划进程),则 Knative 可能不适合您的应用程序。已经对公开 HPA v2 自定义指标扫描选项进行了一些调查(如您所述,这可能会阻止缩放为零),但即使使用 HPA2 缩放,您仍然会遇到问题。

后台进程的问题在于,Knative 和 Kubernetes 无法查看哪些Pod 仍在工作,因此它们同样可能会关闭正在工作的 Pod,因为它们是空闲的。

一种解决方法是将异步工作移动到与请求同步(可能通过使用事件发送“做工作”事件),然后同步处理这些事件——如果您的请求采取事件代理不会感到不安很长一段时间才能完成。如果您担心处理时间不统一,您甚至可以运行 Knative 服务的第二个副本来处理长时间运行的请求。

于 2021-12-09T15:28:55.210 回答