问题标签 [hpa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
204 浏览

kubernetes - Kubernetes HPA 是如何工作的?

我正在尝试将 Horizo​​ntal Pod Autoscaling (HPA) 添加到我的 Kubernetes 部署中。我的应用程序由 5 个微服务组成,它们之间连接。我有一个 NodePort(一个 Traefik 服务),负责控制来自外部的流量。该调用是一个 HTTPS POST,它发送一个由应用程序处理的 csv 文件。它可以通过命令行或使用 Web 应用程序 (UI) 发送。curl 命令将如下所示:

我对 HPA 功能的疑问如下,

  1. HPA 如何在副本之间分配调用?Kubernetes 是否能够并行计算,即在副本之间划分调用,或者每个调用只去一个副本?

  2. 复制品可以同时参加多个通话吗?

  3. 在 HPA 规范中,例如这里:

这个50%是多少?是 pod 还是集群 CPU 的 50%?

在此先感谢您的帮助!

0 投票
1 回答
364 浏览

docker - 如何防止在 Kubernetes 中由 HPA 创建的新扩展的 Pod 在特定时间段内缩小?

我在 DigitalOcean 中设置了一个 Kubernetes 集群。集群配置为使用 HPA(Horizo​​ntal Pod Autoscaler)自动扩展。我想防止终止在过去 1 小时内扩大规模的 pod,以避免颠簸和节省账单。以下是相同的两个原因:

  1. 由于不可预测的流量,有时新的 Pod 在一个小时内会放大和缩小多次。由于应用程序的性质,50-60 个新用户需要一个新的 Pod 来处理流量。
  2. DigitalOcean 液滴按小时收费。即使液滴上升15分钟,他们也会充电一个小时。因此,有时我们会在一小时内支付 5 滴,而这本来可以只支付 1 滴。

文档中,我找不到与此相关的任何内容。任何相同的黑客都会有所帮助。

0 投票
0 回答
87 浏览

google-kubernetes-engine - GKE 跳跃指标,向上和向下扩展

在将 GKE(Google Kubernetes Engine)1.16.8-gke.15从 1.15.9 升级到版本后,我们看到一个具有 3 个副本的工作负载的奇怪指标(另一个具有一两个副本的工作负载很好)。pod 的创建日期仍然相同(基于图表没有变化)。节点资源就足够了。你能帮忙吗?谢谢。

IMG - 工作负载跳跃指标

IMG - 工作负载系统对象

0 投票
1 回答
1359 浏览

kubernetes - GKE 上的 HPA 将部署扩展到 0

我正在尝试将 HPA 与外部指标一起使用以将部署缩减到 0。我正在使用版本为 1.16.9-gke.2 的 GKE。

据此,认为它会起作用,但事实并非如此。我仍然面临:The HorizontalPodAutoscaler "classifier" is invalid: spec.minReplicas: Invalid value: 0: must be greater than or equal to 1

以下是我的 HPA 定义:

非常感谢你的帮助 !

0 投票
1 回答
964 浏览

kubernetes - 为什么 Kubernetes HPA 没有缩减(内存)?

概括

在我们的 Kubernetes 集群中,我们引入了 HPA whit memory 和 cpu 限制。现在我们不明白为什么我们有一个服务的 2 个副本。

有问题的服务使用 57% / 85% 内存并且有 2 个副本而不是 1 个。我们认为这是因为当您将两个 pod 的内存加起来时,它超过了 85%,但如果只有一个 pod,则不会。那么这是否会阻止它缩小规模?我们可以在这里做什么?

当我们部署服务时,我们还观察到内存使用高峰。我们在 aks (azure) 中使用 spring-boot 服务,并认为它可能会在那里扩展,并且永远不会下降。我们错过了什么或有任何建议吗?

帕:

并在部署中:

使用服务默认值:

kubectl 获取 hpa -n dev

kubectl 描述 hpa -n dev

如果需要任何进一步的信息,请随时询问!

非常感谢您抽出宝贵的时间!

干杯罗宾

0 投票
1 回答
80 浏览

kubernetes - 为什么我的 GKE 节点池不会自动缩减?

我有一个明显未充分利用的抢占式节点池: 在此处输入图像描述

节点池使用HPA托管具有以下设置的部署:

节点池也有容忍标签。

HPA 利用率显示了这一点:

但是节点池大约一天不会缩小。此部署没有繁重的负载:

此部署和节点池没有affinity设置。一些节点很容易打包几个相同的 pod,但其他节点只持有一个 pod 几个小时,不会发生缩减

有什么问题?

0 投票
1 回答
1234 浏览

spring-boot - Kubernetes 自动缩放内存

我有一个 Java 应用程序在 K8s 上运行,部署中有 min:2 和 max:6 pod。堆最小值:256Mb,堆最大值:512Mb。请求和限制内存为 1Gi 这是 hpa 规范:

在性能测试期间,我注意到部署正试图非常积极地扩展。

无负载时,内存利用率在 33% 左右,根据这个链接https://kubernetes.io/docs/tasks/run-application/horizo​​ntal -pod-autoscale/ 的公式大致了解一下想要的豆荚是desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]

从 K8s 监控中,我注意到它会在内存利用率增加到 40% 左右时尝试扩展。如果我正确理解上述公式的工作原理desiredReplicas = ceil[2*(0.4/0.6)] = 2,那么它不应该按比例放大。

我理解正确吗?

0 投票
1 回答
726 浏览

kubernetes - 可以在生产中使用 Kubernetes 自动缩放 v2beta2 作为 apiVersion 吗?

我有基于内存(和自定义指标)扩展 pod(HPA)的用例。

然而,各自的 apiVersion 处于测试阶段(自动缩放/v2beta2)。

不确定何时会出现在 GA/stable 版本中,因此请检查。

对我有什么建议吗?

0 投票
2 回答
115 浏览

kubernetes - HPA 在 k8s 中显示未知

我使用如下所示的命令配置了 HPA

但是,HPA 无法识别 CPU 负载。

我阅读了许多建议安装指标服务器的文章。所以,我做到了。

我可以看到指标服务器。

我正在使用 Istio 和 sysdig。不确定这是否会破坏任何东西。我的 k8s 版本如下所示。

我的 YAML 文件是

我不确定为什么 CPU 负载显示为未知。我是否错过了一步或犯了任何错误?有人可以帮忙吗?

问候普拉南

0 投票
0 回答
408 浏览

kubernetes - 使用 Keda 强制缩放为零

使用普通 HPA,可以手动将底层部署扩展到零。例如,这是必需的。维护任务。当缩放回一个大于零的值时,缩放会像以前一样继续。这是执行的命令:kubectl scale deployment my-deployment --replicas=0

然而,对于 KEDA,这是不可能的。文档中唯一的地方是:

KEDA 不会强制执行该值,这意味着您可以手动将部署扩展为 0,并且 KEDA 不会对其进行扩展。但是,当 KEDA 本身扩展部署时,它将尊重那里设置的值。

我无法确认这种行为,之前的缩放命令也不起作用。手动将minReplicasandmaxReplicas更改为零会在 keda 日志中引发很多错误,将部署指向假值时也会发生同样的情况。

我需要一种临时缩放到零的方法(删除 ScaledObject 当然可以,但是我需要将它们存储在某个地方,这也容易出错且违反直觉)。这应该与 的值无关minReplicaCount

使用 Kubernetes 1.15、keda 1.5.0。缩放对象示例: