问题标签 [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 回答
206 浏览

google-kubernetes-engine - 如何使用 HPA 和 Cluster Autoscaler 对 GKE 节点的资源利用率进行碎片整理

在 GKE 上使用 HPA(Horizo​​ntal Pod Autoscaler)和 Cluster Autoscaler,Pod 和节点按预期扩展。但是,当需求减少时,似乎会从随机节点中删除 pod。它导致使用较少的节点。这不划算...

编辑:HPA 基于 targetCPUUtilizationPercentage 单一指标。不使用 VPA。

这是用于部署和 HPA 的简化 yaml 文件:

EDIT2:添加一个 emptyDir 卷作为有效示例。

我该如何改善这种情况?

有一些想法,但没有一个能完全解决问题......

  • 配置节点池机器类型和 pod 资源请求,以便在一个节点上只容纳一个 pod。如果一个 pod 被 HPA 从一个节点中删除,该节点会在一段时间后被删除,但它不适用于各种资源请求的部署。
  • 如果可能,使用抢占式节点...
0 投票
1 回答
230 浏览

kubernetes - Kubernetes 状态集缩减

目前我在 Kubernetes 上运行一个 solr 集群作为 statefulset。我的 solr 集群中有 39 个 Pod 在其中运行。我在单个物理节点上运行单个 pod。我的 solr 集群只有 1 个集合,分为 3 个分片,每个分片有 13 个节点(或 pod)在其中运行,在这 13 个节点(或 pod)中,3 个是 TLOG 副本,10 个是 PULL 副本。

我想讨论的问题是 - 我想自动缩放我的 solr 集群。在某些情况下,我想将我的 PULL 副本节点(或 Pod)缩减到最小,以便减少不必要的消耗。现在我知道我可以在 Kuberntes 中使用 HPA 来自动扩展,但是在缩减规模时我不想停止我的 TLOG 节点(或 pod)。同样,在扩大规模时,我只想将 PULL 副本添加到我的集群中。

谁能帮我解决这个问题。

0 投票
2 回答
952 浏览

kubernetes - Kubernetes 如何计算 HPA 的 CPU 利用率?

我想了解 HPA 如何跨 Pod 计算 CPU 利用率。

根据这个文档,它需要一个 Pod 的 CPU 利用率平均值(过去 1 分钟的平均值)除以 Pod 请求的 CPU。然后它计算所有 pod 的 CPU 的算术平均值。

不幸的是,该文档包含一些过时的信息,例如--horizontal-pod-autoscaler-sync-period默认设置为 30 秒,但在官方文档中,默认值为 15 秒。

当我测试时,我注意到 HPA 甚至在平均 CPU 达到我设置的阈值(即 90%)之前就扩大了,这让我认为它可能需要跨 Pod 的最大 CPU 而不是平均值。

在此处输入图像描述

我的问题是在哪里可以找到更新的文档以准确了解 HPA 的工作原理?

0 投票
2 回答
2527 浏览

kubernetes - GKE - 使用自定义指标的 HPA - 无法获取指标

我有自定义指标导出到Google Cloud Monitoring,我想根据它扩展我的部署。

这是我的 HPA:

在描述 hpa 时,我看到:

和:

Kubernetes 无法获取指标。

我通过监控仪表板验证了该指标是否可用和更新。

集群节点对 Stackdriver 监控具有完全控制权: 在此处输入图像描述

Kubernetes 版本是 1.15。

可能是什么原因造成的?

编辑 1

发现stackdriver-metadata-agent-cluster-level部署是CrashLoopBack。

来自容器的日志:

编辑 2

使用以下答案修复了编辑 1 中的问题: https ://stackoverflow.com/a/60549732/4869599

但是 hpa 仍然无法获取指标。

编辑 3

似乎问题是由卡custom-metrics-stackdriver-adapter在.custom-metricsCrashLoopBack

机器日志:

一个相关问题:

https://github.com/GoogleCloudPlatform/k8s-stackdriver/issues/303

0 投票
1 回答
62 浏览

kubernetes - 如何在 helm-couchdb 应用程序中添加 metric-server

当尝试执行 Horizo​​ntalPodAutoscaling 时,我得到了(无法获取内存利用率:无法获取资源内存的指标:资源指标 API 没有返回指标)如何解决这个问题。

0 投票
1 回答
370 浏览

google-kubernetes-engine - 具有自定义指标的 HPA

我遇到了两种不同的方法来衡量一个特定的指标,我想知道有什么区别,在我的情况下是否有这种情况。

我在 GKE 上有一个部署,包括从应用程序中抓取特定指标并将其导出到 stackdriver。使用 prometheus-to-sd 边车。该指标在堆栈驱动程序中显示为 custom.googleapis.com/dummy/foo

现在,通常当我为自定义指标执行 HPA 时,我会像下面这样使用它:

现在,同样的 hpa 也可以使用 Pod 度量方法。喜欢:

它的工作原理相同。我知道在使用 Pod Metrics 时,HPA 将从所有 pod 中获取指标,并计算一个平均值,该平均值将与目标值进行比较以确定副本数。它与在外部指标上使用 targetAverageValue 基本相同。所以,就我而言,两者的作用基本相同,对吧?在性能,延迟等方面有什么不同吗?

谢谢陈

0 投票
1 回答
173 浏览

kubernetes - Kubernetes Horizo​​ntal Pod 自动伸缩和资源配额

资源配额是否考虑了 HPA(Horizo​​ntal pod autoscaler)创建的 pod?

如果新创建的 pod 的请求和限制高于配额,它们会被驱逐吗?

问候

0 投票
1 回答
498 浏览

kubernetes - 如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?

我正在运行一个EKS集群,并且我创建了一个Horizo ​​ntalPodAutoscaler,用于根据平均 CPU 利用率自动缩放 Pod 的数量。

如何为平均内存利用率做同样的事情?

假设在 EKS 集群中运行的所有 Pod,平均使用了分配给它们的 70% 的内存(使用资源),那么应该自动扩展部署。

这个怎么做?在CloudWatch中创建自定义指标是唯一的方法吗?

即使 cloudWatch 是唯一的方法,如何做到这一点?是否有特定的文档或教程或博客可以做到这一点?

0 投票
1 回答
153 浏览

kubernetes - 跟踪使用 HPA 和 CA 在 Kubernetes 中扩展所需的时间

我正在尝试跟踪和监控 pod 需要多长时间才能上线/健康/运行。

我正在使用 EKS。我已经在我的集群上安装了 HPA 和 cluster-autoscaler。

假设我有一个HorizontalPodAutoscaler具有 70% 扩展策略的部署targetAverageUtilization
因此,每当部署的平均利用率超过 70% 时,HPA 就会触发创建新的 POD。现在,基于不同的因素,例如节点是否可用,如果不可用,则需要下载图像或者它是否存在于缓存中,缩放可能需要几秒钟到几分钟的时间。

我想跟踪这个时间/持续时间,每次安排 POD 时,需要多长时间才能进入Running状态。有什么建议么?

或者我应该看的任何方向。

我找到了这个Cluster Autoscaler Visibility Logs,但这仅在 GCE 中可用。

我正在寻找任何解决方案,可以是开箱即用的集成,或者引发事件并将它们存储在一些时间序列数据库中或从 Prometheus抓取数据。但到目前为止,我找不到任何解决方案。

提前致谢。

0 投票
1 回答
152 浏览

kubernetes - 用于部署 A 的 kubernetes HPA 和用于部署 B 的 VPA

VPA 的文档指出 HPA 和 VPA 不应该一起使用。它只能用于在您想要扩展自定义指标时进行聚合。

我在 CPU 上启用了缩放。

我的问题是我可以为某些部署启用 HPA(比如说 A)并为某些部署启用 VPA(比如说 B)。或者这也会导致错误。