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

kubernetes - Kubernetes hpa cpu 利用率

我在 Istio 网关的 HPA 中发现了一些问题。

为什么10m等于10%?10m不是1%吗?

Kubernetes 版本是 1.18.5。

0 投票
1 回答
530 浏览

kubernetes - Kubernetes 节点 CPU 利用率

我正在尝试(学习)找出在 k8s节点上利用 CPU(和 RAM)的最佳方法。我的最终目标是确保集群中每个节点的 CPU 利用率高于 X%

到目前为止,我已经阅读了有关cluster-autoscalerHPA的信息,但不确定它们是否会帮助我解决用例。

从我读到的:

  • cluster-autoscalerresources.request用于根据副本数和目标 ec2 实例上的可用 CPU之间的比较来自动缩放节点- 这不是基于流量/实际 CPU 使用率
  • HPA基于 CPU/实际 CPU 使用率,但针对单个 pod

我基本上想达到一个kubectl top nodes显示所有节点正在使用> X%(比如说60%)的地步 - 如果我们达到X2%(比如说80%),理想情况下会触发自动缩放

关于如何处理这个用例的任何建议/指针?(或者我应该以某种方式使用这两种自动缩放机制的组合)

0 投票
2 回答
1221 浏览

kubernetes - 谁能解释这个 Kubernetes HPA 行为?

所以这发生在 EKS K8s v1.15 上。您可以在描述输出中看到 api 版本。Millicpu 在 80 到 120 之间徘徊……这与 HPA 中的副本数完全不匹配……

这是 YAML:

这是 kubectl 描述:

自定义指标 API 被正确/频繁地填充并且运行良好。部署目标运行良好......我已经为这个 API 和副本计算浏览了整个 k8s 代码库,这没有任何意义......

0 投票
1 回答
352 浏览

kubernetes - 使用多种自动伸缩机制来自动伸缩 K8s 集群

在最近的一个实验中,我尝试使用两种机制自动扩展我的 K8s 集群:KEDA 和 HPA(见下文)。我想使用 HPA OOB 资源指标根据 pod 资源利用率(内存和 CPU)扩展我的集群,并使用 KEDA 根据自定义指标自动扩展。

即使我的部署成功并且集群运行良好且正常运行。当自动缩放启动时,集群变得混乱!Pod 不断地被配置然后取消配置,即使在我停止了针对集群的流量之后,这种状态仍然存在。我必须等待冷静期才能再次恢复理智。

我没有找到有关此主题的任何官方文档,因此在这里询问。

我的问题:

  • 可以将 k8s 集群配置为使用多种机制自动扩展吗?
  • 如果是这样,我做错了什么?

这是在 K8s 版本 1.15.11 和 KEDA 1.4.1 上

0 投票
0 回答
828 浏览

kubernetes - 使用不同命名空间中的指标和 pod 为 k8s 创建 HPA

我有三个命名空间:使用 prometheus-operator 的命名空间监控、使用RabbitMq队列管理器和 prometheus-adapter 的命名空间 rabbitmq、使用仅为 RabbitMq pod 创建输入的应用程序的命名空间工作者。我想使用 Horizo​​ntal Pod Autoscaler (HPA)使用来自 RabbitMq pod(在rabbitmq命名空间上)的队列“task_queue”中的指标来扩展 worker pod(在worker命名空间上)。所有这些指标都由 prometheus 操作员(在监控命名空间上)收集,并显示在 prometheus 前端:

在 prometheus-url:8080/graph 查询“rabbitmq_queue_messages”:

RabbitMQ、Prometheus-operator 和 Prometheus-adapter 是从 helm 图表安装的

RabbitMQ(values.yaml 有密码并在 9419 启用指标以进行抓取):

普罗米修斯适配器:

普罗米修斯操作员:

普罗米修斯值.yaml:

自定义指标没问题:

这是我的 hpa.yaml:

但是 hpa 不能像 kubectl describe 显示的那样工作:

我相信 HPA 正试图在工作命名空间上找到 RabbitMq 服务,

但该服务位于rabbitmq命名空间上。我尝试使用兔子的服务 FQDN (rabbitmq-server.rabbitmq.svc.cluster.local) 和服务名称 (rabbitmq-server)。我错过了什么?有没有办法让它工作?这里的重点是我有另一个项目有 10 多个命名空间,并且它们都使用相同的 rabbit 服务器(在rabbitmq命名空间上),所以让它们一起在同一个命名空间中将是一场噩梦。谢谢。

编辑 1:我的自定义指标config.yaml

适配器 helm 使用此文件安装:

如果 HPA 是在 rabbitmq 命名空间中创建的,这是 HPA 描述:

0 投票
2 回答
1786 浏览

kubernetes - external.metrics.k8s.io 在 EKS 集群中不可用

Kubernetes 版本:亚马逊 EKS 上的 1.13

我正在尝试按照本指南https://nuvalence.io/building-a-k8s-autoscaler-with-custom-metrics/使用 prometheus-adapter 在我们的 Kubernetes 集群中启用基于 rabbitmq 数据的自动缩放。

但是,运行 kubectl get --raw /apis/external.metrics.k8s.io/v1beta1 | jq .返回Error from server (NotFound): the server could not find the requested resource告诉我由于某种原因不支持/启用外部指标。

自定义的虽然可以,所以kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq .返回有效数据。

问题是rabbitmq 绝对应该是一个外部指标,我花了几个小时试图让它像自定义一样工作,但没有任何成功。

不知道如何处理外部指标或关于从哪里开始搜索的指示?这个 api 端点应该默认存在还是有一个启用它的扩展?

0 投票
1 回答
169 浏览

kubernetes - Kubernetes 扩展不够快(对于 K8 1.17 或更低版本)

Kubernetes 1.18 具有非常好的能力,可以通过行为和 scaleUp 集更改自动缩放。对于 1.17,有一种方法可以控制缩小。有没有一种并行的方式可以更快地扩大规模?我们期待非常可变的负载,并且我们的集群扩展速度不够快。

我不确定要包括哪些其他信息。我一直在搜索文档,但找不到任何指向正确方向的东西。

0 投票
1 回答
547 浏览

kubernetes - Kubernetes AWS Cloudwatch 适配器未获取 EKS HPA 自动缩放的自定义指标值

我正在尝试通过 Kubernetes Cloudwatch 适配器启用基于自定义 Cloudwatch 指标的 AWS EKS 自动缩放。我已将自定义指标推送到 AWS Cloudwatch,并验证它们出现在 Cloudwatch 控制台中,并且可以使用 boto3 客户端 get_metric_data 进行检索。这是我用来将自定义指标发布到 Cloudwatch 的代码:

我有以下 yaml 文件用于在 kubernetes 中建立外部指标和 hpa 自动缩放器:

extMetricCustom.yaml:

hpaCustomMetric.yaml

当我评估 Kubernetes Cloudwatch 适配器是否正确获取我的自定义指标 (kubectl get hpa) 时,它始终显示指标为 0:

如何根据我的 Cloudwatch 自定义指标正确自动缩放?

0 投票
1 回答
541 浏览

kubernetes - HPA(水平 Pod 自动缩放器)`currentCPUUtilizationPercentage` 的 Kubernetes Prometheus 指标?

在使用 CoreOS Prometheus Operator 抓取所有标准集群指标的 Kubernetes 集群上,什么 Prometheus 指标可以显示currentCPUUtilizationPercentage简单 HPA(水平 pod 自动缩放器)的价值?

如果我设置一个简单的 hpa,例如:

然后,如果我这样做,kubectl get hpa php-apache -o yaml我会看到类似的内容:

我想currentCPUUtilizationPercentage在普罗米修斯中看到这一点。我已经做了一堆 Prometheus 查询来寻找这个。

我搜索了所有标记的指标{hpa="php-apache"},我看到了许多 hpa 指标,但没有看到我正在寻找的指标。我可以看到kube_hpa_spec_target_metric设置为 30,我可以看到当前状态指标,kube_hpa_status_condition但不是我想要查看的当前 cpu 指标值。

我搜索了所有标记的指标{metric_name="cpu"},只看到kube_hpa_spec_target_metric

我搜索了所有标记的容器和 pod 相关指标{container="my-container-name"}{pod=~"my-pod-prefix.*"}并且我看到了几个与 cpu 相关的指标,例如container_cpu_usage_seconds_totalabnd container_spec_cpu_quota,但没有类似的指标,或者似乎没有任何指标可以用于计算currentCPUUtilizationPercentage我正在寻找的值?

仅供参考,这是在 Kubernetes 1.17.x 上并使用最新版本的 CoreOS Prometheus Operator。

0 投票
1 回答
42 浏览

kubernetes - 是否有已知的方法来确定自动缩放阈值?

是否有已知的方法/关键字/主题来解决如何确定自动缩放阈值?

下面以 K8s HPA 为例,我只知道我可以安装一些监控工具,然后通过肉眼查看图表上显示的内存使用情况,以确定合适的阈值 100Mi。但是为什么不设置99Mi,为什么不设置101Mi呢?我觉得这个方法太手动了

由于我没有精通计算机科学,所以我想问

是否有解决此类问题的已知方法?

或者什么样的课程可以解决这个问题?

或者从学术文章中搜索的关键字是什么?