问题标签 [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.
kubernetes - Kubernetes HPA 是如何工作的?
我正在尝试将 Horizontal Pod Autoscaling (HPA) 添加到我的 Kubernetes 部署中。我的应用程序由 5 个微服务组成,它们之间连接。我有一个 NodePort(一个 Traefik 服务),负责控制来自外部的流量。该调用是一个 HTTPS POST,它发送一个由应用程序处理的 csv 文件。它可以通过命令行或使用 Web 应用程序 (UI) 发送。curl 命令将如下所示:
我对 HPA 功能的疑问如下,
HPA 如何在副本之间分配调用?Kubernetes 是否能够并行计算,即在副本之间划分调用,或者每个调用只去一个副本?
复制品可以同时参加多个通话吗?
在 HPA 规范中,例如这里:
这个50%是多少?是 pod 还是集群 CPU 的 50%?
在此先感谢您的帮助!
docker - 如何防止在 Kubernetes 中由 HPA 创建的新扩展的 Pod 在特定时间段内缩小?
我在 DigitalOcean 中设置了一个 Kubernetes 集群。集群配置为使用 HPA(Horizontal Pod Autoscaler)自动扩展。我想防止终止在过去 1 小时内扩大规模的 pod,以避免颠簸和节省账单。以下是相同的两个原因:
- 由于不可预测的流量,有时新的 Pod 在一个小时内会放大和缩小多次。由于应用程序的性质,50-60 个新用户需要一个新的 Pod 来处理流量。
- DigitalOcean 液滴按小时收费。即使液滴上升15分钟,他们也会充电一个小时。因此,有时我们会在一小时内支付 5 滴,而这本来可以只支付 1 滴。
从文档中,我找不到与此相关的任何内容。任何相同的黑客都会有所帮助。
google-kubernetes-engine - GKE 跳跃指标,向上和向下扩展
在将 GKE(Google Kubernetes Engine)1.16.8-gke.15
从 1.15.9 升级到版本后,我们看到一个具有 3 个副本的工作负载的奇怪指标(另一个具有一两个副本的工作负载很好)。pod 的创建日期仍然相同(基于图表没有变化)。节点资源就足够了。你能帮忙吗?谢谢。
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 定义:
非常感谢你的帮助 !
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
如果需要任何进一步的信息,请随时询问!
非常感谢您抽出宝贵的时间!
干杯罗宾
spring-boot - Kubernetes 自动缩放内存
我有一个 Java 应用程序在 K8s 上运行,部署中有 min:2 和 max:6 pod。堆最小值:256Mb,堆最大值:512Mb。请求和限制内存为 1Gi 这是 hpa 规范:
在性能测试期间,我注意到部署正试图非常积极地扩展。
无负载时,内存利用率在 33% 左右,根据这个链接https://kubernetes.io/docs/tasks/run-application/horizontal -pod-autoscale/
的公式大致了解一下想要的豆荚是desiredReplicas = ceil[currentReplicas * ( currentMetricValue / desiredMetricValue )]
从 K8s 监控中,我注意到它会在内存利用率增加到 40% 左右时尝试扩展。如果我正确理解上述公式的工作原理desiredReplicas = ceil[2*(0.4/0.6)] = 2
,那么它不应该按比例放大。
我理解正确吗?
kubernetes - 可以在生产中使用 Kubernetes 自动缩放 v2beta2 作为 apiVersion 吗?
我有基于内存(和自定义指标)扩展 pod(HPA)的用例。
然而,各自的 apiVersion 处于测试阶段(自动缩放/v2beta2)。
不确定何时会出现在 GA/stable 版本中,因此请检查。
对我有什么建议吗?
kubernetes - HPA 在 k8s 中显示未知
我使用如下所示的命令配置了 HPA
但是,HPA 无法识别 CPU 负载。
我阅读了许多建议安装指标服务器的文章。所以,我做到了。
我可以看到指标服务器。
我正在使用 Istio 和 sysdig。不确定这是否会破坏任何东西。我的 k8s 版本如下所示。
我的 YAML 文件是
我不确定为什么 CPU 负载显示为未知。我是否错过了一步或犯了任何错误?有人可以帮忙吗?
问候普拉南
kubernetes - 使用 Keda 强制缩放为零
使用普通 HPA,可以手动将底层部署扩展到零。例如,这是必需的。维护任务。当缩放回一个大于零的值时,缩放会像以前一样继续。这是执行的命令:kubectl scale deployment my-deployment --replicas=0
然而,对于 KEDA,这是不可能的。文档中唯一的地方是:
KEDA 不会强制执行该值,这意味着您可以手动将部署扩展为 0,并且 KEDA 不会对其进行扩展。但是,当 KEDA 本身扩展部署时,它将尊重那里设置的值。
我无法确认这种行为,之前的缩放命令也不起作用。手动将minReplicas
andmaxReplicas
更改为零会在 keda 日志中引发很多错误,将部署指向假值时也会发生同样的情况。
我需要一种临时缩放到零的方法(删除 ScaledObject 当然可以,但是我需要将它们存储在某个地方,这也容易出错且违反直觉)。这应该与 的值无关minReplicaCount
。
使用 Kubernetes 1.15、keda 1.5.0。缩放对象示例: