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

试图理解Kubernetes自动缩放中平均利用率的含义

公西国发
2023-03-14

文件上说:

对于每个Pod资源指标(如CPU),控制器从HorizontalPodAutoscaler针对的每个Pod的资源指标API中获取指标。然后,如果设置了目标利用率值,控制器将利用率值计算为每个Pod中容器上等效资源请求的百分比。如果设置了目标原始值,则直接使用原始度量值。然后,控制器在所有目标Pod上取利用率或原始值的平均值(取决于指定的目标类型),并产生一个用于缩放所需副本数量的比率。

假设我有一个Pod:

        resources:
          limits:
            cpu: "0.3"
            memory: 500M
          requests:
            cpu: "0.01"
            memory: 40M

现在我有一个自动缩放定义:

type: Resource
resource:
  name: cpu
  target:
    type: Utilization
    averageUtilization: 60

根据文件:

使用此指标,HPA控制器将使扩展目标中的POD平均利用率保持在60%。Utilization是pod当前使用的资源与请求的资源之间的比率

所以,我不明白这里的一些东西。如果Request是运行应用程序所需的最低资源,那么如何根据这个值进行扩展?0.01的60%不算什么,服务会不断扩展。

共有1个答案

慕意致
2023-03-14

您的误解可能是,请求的值不一定是应用程序运行所需的最低值。

这是您(开发人员、管理员、运营模式)从库伯内特斯集群请求运行应用程序中的pod,它有助于调度程序为您的工作负载选择正确的节点(例如有足够资源可用的节点)。所以,不要选择这个值太小或太高。

除此之外,自动缩放的工作原理与您描述的一样。在这种情况下,集群将计算您所请求的CPU的使用量,并在使用率超过60%时进行扩展。请记住,Kubernetes并不是看每一个豆荚,而是看该组中所有豆荚的平均值。

例如,给定两个运行的pod,一个pod可以100%运行请求,另一个pod可以(几乎)0%运行。平均值约为50%,因此在水平吊舱自动缩放的情况下不会发生自动缩放。

在生产中,我个人会尝试猜测正确的值,然后查看指标并根据我的实际工作负载调整值。普罗米修斯是你的朋友或至少是度量服务器:

https://github.com/prometheus-operator/kube-prometheushttps://github.com/kubernetes-sigs/metrics-server

 类似资料:
  • 我正在学习负载平衡器和托管实例组自动扩展。我不理解MIG在使用HTTP负载平衡利用率时如何自动缩放: 因此,在MIG自动缩放设置中,我将目标HTTP负载平衡利用率设置为10%: 在设置外部HTTP负载平衡器时:我有以下两个选项: 利用: 速率: 我可以理解基于CPU的MIG自动缩放,如果平均CPU使用量大于我输入的数量,那么MIG将添加更多VM以降低数量。它非常简单明了。 但我不知道在使用HTTP

  • 我正在尝试在我的kubernetes集群中设置自动缩放。在部署heapster及其服务之后。我正面临以下错误。 Heapster成功地从pod中提取度量,可在 自动缩放(HPA)中的建议无法获取CPU消耗:无法将对象解封为[]V1ALPHA1类型的Go值。PodMetrics未解决此问题

  • 我正在尝试测试部署在AWS中的Kubernetes集群的水平吊舱自动缩放功能(使用EKS)。 我已将资源设置为“CPU”,将目标类型设置为“利用率”,并在 YAML 文件中将“平均利用率”设置为 15。 因此,从技术上讲,当CPU利用率达到15%的设置百分比时,Kubernetes集群应该自动水平扩展(自动添加pods)。这是YAML文件的重要部分: 我向Kubernetes集群注入了大量HTTP

  • 我成功地基于外部负载平衡器设置了自动缩放,但我没有找到一种方法来对内部负载平衡器进行同样的设置。 是否支持此功能,如何根据内部负载均衡器自动扩展我的实例组? 问题是,当您将实例组配置为按HTTP请求扩展时,您需要一个面向internet的HTTP负载平衡器,因此,可以是内部的UDP负载平衡器不适用于此。

  • 问题内容: 我需要使用matplotlib获取一个自动拟合数据的图。这是我得到的代码: 这样就创建了一个图,但是无论数据是什么,窗口都始终是相同的(0-〜.8),即使所有数据都在该窗口之外。生成的窗口无法放大,只能放大,因此这是一个主要问题。我找不到在任何地方设置任何类型的大小设置的地方,II也找不到关于默认值的详细信息。我需要一个窗口来自动拟合数据,但是我找不到能执行此操作的任何函数(由于某些原