首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有公制数的kubernetes HPA

具有公制数的kubernetes HPA
EN

Stack Overflow用户
提问于 2018-11-22 10:12:13
回答 1查看 809关注 0票数 0

目前,我们有一个数据流管道: api调用->、google发布/sub -> BigQuery。api调用的次数将取决于网站上的流量。

我们创建了一个kubernetes部署(在GKE中),用于从pub/sub摄取数据到BigQuery。此部署有一个带有metricName: pubsub.googleapis.com|subscription|num_undelivered_messagestargetValue: "5000"的水平吊舱自动分频器(HPA)。这种结构能够在交通突然增加时自动调节。然而,它将导致一个尖峰的缩放。

我所说的“尖刺”的意思如下:

  1. 未加标记的消息数量将超过目标值。
  2. 自动分频器将增加吊舱的数量。
  3. 因为未加标记的数量会慢慢减少,但是由于它仍然高于目标值,自动分频器仍然会增加荚数->这会发生,直到我们在自动分配器中达到最大的荚数为止。
  4. 未加标记的数量将减少,直到低于目标,并将保持很低的水平。
  5. 自动分频器将把豆荚的数量减少到豆荚的最小数目。
  6. 未加标记消息的数量将再次增加,并将出现类似的情况(1),并进入一个循环/尖峰周期。

这是图表,当它变得尖峰(流量上升,但它是稳定的和非尖峰):在pub/sub中未被确认的消息的数量。

当未确认消息的数量超过20k时,我们在堆栈驱动程序中设置一个警报,在这种情况下,它总是频繁地触发。

在这种情况下,是否有办法使HPA变得更稳定(非尖峰)?

任何评论、建议或回答都是非常感谢的。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2019-05-29 15:34:42

我一直在处理同样的行为。我最后所做的是使用移动平均值平滑num_undelivered_messages。我设置了一个k8s cron,它每分钟将最后20分钟的时间序列数据平均发布到一个自定义度量中。然后配置HPA以响应自定义度量。

虽然效果不错,但并不完美。我观察到,一旦平均数值与实际值相合,自置居所津贴的规模便会过低。所以我最后只添加了一个常量,所以定制的度量就是平均+常数。我发现,对于我的具体情况,价值25,000很好。

有了这个,并且在targetAverageValue中拨号后,自动标度已经非常稳定。

我不确定这是由于一个缺陷,还是仅仅是num_undelivered_messages度量的性质在非常高的负载。

编辑:我使用了堆栈驱动程序/监视戈朗包。有一种简单的方法可以聚合时间序列数据;请参见这里的“聚合数据”https://cloud.google.com/monitoring/custom-metrics/reading-metrics

https://cloud.google.com/monitoring/custom-metrics/creating-metrics

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53428544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档