问题标签 [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.
google-kubernetes-engine - 如何使用 HPA 和 Cluster Autoscaler 对 GKE 节点的资源利用率进行碎片整理
在 GKE 上使用 HPA(Horizontal Pod Autoscaler)和 Cluster Autoscaler,Pod 和节点按预期扩展。但是,当需求减少时,似乎会从随机节点中删除 pod。它导致使用较少的节点。这不划算...
编辑:HPA 基于 targetCPUUtilizationPercentage 单一指标。不使用 VPA。
这是用于部署和 HPA 的简化 yaml 文件:
EDIT2:添加一个 emptyDir 卷作为有效示例。
我该如何改善这种情况?
有一些想法,但没有一个能完全解决问题......
- 配置节点池机器类型和 pod 资源请求,以便在一个节点上只容纳一个 pod。如果一个 pod 被 HPA 从一个节点中删除,该节点会在一段时间后被删除,但它不适用于各种资源请求的部署。
- 如果可能,使用抢占式节点...
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 副本添加到我的集群中。
谁能帮我解决这个问题。
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 的工作原理?
kubernetes - GKE - 使用自定义指标的 HPA - 无法获取指标
我有自定义指标导出到Google Cloud Monitoring
,我想根据它扩展我的部署。
这是我的 HPA:
在描述 hpa 时,我看到:
和:
Kubernetes 无法获取指标。
我通过监控仪表板验证了该指标是否可用和更新。
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-metrics
CrashLoopBack
机器日志:
一个相关问题:
https://github.com/GoogleCloudPlatform/k8s-stackdriver/issues/303
google-kubernetes-engine - 具有自定义指标的 HPA
我遇到了两种不同的方法来衡量一个特定的指标,我想知道有什么区别,在我的情况下是否有这种情况。
我在 GKE 上有一个部署,包括从应用程序中抓取特定指标并将其导出到 stackdriver。使用 prometheus-to-sd 边车。该指标在堆栈驱动程序中显示为 custom.googleapis.com/dummy/foo
现在,通常当我为自定义指标执行 HPA 时,我会像下面这样使用它:
现在,同样的 hpa 也可以使用 Pod 度量方法。喜欢:
它的工作原理相同。我知道在使用 Pod Metrics 时,HPA 将从所有 pod 中获取指标,并计算一个平均值,该平均值将与目标值进行比较以确定副本数。它与在外部指标上使用 targetAverageValue 基本相同。所以,就我而言,两者的作用基本相同,对吧?在性能,延迟等方面有什么不同吗?
谢谢陈
kubernetes - Kubernetes Horizontal Pod 自动伸缩和资源配额
资源配额是否考虑了 HPA(Horizontal pod autoscaler)创建的 pod?
如果新创建的 pod 的请求和限制高于配额,它们会被驱逐吗?
问候
kubernetes - 如何根据 EKS 中的平均内存使用量自动扩展 Kubernetes Pod?
我正在运行一个EKS集群,并且我创建了一个Horizo ntalPodAutoscaler,用于根据平均 CPU 利用率自动缩放 Pod 的数量。
如何为平均内存利用率做同样的事情?
假设在 EKS 集群中运行的所有 Pod,平均使用了分配给它们的 70% 的内存(使用资源),那么应该自动扩展部署。
这个怎么做?在CloudWatch中创建自定义指标是唯一的方法吗?
即使 cloudWatch 是唯一的方法,如何做到这一点?是否有特定的文档或教程或博客可以做到这一点?
kubernetes - 跟踪使用 HPA 和 CA 在 Kubernetes 中扩展所需的时间
我正在尝试跟踪和监控 pod 需要多长时间才能上线/健康/运行。
我正在使用 EKS。我已经在我的集群上安装了 HPA 和 cluster-autoscaler。
假设我有一个HorizontalPodAutoscaler
具有 70% 扩展策略的部署targetAverageUtilization
。
因此,每当部署的平均利用率超过 70% 时,HPA 就会触发创建新的 POD。现在,基于不同的因素,例如节点是否可用,如果不可用,则需要下载图像或者它是否存在于缓存中,缩放可能需要几秒钟到几分钟的时间。
我想跟踪这个时间/持续时间,每次安排 POD 时,需要多长时间才能进入Running
状态。有什么建议么?
或者我应该看的任何方向。
我找到了这个Cluster Autoscaler Visibility Logs,但这仅在 GCE 中可用。
我正在寻找任何解决方案,可以是开箱即用的集成,或者引发事件并将它们存储在一些时间序列数据库中或从 Prometheus抓取数据。但到目前为止,我找不到任何解决方案。
提前致谢。
kubernetes - 用于部署 A 的 kubernetes HPA 和用于部署 B 的 VPA
VPA 的文档指出 HPA 和 VPA 不应该一起使用。它只能用于在您想要扩展自定义指标时进行聚合。
我在 CPU 上启用了缩放。
我的问题是我可以为某些部署启用 HPA(比如说 A)并为某些部署启用 VPA(比如说 B)。或者这也会导致错误。