【发布时间】:2020-04-16 04:54:27
【问题描述】:
我的要求是在自定义指标上扩展 PODS,例如来自队列的待处理消息增加 pod 必须增加以处理作业。在 kubernetes 中,扩展与 prometheus 适配器和 prometheus 运算符一起工作正常。
我在 pod 中运行了很长时间的进程,但 HPA 检查自定义指标并尝试缩减,由于此进程终止了操作中间并丢失了该消息。我如何控制 HPA 只杀死没有进程运行的空闲 pod。
AdapterService 收集自定义指标
- seriesQuery: '{namespace="default",service="hptest-service"}' 资源: 覆盖: 命名空间: 资源:“命名空间” 服务: 资源:“服务” 姓名: 匹配:“msg_consumergroup_lag” metricsQuery: 'avg_over_time(msg_consumergroup_lag{topic="test",consumergroup="test"}[1m])'
HPA 配置
- 类型:对象 目的: 描述对象: 种类:服务 名称:custommetric-service 指标: 名称:msg_consumergroup_lag 目标: 类型:值 值:2
【问题讨论】:
-
请分享您使用的自动缩放配置。
-
我已经更新了配置细节。扩大规模工作正常。当它发现队列中的消息较少时发生缩减,服务和进程消耗了 msg,以及我如何指示 HPA 检查进程是 POD 并选择空闲 POD 进行缩减。这里还有一件事是我的服务调用外部进程并等待获得响应,因此我无法使用基于 CPU/内存的验证
标签: kubernetes keda keda-scaledjob