如何根据自定义指标扩展 knative 服务?

Posted

技术标签:

【中文标题】如何根据自定义指标扩展 knative 服务?【英文标题】:How to scale knative service based on custom metrics? 【发布时间】:2022-01-14 00:53:36 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

后台进程的问题在于,Knative 和 Kubernetes 无法了解哪些 Pod 仍在工作,因此它们很可能会像关闭空闲的 Pod 一样关闭正在工作的 Pod .

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

【讨论】:

以上是关于如何根据自定义指标扩展 knative 服务?的主要内容,如果未能解决你的问题,请参考以下文章

Knative路由管理

Knative 基本功能深入剖析:Knative Serving 之服务路由管理

Knative 实战:如何在 Knative 中配置自定义域名及路由规则

Knative 实战:如何在 Knative 中配置自定义域名及路由规则

NearestNeighbors sklearn 的自定义指标

扩展XAF模型信息实现自定义功能