当前位置: 首页 > 知识库问答 >
问题:

Kubernetes HPA(具有自定义指标)缩放策略

施景同
2023-03-14

从库伯内特斯v1.18开始,v2beta2 API允许通过水平Pod Autoscalar(HPA)行为字段配置缩放行为。我计划将具有自定义指标的HPA应用于StatefulSet。

我正在查看的用例是使用自定义指标(例如,我的应用程序上的用户会话数量)进行扩展,但HPA根本不会缩减。K8s SIG-Autoscaling增强功能也描述了此用例-“HPA的可配置缩放速度

behavior:
  scaleDown:
    policies:
    - type: pods
      value: 0

用户会话可以在几分钟到几小时内保持活动状态。从1个StatefulSet副本开始,随着用户会话数量达到上限(使用Prometheus收集器公开,稍后使用HPA自定义度量选项配置),应用程序pod将横向扩展。新pod将开始为新用户服务。

由于这是一个StatefulSet,不能突然缩小规模,因此我正在寻求有关在新副本上的用户会话降至0时缩小规模的方法的帮助。上面的链接说缩小规模可以由单独的进程控制。不知道如何做到这一点?寻找一些指针。

谢谢

共有1个答案

劳亦
2023-03-14

您可以使用period秒数稳定值来管理Pod终止之间的时间间隔,例如:

  behavior:
    scaleDown:
      stabilizationWindowSeconds: 10
      policies:
      - type: Pods
        value: 1
        periodSeconds: 20

这样,它将每~30秒缩放1个pod(或在period秒数稳定化Windows秒中使用的任何值)。时间可能会随着时间的推移而变化,具体取决于稳定化Windows秒值。

periodSeconds描述了每个pod终止之间的时间间隔,最大值为1800秒(30分钟)。

当指标指示目标应该缩小时,该算法会查看先前计算的期望状态并使用指定间隔的最高值。对于缩小默认值为300,最大值为3600(一小时)。

 类似资料:
  • 目前,诸葛io的服务范围涵盖了企业内各项业务,除了用户行为指标外,还有很多结合业务场景的特有指标需要分析;如:注册率=注册成功人数/活跃用户数,分、秒之间的单位换算等。 因此,诸葛io平台中提供了基础指标之间的四则运算,可灵活定义符合业务场景的特有指标,并支持自定义指标的可视化分析,以及将指标添加到数据看板中进行持续的跟踪监测的功能。 一、有哪些常见应用场景 场景一 某音频APP,需要统计人均收听

  • Kubernetes中不仅支持CPU、内存为指标的HPA,还支持自定义指标的HPA,例如QPS。 本文中使用的yaml文件见manifests/HPA。 设置自定义指标 kubernetes1.6 在kubernetes1.6集群中配置自定义指标的HPA的说明已废弃。 在设置定义指标HPA之前需要先进行如下配置: 将heapster的启动参数 --api-server 设置为 true 启用cus

  • 我有一个datadog计数度量,我想创建一个新的度量,从中显示度量上两个代理点之间的差异,因此我可以看到点之间的变化。 有没有办法使用datadog仪表板从另一个指标创建一个指标。

  • 默认情况下,Navicat Monitor 从受监控的实例收集一组预设的服务器指标。你可能想要添加自己的查询,以收集特定实例的一些自定义性能指标,并在指标值超过某些阈值和持续时间时接收有关自定义数据的警报。若要配置自定义指标,请前往“配置”->“自定义指标”。 创建自定义指标和警报 在自定义指标页面中,点击“+ 新建自定义指标”。 【步骤一】输入自定义指标的定义: 指标名 输入自定义指标的名。 描

  • 除了 内置的 20 种 常用技术指标外,用户也可以很方便的编写自己的技术指标,下面以线性回归算法为例,详细讲解如何自定义自己的技术指标。 创建自己的技术指标数据列 创建技术指标数据列主要包含两个步骤: 继承技术指标类 实现技术指标算法

  • WebPagetest可以在测试结束时执行任意的JavaScript来收集自定义指标。这些可以在服务器配置中静态地定义,或者在运行时每个测试中指定。 JavaScript应该写得像是在执行一个函数调用,最后返回自定义指标。下面是一个查找页面的元视口并提取它的示例: var viewport = undefined; var metaTags=document.getElementsByTagNam